首页 > 系统相关 >监控nginx

监控nginx

时间:2023-10-24 23:15:28浏览次数:38  
标签:status exporter stub nginx prometheus 监控 docker

1、nginx安装

1.1、创建nginx目录

mkdir ~/docker/monitor_alarm/docker-server/nginx/conf.d -p
cd ~/docker/monitor_alarm/docker-server/nginx/conf.d

在~/docker/monitor_alarm/docker-server/nginx/conf.d 目录里面新增加nginx的配置文件

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

1.2、docker-compose 安装rabbitmq、nginx、mongo、redis

mkdir ~/docker/monitor_alarm/docker-server
cd  ~/docker/monitor_alarm/docker-server

通过cat创建docker-compose.yaml文件

cat > docker-compose.yaml <<"EOF"
version: '3'
services:
  redis:
    image: redis:5
    container_name: redis_prom
    command: redis-server --requirepass 123456 --maxmemory 512mb
    restart: always
    volumes:
      - /home/lihaiyang/docker/monitor_alarm/docker-server/redis/data:/data
    ports:
      - 6380:6379
  nginx:
    image: nginx:1.21.6
    container_name: nginx_prom
    restart: always
    volumes:
      - /home/lihaiyang/docker/monitor_alarm/docker-server/nginx/conf.d:/etc/nginx/conf.d
      - /home/lihaiyang/docker/monitor_alarm/docker-server/nginx/html:/usr/share/nginx/html
      - /home/lihaiyang/docker/monitor_alarm/docker-server/nginx/log:/var/log/nginx
    ports:
      - 8081:80

  rabbitmq:
    image: rabbitmq:3.7.15-management
    container_name: rabbitmq_prom
    restart: always
    volumes:
      - /home/lihaiyang/docker/monitor_alarm/docker-server/rabbitmq/data:/var/lib/rabbitmq
      - /home/lihaiyang/docker/monitor_alarm/docker-server/rabbitmq/log:/var/log/rabbitmq
    ports:
      - 5673:5672
      - 15672:15672

  mongo:
    image: mongo:4.2.5
    container_name: mongo_prom
    restart: always
    volumes:
      - /home/lihaiyang/docker/monitor_alarm/docker-server/mongo/db:/data/db
    ports:
      - 27017:27017
    command: [--auth]
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 123456
EOF

2、监控nginx

2.1、nginx开启stub_status

注:nginx需要with-http_stub_status_module
检查是否安装有with-http_stub_status_module模块

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

2.2、nginx开启stub_status配置

server {
    location /stub_status {
        stub_status on;
        access_log off;
        allow 0.0.0.0/0;
        deny all;
    }
}

2.3、重新加载配置文件

docker exec -it nginx_prom nginx -s reload

2.4、检查

curl http://ip:8081/stub_status

正常如下图所示
image
参数解释
Active connections 活动连接数
accepts 接收请求书
handled 成功处理请求数
requests 总请求数
reading 正在进行读操作的请求数
writing 正在进行写操作的请求数
waiting 正在等待的请求数

2.5、nginx_exporter安装

nginx_exporter 下载地址:https://github.com/nginxinc/nginx-prometheus-exporter/releases

2.5.1、二进制安装

# 下载
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_arm64.tar.gz

# 创建文件夹
mkdir /opt/prometheus/nginx_exporter -p

# 解压到/opt/prometheus/nginx_exporter
tar -zxvf nginx-prometheus-exporter_0.11.0_linux_arm64.tar.gz -C /opt/prometheus/nginx_exporter

# 查看
ls -l /opt/prometheus/nginx_exporter

# 创建用户
useradd -M -s /usr/sbin/nologin prometheus

# 更改/opt/prometheus权限
chown -R prometheus:prometheus /opt/prometheus

# 创建systemd服务
cat > /etc/systemd/system/nginx_exporter.service <<"EOF"
[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://192.168.209.102/stub_status

[Install]
WantedBy=multi-user.target
EOF

# 重载
systemctl daemon-reload
# 启动
systemctl start nginx_exporter
# 查看状态
systemctl status nginx_exporter
# 开机自启动
systemctl enable nginx_exporter

# 启动不了检查日志
journalctl -u nginx_exporter -f

2.5.2、docker-compose安装

mkdir ~/docker/monitor_alarm/nginx_exporter -p
cd ~/docker/monitor_alarm/nginx_exporter
cat > docker-compose.yaml <<"EOF"
version: '3.3'
services:
  nginx_exporter:
    image: nginx/nginx-prometheus-exporter:0.11
    container_name: nginx_exporter
    hostname: nginx_exporter
    command:
      - '-nginx.scrape-uri=http://192.168.209.102:8081/stub_status'
    restart: always
    ports:
      - "9113:9113"
EOF

# 启动
docker-compose up -d
# 检查
docker-compose ps 或 docker-compose logs nginx_exporter

3、参数解释

Environment variable 命令行参数 description
-nginx.scrape-uri nginx stub_status

4、metrics地址

http://ip:9113/metrics

5、Prometheus配置

配置prometheus去采集(拉取)nginx_exporter的监控样本数据

cd /opt/prometheus/prometheus

# 在scrape_config(搜刮配置)下面增加如下配置
  - job_name: "nginx_exporter"
    static_configs:
    - targets: ["192.168.68.200:9113"]
      labels:
        instance: test nginx服务器

6、添加触发器

cd /opt/prometheus/prometheus
vi alert.yml
- name: nginx
  rules:
    # 对任何实力超过30秒无法访问的情况发出警报
    - alert: nginxDown
      expr: nginx_up == 0
      for: 30s
      labels:
        severity: critical
      annotations:
        summary: "nginx异常,实例:{{ $labels.instance }}"
        description: "{{ $labels.job }} nginx已关闭"

6.1、检查配置

# 二进制
./promtool check config prometheus.yml
# docker
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

6.2、重新加载配置

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

7、dashboard

grafana展示prometheus从nginx_exporter收集到的数据
https://grafana.com/grafana/dashboards/12708

标签:status,exporter,stub,nginx,prometheus,监控,docker
From: https://www.cnblogs.com/hg-super-man/p/17784843.html

相关文章

  • 1.从零开始编写一个类nginx工具, 准备篇, 动手造轮子
    wmproxywmproxy将用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,后续将实现websocket代理,内外网穿透等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxyP......
  • Filebeat收集Nginx日志
    4.1为什么收集Nginx日志我们需要获取用户的信息,比如:来源的IP是哪个地域,网站的PV、UV、状态码、访问时间等等;所以需要收集Nginx日志;4.2Nginx日志收集架构图4.3Nginx日志收集实践4.3.1安装Nginxyuminstallnginx-ycat/etc/nginx/conf.d/elk.confserver{ listen5555;......
  • 关于Nginx缓存
    Nginx缓存一般情况下系统用到的缓存有三种服务端缓存:缓存存在后端服务器,如redis代理缓存:缓存存储在代理服务器或中间件,内容从后端服务器获取,保存在本地客户端缓存:缓存在浏览器什么时候会出现304?服务器响应中包含有ETag和last-modified,浏览器下次去请求时会发送这两个标签,......
  • 安防视频监控平台EasyCVR新版(3.4)平台界面更新2.0
    视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • 安防监控视频汇聚平台EasyCVR增加AI算法列表接口的实现方法
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等功能。平台既具备传统安防监控的能力,也支持提供AI算力算法接入的能力。今天我们......
  • 安防监控视频汇聚平台EasyCVR增加AI算法列表接口的实现方法
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等功能。平台既具备传统安防监控的能力,也支持提供AI算力算法接入的能力。今天......
  • 智能视频监控平台EasyCVR接口调用注意事项汇总!
    TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,包括对人、车、......
  • 安防视频监控系统EasyCVR出现偶发不能播放的现象是什么原因?
    视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,支持多类型设备、多协议方式接入,具体包括:国标GB28181协议、RTMP、RTSP/Onvif、海康Ehome,以及海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石SDK等,可覆盖市面上绝大多数的视频源设备。有用户反馈,在使用视频......
  • linux服务器常用监控指标
    1、环境准备1.1、安装docker和docker-compose环境https://www.cnblogs.com/hg-super-man/p/10908220.html2、安装node_exporterhttps://prometheus.io/download/2.1二进制安装node_exporter#下载node_exporter二进制压缩包wgethttps://github.com/prometheus/node_expor......
  • 精雕细刻:通过监控易提升IT运维的用户体验
    一、用户体验在IT运维中的核心地位  在当前的数字化时代,用户体验已不仅仅局限于产品或服务的使用感受,它深入到每一个业务运营和技术运维的细节之中。尤其在IT运维领域,优秀的用户体验是保障业务连续性、减少运维风险、提升团队工作效率的关键。在这里,我们不仅要关注最终用户的体......