Prometheus监控nginx

创建nginx-docker配置文件

mkdir /data/nginx/conf.d/ -p
cd /data/nginx/conf.d/
data/nginx/conf.d# ls



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-docker

mkdir /data/docker-compose -p
cd /data/docker-compose/


cat >docker-compose.yaml<<'EOF'
version: '3'
services:
  nginx:
    image: nginx:1.21.6
    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
EOF

启动nginx_docker

docker-compose up -d

nginx 开启stub_status


确认是否有该模块 with-http_stub_status_module 模块

docker exec -it nginx nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module

nginx 开启stub_status配置
```
cat >>server.conf<< 'EOF'
server {
    listen 80;
    server_name localhost;
......
    
    location /stub_status {
        stub_status on;
        access_log off;
        allow 0.0.0.0/0;
        deny all;
    }
......
}
EOF


具体配置
```
server {
    listen 80;
    server_name localhost;

    location /stub_status {
        stub_status on;
        access_log off;
        allow 0.0.0.0/0;
        deny all;
    }
    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;
    }
}

重新加载nginx 配置测试

root@prometheus220:/data/nginx/conf.d# docker exec -it nginx nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful



root@prometheus220:/data/nginx/conf.d# docker exec -it nginx nginx -s reload

root@prometheus220:/data/nginx/conf.d# curl http://localhost/stub_status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 
```

配置nginx-exporter

cd /data/nginx/

cat >docker-compose.yaml <<'EOF'
version: '3.3'
services:
  nginx_exporter:
    image: nginx/nginx-prometheus-exporter:0.8.0
    container_name: nginx_exporter
    hostname: nginx_exporter
    command:
      - '-nginx.scrape-uri=http://10.19.1.220/stub_status'
    restart: always
    ports:
      - '9113:9113'
EOF

启动


docker-compose up -d

确认docker ps -a 

http://10.19.1.220:9113/metrics

prometheus.yml 增加配置

nginx_exporter监控样本数据

cat >> prometheus/prometheus.yml << 'EOF'
  - job_name: 'nginx_exporter'
    scrape_interval: 30s
    static_configs:
    - targets: ['10.19.1.220:9113']
      labels:
        instance: nginx服务器 
EOF

curl -X POST http://localhost:9090/-/reload

prometheus 界面显示nginx_exporter

增加告警阀值

cd /data/docker-prometheus

cat >>prometheus/alert.yml << 'EOF'
- name: nginx
  rules:
  #对任何实例操过30s无法联系的情况发出告警
  - alert: NginxDown
    expr: nginx_up == 0
    for: 30s
    labels: 
      serverity: critical
    annotations:
      summary: "nginx异常,实例:{
  { $labels.instance }}"
      description: "{
  { $labels.job }} nginx 已关闭"
EOF
```
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
curl -X POST http://localhost:9090/-/reload

添加nginx_dashboard

https://grafana.com/grafana/dashboards/12708


 

相关推荐

  1. Prometheus监控nginx

    2024-01-01 06:54:04       37 阅读
  2. 10分钟快速使用Prometheus监控nginx

    2024-01-01 06:54:04       11 阅读
  3. Prometheus监控Linux

    2024-01-01 06:54:04       39 阅读
  4. Prometheus监控mysql

    2024-01-01 06:54:04       37 阅读
  5. Prometheus监控redis

    2024-01-01 06:54:04       44 阅读
  6. Prometheus 监控docker

    2024-01-01 06:54:04       38 阅读
  7. Prometheus监控告警

    2024-01-01 06:54:04       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 06:54:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 06:54:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 06:54:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 06:54:04       18 阅读

热门阅读

  1. 在Neo4j中实现推荐算法

    2024-01-01 06:54:04       37 阅读
  2. 数据挖掘与知识发现:解析关键概念

    2024-01-01 06:54:04       25 阅读
  3. 常用的几种包管理器 npm yarn cnpm pnpm 安装

    2024-01-01 06:54:04       41 阅读
  4. 计算机基础--Linux详解

    2024-01-01 06:54:04       33 阅读
  5. 第82讲:MySQL Binlog日志的滚动

    2024-01-01 06:54:04       35 阅读
  6. git 命令

    2024-01-01 06:54:04       38 阅读
  7. yii2 mysql重连机制

    2024-01-01 06:54:04       37 阅读
  8. 基于SpringBoot的电影购票系统

    2024-01-01 06:54:04       36 阅读
  9. 【算法】数论---快速幂

    2024-01-01 06:54:04       42 阅读
  10. 剑指offer题解合集——Week2day6

    2024-01-01 06:54:04       42 阅读
  11. C语言之冒泡排序

    2024-01-01 06:54:04       34 阅读
  12. SQL高级:存储过程和触发器

    2024-01-01 06:54:04       36 阅读
  13. Linux常用命令总结

    2024-01-01 06:54:04       35 阅读