05 . Prometheus监控Nginx
2020-06-21 17:30
671 查看
List
CentOS7.3 prometheus-2.2.1.linux-amd64.tar.gz nginx-module-vts
节点名 | IP | 软件版本 | 硬件 | 网络 | 说明 |
---|---|---|---|---|---|
Prometheus | 192.168.0.106 | list 里面都有 | 2C4G | Nat,内网 | 测试环境 |
Nginx | 192.168.0.107 | list 里面都有 | 2C4G | Nat,内网 | 测试环境 |
部署Prometheus
部署Promehteus请看我前面写的文章
https://www.cnblogs.com/you-men/p/12839535.html
部署Nginx
三个模块
nginx-module-vts:Nginx virtual host traffic status module, # Nginx的监控模块,能够提供JSON格式的数据产出。 nginx-vts-exporter:Simple server tha ad8 t scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。 # 主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。 Prometheus: # 监控Nginx-vts-exporter提供的Nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。
Nginx-module-vts模块编译
# nginx_vts_exporter依赖nginx-module-vts模块,安装此模块无需任何其他依赖。模块与Nginx的版本兼容性如下: 1.11.x (last tested: 1.11.10) 1.10.x (last tested: 1.10.3) 1.8.x (last tested: 1.8.0) 1.6.x (last tested: 1.6.3) 1.4.x (last tested: 1.4.7)
部署nginx-module-vts
# 下载编译模块 git clone git://github.com/vozlt/nginx-module-vts.git # 编译配置 --add-module=/path/to/nginx-module-vts # 下载官方的软件包并编译进vts模块,例如: ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_sysguard_module --add-module=nginx-module-vts # 安装Nginx #!/usr/bin/env bash version="nginx-1.14.2.tar.gz" user="nginx" nginx=${version%.tar*} path=/usr/local/src/$nginx echo $path if ! ping -c2 www.baidu.com &>/dev/null then echo "网络不通,无法安装" exit fi yum install -y gcc gcc-c++ openssl-devel pcre-devel make zlib-devel wget psmisc if [ ! -e $version ];then wget http://nginx.org/download/$version fi if ! id $user &>/dev/null then useradd $user -M -s /sbin/nologin fi if [ ! -d /var/tmp/nginx ];then mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi} fi tar xf $version -C /usr/local/src cd $path ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --add-module=/usr/local/src/nginx-1.14.0/nginx-module-vts/ && make && make install
配置nginx.conf
http { vhost_traffic_status_zone; vhost_traffic_status_filter_by_host on; server { location /status { vhost_traffic_status_display; vhost_traffic_status_display_format html; } } }
配置建议
1 . 打开vhost过滤:
vhost_traffic_status_filter_by_host on;
开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上2 . 在不想统计流量的server区域禁用vhost_traffic_status,配置示例:
server { ... v 56c host_traffic_status off; ... }
假如nginx没有规范配置server_name或者无需进行监控的server上,那么建议在此vhost上禁用统计监控功能。否则会出现“127.0.0.1”,hostname等的域名监控信息。
查看监控数据
安装完vts模块后,可以通过nginx status接口进行监控数据的查看,比如:http://127.0.0.1/status:
配置Nginx-vts-exporter
exporter会收集nginx性能指标的JSON格式数据,并汇总后暴露监控接口给Prometheus。
它的安装使用很简单,开箱即用
下载软件包
wget -c https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.9.1/nginx-vts-exporter-0.9.1.linux-amd64.tar.gz
配置运行
tar xvf nginx-vts-exporter-0.9.1.linux-amd64.tar.gz nginx-vts-exporter-0.9.1.linux-amd64/nginx-vts-exporter -nginx.scrape_timeout 10 -nginx.scrape_uri http://127.0.0.1/ ad8 status/format/json # 推荐exporter和nginx安装在同一台机器上,如果不在同一台主机,把scrape_uri改为nginx主机的地址。 # nginx_vts_exporter的默认端口号:9913,对外暴露监控接口http://xxx:9913/metrics. # 我们可以访问浏览器 IP:9913
将node exporter配置到prometheus里
# 配置Prometheus,收集node exporter的数据 # 可以看到node exporter启动后也就是暴露了9100端口,并没有把数据传到prometheus, # 我们还需要在prometheus中配置,让prometheus去pull这个接口的数据。 # 我们去监控主机编辑prometheus.yml文件,修改最后几行,然后重启服务 vim /usr/local/prometheus/prometheus.yml scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'nginx' static_configs: - targets: ['192.168.0.107:9913'] # node节点的targets处的IP填写你要监控的node的IP. systemctl restart prometheus # 我们登录到Prometheus主机,看下这个节点是不是up状态
Grafana安装
此处我们拿prometheus做例子,虽然说prometheus能展示一些图表,但对比Grafana,那只是过家家,接下来我们在同一个服务器安装Grafana服务,用来展示prometheus收集到的数据
下载并解压安装包
wget https://dl.grafana.com/oss/release/grafana-6.4.2.linux-amd64.tar.gz tar xvf grafana-6.4.2.linux-amd64.tar.gz -C /usr/local/ ln -s /usr/local/grafana-6.4.2/ /usr/local/grafana
创建grafana用户及数据存放目录
useradd -s /sbin/nologin -M grafana mkdir /data/grafana mkdir /data/grafana/plugins mkdir /data/grafana/provisioning mkdir /data/grafana/data mkdir /data/grafana/log chown -R grafana:grafana /usr/local/grafana/ chown -R grafana:grafana /data/grafana/
修改配置文件
vim /usr/local/grafana/conf/defaults.ini data = /data/grafana/data logs = /data/grafana/log plugins = /data/grafana/plugins provisioning = /data/grafana/conf 56c /provisioning
把grafana-server添加到systemd中
vim /usr/lib/systemd/system/grafana-server.service [Unit] Description=Grafana After=network.target [Service] User=grafana Group=grafana Type=notify ExecStart=/usr/local/grafana/bin/grafana-server -homepath /usr/local/grafana Restart=on-failure [Install] WantedBy=multi-user.target systemctl start grafana-server && systemctl enable graana-server
启动服务,并用web访问http://IP:3000,默认3000端口,admin/admin
添加数据源
# grafana虽然已经安装好了,但是这个时候还没有数据,没办法作图。 # 下面我们把grafana和prometheus关联起来,也就是在grafana中添加添加数据源。 # 在配置页面点击添加数据源,然后选择prometheus,输入prometheus服务的参数即可。
添加nginx模板
相关文章推荐
- Prometheus 监控 Nginx 流量 (三)
- Prometheus 监控 Nginx 流量 (三) - Vovolie - 博客园
- prometheus简单监控Linux,mysql,nginx
- 用Prometheus细化Nginx监控
- Prometheus 监控 Nginx 流量 (三)
- 使用prometheus监控nginx
- .NetCore下使用Prometheus实现系统监控和警报 (六)进阶Grafana集成自定义收集指标
- Linux 生产环境实时监控Nginx脚本
- Nginx日志监控(包括可视化)工具
- Zabbix 监控 Nginx 状态
- zabbix监控nginx 状态
- cacti监控nginx
- python小实例--监控Nginx配置文件的不同并且邮件报警
- centos7下安装nginx-rrd性能监控工具
- zabbix监控 nginx 进程
- 利用ngxtop实时监控nginx的访问情况
- Zabbix监控nginx性能
- Spring Boot Actuator metrics 使用Prometheus 和 Grafana 进行监控(二)
- 基于Nginx1.9+LuaJIT+Kafka的点播监控系统实战(上海卓越智慧树网点播监控系统)
- zabbix_sender主动上传k/v监控nginx日志状态码