当前位置: 首页 > news >正文

百度教育网站学技术的培训学校

百度教育网站,学技术的培训学校,网站设计模板是什么,网站开发需求书模板前言 大家好#xff0c;又见面了#xff0c;我是沐风晓月#xff0c;本文主要讲解云原生系列之使用prometheus监控nginx 文章收录到 csdn 我是沐风晓月的博客【prometheus监控系列】专栏#xff0c;此专栏是沐风晓月对云原生prometheus的的总结#xff0c;希望能够加深自…前言 大家好又见面了我是沐风晓月本文主要讲解云原生系列之使用prometheus监控nginx 文章收录到 csdn 我是沐风晓月的博客【prometheus监控系列】专栏此专栏是沐风晓月对云原生prometheus的的总结希望能够加深自己的印象以及帮助到其他的小伙伴。 如果文章有什么需要改进的地方还请大佬不吝赐教。 个人主页我是沐风晓月 个人简介大家好我是沐风晓月双一流院校计算机专业阿里云社区专家博主 座右铭 先努力成长自己再帮助更多的人 一起加油进步 欢迎大家这里是CSDN我总结知识的地方喜欢的话请三连有问题请私信 文章目录前言一. 实验环境二. nginx-vts-exporter简介2.1 如何获取nginx exporter2.2 nginx-vts-exporter简介2.3 nginx-module-vts简介三. 安装nginx1.223.1 下载nginx源码3.2 下载nginx-module-vts模块3.3 解压所有源码3.4 安装编译nginx需要的依赖3.5 编译安装nginx3.6 修改nginx配置文件3.7 检查nginx配置文件语法3.8 启动nginx3.9 查看nginx启动情况3.10 登录网页验证模块3.10.1 使用“nginx-module-vts”默认模式查看nginx状态3.10.2 使用“nginx-module-vts”其他模式查看nginx状态四. 安装nginx-vts-exporter4.1 下载nginx_vts_exporter4.2 解压nginx_vts_exporter4.3 查看帮助文档4.4 启动nginx-vts-exporter4.5 查看nginx-vts-exporter启动状态4.6 查看nginx-vts-exporter采集的数据五. 配置prometheus拉取数据5.1 修改prometheus的配置文件5.2 让prometheus重新读取配置文件六.查看prometheus的监控数据6.1 到网页端查看prometheus监控目标6.2 在prometheus网页查询结果七、grafana导入模板7.1 导入模板7.2 查看模板效果![请添加图片描述](https://img-blog.csdnimg.cn/ffb5e71d08024346be9b294f2237dace.png)八、Nginx常见监控指标8.1 基本活跃指标8.2 nginx的QPS8.3 nginx错误率九、总结一. 实验环境 本次实验环境见下表 操作系统服务器IPhostnamecentos7.910.0.0.7mufengrow7 查看操作系统 [rootmufengrow ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)查看hostname # 修改hostname [rootmufengrow ~]# hostname mufengrow7 [rootmufengrow ~]# bash# 查看hostname [rootmufengrow7 ~]# hostname mufengrow7查看ip [rootmufengrow7 ~]# ifconfig |grep inet |awk NR1{print $2} 10.0.0.7本文中的prometheus监控软件已经安装好了如果你还没安装可以参考上一篇文章prometheus安装及使用入门 更多内容关注csdn 【我是沐风晓月】 二. nginx-vts-exporter简介 2.1 如何获取nginx exporter 我们可以从prometheus官方的下载页面上看到prometheus官方并没有提供官方对nginx的监控exporter。 那我们要怎么通过prometheus监控nginx呢 在prometheus官方的下载页面里面有提供一些比较好的第三方开源的exporter供我们使用。 prometheus官方下载页面https://prometheus.io/download/ 2.2 nginx-vts-exporter简介 我们都知道nginx可以通过“ngx_http_stub_status_module”模块来显示自身的状态信息。但是状态页面显示的出来的结果又比较的简单而且不符合prometheus采集数据的规范。所以就有人针对nginx开源了一款prometheus监控nginx的exproter——“nginx-vts-exporter”。 nginx-vts-exporter的github地址https://github.com/hnlq715/nginx-vts-exporter 通过查看github介绍可以知道该exproter不像官方提供的exporter一样简单的安装上了就可以采集数据。它需要nginx在编译安装的时候加上一个第三方的模块“nginx-module-vts”。通过这个第三方模块将nginx更加详细的数据展示出来然后通过“nginx-vts-exporter”进行采集展示最后由prometheus进行采集汇总。 第三方模块的github地址https://github.com/vozlt/nginx-module-vts 2.3 nginx-module-vts简介 “nginx-module-vts”是一个第三方的nginx模块提供了对nginx状态信息的访问。 “nginx-module-vts”模块提供了几种方式展示自己的状态这个之后会说明。 但是“nginx-module-vts”模块对nginx的版本的支持是有要求的在nginx1.4.x之前的版本都不支持。使用的时候需要注意。 三. 安装nginx1.22 3.1 下载nginx源码 下载nginx-1.22的源码 [rootmufengrow7 ~]# cd /usr/local/src/ [rootmufengrow7 ~]# wget http://nginx.org/download/nginx-1.22.1.tar.gz3.2 下载nginx-module-vts模块 下载nginx-module-vts用于之后的nginx编译安装 [rootmufengrow7 src]# wget https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2.1.tar.gz3.3 解压所有源码 解压nginx1.22的源码和解压nginx-module-vts模块的源码 #解压nginx1.22源码 [rootmufengrow7 src]# tar zxf nginx-1.22.1.tar.gz #解压nginx-module-vts模块源码 [rootmufengrow7 src]# tar zxf v0.2.1.tar.gz代码注释 z指定解压的文件有gzip属性 x从归档文件中解压出文件。 f使用指定使用哪个归档文件。 3.4 安装编译nginx需要的依赖 编译安装nginx需要解决openssl和pcre的依赖所以要提前将这两个包安装上 [rootmufengrow7 src]# yum install -y openssl-devel pcre-devel3.5 编译安装nginx 编译安装nginx1.22但是要注意的是我们需要在编译的参数里加上添加模块的参数“–add-module”然后指向“nginx-module-vts”模块的源码路径 #进入nginx源码目录 [rootmufengrow7 src]# cd nginx-1.22.1/ #指定编译安装的参数并进行检查生成Makefile文件 [rootmufengrow7 nginx-1.22.1]# ./configure --prefix/apps/nginx \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module \--with-http_stub_status_module \--with-http_gzip_static_module \--with-pcre \--with-file-aio \--with-stream \--with-stream_ssl_module \--with-stream_realip_module \--add-module/usr/local/src/nginx-module-vts-0.2.1/ #指向“nginx-module-vts”模块源码的目录 #编译安装nginx [rootmufengrow7 nginx-1.22.1]# make make install #查看nginx安装信息 [rootmufengrow7 nginx-1.22.1]# /apps/nginx/sbin/nginx -V nginx version: nginx/1.22.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix/apps/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-file-aio --with-stream --with-stream_ssl_module --with-stream_realip_module --add-module/usr/local/src/nginx-module-vts-0.2.1/ #可以看到“nginx-module-vts”模块已经安装到nginx里了代码注释 -V显示nginx版本和安装的配置 3.6 修改nginx配置文件 有人在想如何修改nginx的配置文件才能让nginx的状态显示出来 “nginx-module-vts”的github网页已经给出配置了 根据“nginx-module-vts”官方给除的配置修改nginx的配置文件让nginx能展示出自己的状态。 #进入nginx的安装目录 [rootmufengrow7 nginx]# cd /apps/nginx/ #修改nginx的配置 [rootmufengrow7 nginx]# vim conf/nginx.conf ...... http {......;vhost_traffic_status_zone;......;server{......;location /status {vhost_traffic_status_display;vhost_traffic_status_display_format html;}} }3.7 检查nginx配置文件语法 修改配置文件后需要检查nginx配置文件语法查看是否出现语法上的错误 [rootmufengrow7 nginx]# ./sbin/nginx -t nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok #这里显示ok就证明语法没问题可以启动nginx nginx: configuration file /apps/nginx/conf/nginx.conf test is successful代码注释 -t检查配置文件。 3.8 启动nginx 启动nginx [rootmufengrow7 nginx]# ./sbin/nginx3.9 查看nginx启动情况 [rootmufengrow7 nginx]# ps -ef | grep nginx | grep -v grep root 5358 1 0 12:00 ? 00:00:00 nginx: master process ./sbin/nginx nobody 5359 5358 0 12:00 ? 00:00:00 nginx: worker process代码注释 -ef在-ef里可以分出两个选项-e和-f -e显示所有执行程序的进程除会话领导者与终端关联的进程 -f显示UID,PPIP,C与STIME栏位 -v选择不匹配的行 3.10 登录网页验证模块 3.10.1 使用“nginx-module-vts”默认模式查看nginx状态 浏览器访问 10.0.0.7/status进入网页后我们能看到模块给我们现实的结果 3.10.2 使用“nginx-module-vts”其他模式查看nginx状态 “nginx-module-vts”内置了4种查看nginx状态的格式我们上一点已经展示过使用html格式来展示nginx的状态接下来我们会用“json”、“jsonp”、“prometheus”来展示nginx的状态。 “json”格式 浏览器访问http://10.0.0.7/status/format/json 四. 安装nginx-vts-exporter 4.1 下载nginx_vts_exporter 下载nginx_vts_exporter二进制包 #进入安装目录 [rootmufengrow7 nginx]# cd /apps #下载nginx_vts_exporter二进制包 [rootmufengrow7 apps]# wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz4.2 解压nginx_vts_exporter 对nginx_vts_exporter二进制包进行解压 [rootmufengrow7 apps]# tar xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz [rootmufengrow7 apps]# cd nginx-vts-exporter-0.10.3.linux-amd64/解压后可以看到里面之后一个可执行文件 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# ls LICENSE nginx-vts-exporter4.3 查看帮助文档 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# ./nginx-vts-exporter --help Usage of ./nginx-vts-exporter:-insecureIgnore server certificate if using https (default true)-metrics.namespace stringPrometheus metrics namespace. (default nginx)-nginx.scrape_timeout intThe number of seconds to wait for an HTTP response from the nginx.scrape_uri (default 2)-nginx.scrape_uri stringURI to nginx stub status page (default http://localhost/status)-telemetry.address stringAddress on which to expose metrics. (default :9913)-telemetry.endpoint stringPath under which to expose metrics. (default /metrics)-versionPrint version information.为了更直观一些我们把参数用表格来展示 参数描述-insecure如果使用https忽略服务器证书(默认为true)-metrics.namespaceprometheus的metrics的命名空间默认是nginx-nginx.scrape_timeout等待来自nginx的HTTP相应的秒数默认是2秒-nginx.scrape_uri指定nginx状态页面的URI默认是http://localhost/status-telemetry.addressexporter暴露的端口默认是9913-telemetry.endpoint公开的metrics路径默认是“/metrics”-version显示版本信息 4.4 启动nginx-vts-exporter 这里添加选项让nginx-vts-exporter从nginx-module-vts的json格式下采集数据 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# nohup /apps/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_uri http://localhost/status/format/json [1] 5440 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# nohup: ignoring input and appending output to ‘nohup.out’ #出现日志文件路径信息继续按回车 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# #回到标准输入的状态4.5 查看nginx-vts-exporter启动状态 我们可以通过查看pid、端口和查看日志的方式确实“nginx-vts-exporter”的启动状态通过下面的结果我们可以看出“nginx-vts-exporter”已经在正常运行。 #查看pid [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# ps -ef | grep nginx-vts-exporter | grep -v grep root 5440 1680 0 12:36 pts/0 00:00:00 /apps/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter #查看端口 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# ss -tnl | grep 9913 | grep -v grep LISTEN 0 128 [::]:9913 [::]:* #查看日志 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# tail -f nohup.out 2023/03/07 12:36:37 Starting nginx_vts_exporter (version0.10.3, branchHEAD, revision8aa2881c7050d9b28f2312d7ce99d93458611d04) 2023/03/07 12:36:37 Build context (gogo1.10, userroot56ca8763ee48, date20180328-05:47:47) 2023/03/07 12:36:37 Starting Server at : :9913 2023/03/07 12:36:37 Metrics endpoint: /metrics 2023/03/07 12:36:37 Metrics namespace: nginx 2023/03/07 12:36:37 Scraping information from : http://localhost/status4.6 查看nginx-vts-exporter采集的数据 浏览器访问 10.0.0.7:9913/metrics 五. 配置prometheus拉取数据 5.1 修改prometheus的配置文件 修改的方式如图 其中job_name、prometheus读取配置文件的方式、目标的ip和端口都可以根据需求自行修改。 5.2 让prometheus重新读取配置文件 检查prometheus配置文件语法 #进入prometheus安装目录 [rootmufengrow7 nginx-vts-exporter-0.10.3.linux-amd64]# cd /apps/prometheus #执行命令检查语法 [rootmufengrow7 prometheus]# ./promtool check config prometheus.yml Checking prometheus.ymlSUCCESS: prometheus.yml is valid prometheus config file syntax重启prometheus 通过重启让prometheus重新读取配置文件 [rootmufengrow7 prometheus]# systemctl restart prometheus六.查看prometheus的监控数据 6.1 到网页端查看prometheus监控目标 我们到prometheus的网页端查看prometheus采集数据的目标是否有有nginx通过下图我们知道prometheus已经有采集nginx的数据了。 6.2 在prometheus网页查询结果 接下来我们到prometheus的查询面板查看prometheus有没有采集到nginx的数据 查询nginx版本 查看nginx出现“4XX”的次数 查看nginx的requests的次数 计算nginx在一分钟内的QPS 如果通过prometheus内置函数计算QPS可以参考文章prometheus常用的内置函数 通过以上的查询我们也知道了prometheus有采集到nginx-vts-exproter的数据 七、grafana导入模板 本文中的grafana已经安装好了如果你还未安装可以参考文章promehtheus整合grafana实现可视化监控实战 7.1 导入模板 grafana模板推荐编号2949 导入模板 输入模板编号点击Load 点击import 修改数据源点击Import 7.2 查看模板效果 思考 既然“nginx-module-vts”有专门给prometheus采集的格式那么是否可以直接通过prometheus采集“nginx-module-vts”的数据而不必添加一个“nginx-vts-module”的中间件呢 答案prometheus可以直接采集“nginx-module-vts”的数据 修改配置文件如下图 Prometheus重启后查看target 查询数据nginx的连接数 注意对应的查询语句也要跟着改变如果不知道查询语句的可以到“http://10.0.0.7/status/format/prometheus”进行查询 八、Nginx常见监控指标 8.1 基本活跃指标 nginx的基本活跃指标是可以通过“ngx_http_stub_status_module”模块来获取的。 名称描述Accepts接受nginx接受客户端的连接数Handled已处理成功处理客户端连接数Active活跃当前活跃的客户端连接数Requests请求数客户端请求书Waiting等待正在等待的连接数Reading读正在读操作的连接数Writing写正在写操作的连接书 8.2 nginx的QPS 我们可以使用Prometheus的PromQL的内置函数进行计算。 通过nginx计算的QPS我们可以看出nginx服务的请求情况通过QPS监控可以了解是否有恶意攻击和对nginx的可行性进行判断。 8.3 nginx错误率 通过对错误代码的监控可以知道客户端收到的结果是否正确。如果某段时间内错误结果不断飙升证明网站可能出现物体 错误代码为4XX表示客户端错误代码 5XX表示服务端错误代码 九、总结 Prometheus监控nginx的步骤为 安装Prometheus编译安装nginx注意nginx需要安装“nginx-moudle-vts”模块安装“nginx-vts-exporter”在设置对应的参数后启动修改Prometheus的配置文件添加监控ngxin的实例并重新读取配置文件进入Prometheus的WEB页面进行查看 我是沐风晓月文章首发于csdn你的支持就是我的动力。 好啦这就是今天要分享给大家的全部内容了我们下期再见✨ ✨ ✨ 如果你喜欢的话就不要吝惜你的一键三连了~
http://www.w-s-a.com/news/750653/

相关文章:

  • 做整站优化漳州建网站
  • jsp网站建设期末作业搜索引擎优化的定义是什么
  • 网站建设一级页面二级页面WordPress托管如果使用插件
  • 网站导航栏设计代码织梦做泰文网站
  • 网站建设的定位是什么南通网站定制费用
  • 怎么seo网站推广能免费观看所有电视剧的app
  • 大学网站建设做网站的用什么软件呢
  • 网站建设建设公司哪家好seo网站优化推广
  • 网站服务器组建网站案例上海
  • 盘锦949公社最新招聘优化大师免费版
  • 国外有哪些网站是做弱电的中国国家培训网正规吗
  • 30分钟网站建设教程视频全屋整装120平米的多少钱
  • 生成链接的网站aso优化平台
  • 策划网站建设方案电商扶贫网站建设
  • 网站策划建设方法企业网站建设问题研究
  • 昆明专业网站建设的公司帮别人制作wordpress赚钱吗
  • 高校校园网站建设天水市建设局网站公告
  • 北京网站建设需要花多少钱企业建设网站的目的是
  • 网站模板 免费百度seo优化招聘
  • 过年做那些网站能致富怎样免费建立自己网站
  • 网站去哪里备案长沙网络推广
  • 企业网站规划书vue适合什么样的网站开发
  • 个人网站备案名字网站设计的提案
  • 网站自己做还是找人做常州钟楼区邹区建设局网站
  • 网站文件上传wordpress修改asp做微网站
  • 妇女之家网站建设方案英语不行如何编程做网站
  • 深圳企业网站建设推广服务网站托管一年多少钱
  • wordpress 百度地图api网络seo天津
  • 网站营销咨询顾问餐饮加盟网站建设方案
  • 网站后台管理系统的重要技术指标wordpress下单邮件通知的实现