配置 Nginx 以输出监控数据
-
修改 Nginx 配置:
在 Nginx 配置文件/etc/nginx/nginx.conf
中的server
块添加如下配置:location /stub_status {stub_status on;access_log off;allow 0.0.0.0/0;deny all; }
-
重启 Nginx:
通过命令重启 Nginx 服务:systemctl restart nginx
-
检查 Nginx 服务状态:
查看 Nginx 服务的当前状态:systemctl status nginx
安装与配置 Nginx Prometheus Exporter
-
下载二进制文件:
使用wget
命令下载nginx-prometheus-exporter
:wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz
-
创建目录并解压文件:
在指定位置创建目录并解压:mkdir -p /opt/prometheus/nginx_exporter tar xvf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz -C /opt/prometheus/nginx_exporter
-
检查解压内容:
确认文件已正确解压:ls -l /opt/prometheus/nginx_exporter
-
创建运行用户:
为运行服务创建专用用户:(如果有就不需要执行了)useradd -M -s /usr/sbin/nologin prometheus
-
更改文件权限:
将文件目录的所有权转给新用户:chown -R prometheus:prometheus /opt/prometheus
-
创建 systemd 服务文件:
编写并保存 systemd 服务配置:(注意替换IP和端口)[Unit] Description=nginx-prometheus-exporter After=network.target[Service] Type=simple User=prometheus Group=prometheus Restart=always ExecStart=/opt/prometheus/nginx_exporter/nginx-prometheus-exporter -nginx.scrape-uri=http://XXXXXX:port/stub_status[Install] WantedBy=multi-user.target
-
启动与设置服务:
启动并设置开机自启:systemctl daemon-reload systemctl start nginx_exporter.service systemctl enable nginx_exporter.service
-
检查服务状态:
验证服务是否正常运行:systemctl status nginx_exporter.service
-
查看服务日志:
如果遇到问题,可以通过日志调试:journalctl -u nginx_exporter.service -f
配置 Prometheus 监控
-
修改 Prometheus 配置文件:
编辑 Prometheus 的配置文件以添加监控任务:- job_name: 'nginx_exporter' static_configs: - targets: ['10.40.111.41:9113'] labels: instance: 'Application Server -1 (10.40.111.41)'
-
配置警报规则:
在规则文件中添加 Nginx 监控警报:
vim /opt/prometheus/rules/nginx.rules.yml
- name: nginxrules:- alert: NginxDownexpr: nginx_up == 0for: 30slabels:severity: criticalannotations:summary: "nginx异常,实例:{{ $labels.instance }}"description: "{{ $labels.job }} nginx已关闭"
-
检查警报配置文件:
确认警报配置无误:/opt/prometheus/alertmanager/amtool check-config /opt/prometheus/alertmanager/alertmanager.yml
-
重新加载 Prometheus 配置:
通过 API 重新加载 Prometheus 配置:curl -X POST http://localhost:9090/-/reload
Grafana添加Nginx监控模板
**这里使用Nginx的模板ID:11199**