監控nginx
## 一、prometheus監控nginx
docker安裝(略)
docker-compose安裝(略)
## 1.1待監控Linux安裝nginx
創建nginx目錄
mkdir /data/nginx -p
cd /data/nginx
創建docker-compose.yaml
vim docker-compose.yaml
配置如下:
services:
nginx:
image: registry.cn-hangzhou.aliyuncs.com/ldw520/nginx:latest
container_name: nginx
restart: always
volumes:
- /data/nginx/conf.d:/etc/nginx/conf.d
- /data/nginx/html:/usr/share/nginx/html
- /data/nginx/log:/var/log/nginx
ports:
- 80:80
啟動 docker-compose.yaml
docker-compose up -d
查看docker的信息
docker images
docker ps -a
創建nginx配置文件
cd /data/nginx/conf.d
cat >>server.conf<< "EOF"
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF
重啟nginx
cd /data/nginx
docker-compose down
docker-compose up -d
創建默認index.html
vi /data/nginx/html/index.html

訪問地址
http://192.168.100.141/index

<hr>
## 1.2 nginx開啟監控
centos2機器上,編輯docker-compose.yaml文件
docker exec -it nginx nginx -V 2>&1 | grep --color -o with-http_stub_status_module
* **如果顯示了`with-http_stub_status_module`**:這意味著`http_stub_status_module`已經啟用,你可以繼續配置 Nginx 以使用此模塊。
* **如果沒有顯示**:這意味著在編譯 Nginx 時沒有包含`http_stub_status_module`。在這種情況下,你通常需要重新編譯 Nginx,或者使用一個已經包含該模塊的 Nginx 版本。對于 Docker 容器,你可能需要:
* 查找一個已經包含此模塊的官方或第三方 Docker 鏡像。
* 從源代碼自行編譯 Nginx 并創建一個新的 Docker 鏡像。
##### 配置 Nginx 使用`stub_status`
一旦確認`http_stub_status_module`已啟用,你可以在 Nginx 配置文件中添加`stub_status`配置。通常,你會在`http`塊中添加一個`location`塊,如下所示:
vi /data/nginx/conf.d/server.conf
server {
listen 80;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 0.0.0.0/0; # 允許訪問的IP地址,可以根據需要修改
deny all;
}
}
完成配置后,不要忘記重新加載或重啟 Nginx 以應用更改。
docker exec -it nginx nginx -s reload
訪問 http://192.168.100.141/stub_status

<hr>
## 二、prometheus監控mysql
## 2.1docker安裝(略)
## 2.2docker-compose安裝(略)
## 2.3 安裝nginx_exporter
centos2機器上,編輯docker-compose.yaml文件
vi docker-compose.yaml
如圖所示:加入一個nginx_exporter配置

nginx-exporter:
image: nginx/nginx-prometheus-exporter:0.11
container_name: nginx_exporter
hostname: nginx_exporter
command:
- '-nginx.scrape-uri=http://192.168.100.141/stub_status'
restart: always
ports:
- "9113:9113"
運行docker-compose up-d的命令,觀察mysql的程序是否成功運行
宿主機上訪問mysqld_exporter的metrics
http://192.168.100.141:9113/metrics
<hr>
## 2.4 prometheus服務器添加nginx_exporter的地址
192.168.100.85的centos上,修改prometheus的配置文件
#進入docker-prometheus目錄
cd /data/docker-prometheus
#修改prometheus.yml
vi prometheus/prometheus.yml
添加nginx_exporter配置如下圖:

- job_name: "nginx-exporter"
static_configs:
- targets: ["192.168.100.141:9113"]
labels:
istance: "centos2服務器nginx監聽"
保存后輸入命令更新:
curl -XPOST http://localhost:9090/-/reload
成功監聽

<hr/>
## 1.4 mysql服務器指標查詢
nginx_connections_accepted #接收請求數
nginx_connections_active #活動連接數
nginx_connections_handled #成功處理請求數
nginx _connections_reding #正在進行讀操作的請求數
nginx connections_waiting #正在等待的請求數
nginx_connections_writing #正在進行寫操作的請求數
nginx connections_requests #總請求數
<hr>
2.6 grafana中對mysql進行監控
copy id to clipboard->grafana的dashboards中lmport dashboard
https://grafana.com/grafana/dashboards/12708-nginx/


- Prometheus教程
- 一. dokcer 安裝
- 二. 安裝docker-compose
- 三. docker-compose安裝Prometheus
- 四. 配置grafana的數據源
- 五. Prometheus的Exporter
- 六. Prometheus的基本術語
- 七. 監控Linux
- 八. 監控redis和mongodb
- 九. 監控mysql數據庫
- 十. 監控go程序
- 十一. 監控nginx
- 十二. 監控消息隊列
- 十三. 監控docker
- 十四. 監控進程
- 十五. 域名監控
- 十六. SNMP監控
- 十七. 黑盒監控
- 十八. 自定義監控
- 十九. go實現自定義監控
- 二十. 服務發現概述
- 二十一. 基于文件的服務發現
- 二十二. 基于Consul的服務發現
- 二十三. relabeling機制