Prometheus:监控Nginx状态

一.安装nginx

1.安装相关依赖

yum install -y gcc gcc-c++ make libtool wget pcre pcre-devel zlib zlib-devel openssl openssl-devel

 2.下载nginx安装包

wget  https://nginx.org/download/nginx-1.27.1.tar.gz

3. 安装nginx

# 解压

tar -xzvf nginx-1.27.1.tar.gz

# 预编译

./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_ssl_module --with-pcre --with-http_stub_status_module

#编译&安装
make && make install

4.修改nginx.conf配置文件
   server {
        listen       80;
        location /nginx_status {
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            deny all;
        }
     }
一.编译安装
# ./nginx -t        #安装查看配置文件是否正确
# ./nginx -s reload  #重新加载配置文件
二.docker安装
# docker exec -it nginx nginx -t
# docker exec -it nginx nginx -s reload   
5.启动nginx,查看是都开启stub_status
# ./nginx -V 2>&1 | grep -o with-http_stub_status_module   #编译安装查看
# docker exec -it nginx nginx -V 2>&1 | grep -o with-http_stub_status_module   #docker安装查看
# curl http://localhost:80/nginx_status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 
6.安装nginx-prometheus-exporter
1.下载nginx-prometheus-exporter
# wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz

2.解压安装包
# mkdir nginx-prometheus-exporter
# tar -zxvf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz -C nginx-prometheus-exporter

3.启动nginx-prometheus-exporter
# ./nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1:80/nginx_status

4.配置自启动
# vim /etc/systemd/system/nginx-prometheus-exporter.service
[Unit]
Description=Nginx Prometheus Exporter
After=network.target

[Service]
ExecStart=/path/to/nginx-prometheus-exporter --nginx.scrape-uri http://127.0.0.1:80/nginx_status
Restart=always
User=root

[Install]
WantedBy=multi-user.target

# systemctl enable nginx-prometheus-exporter
# systemctl start nginx-prometheus-exporter
# systemctl status nginx-prometheus-exporter
7.修改Prometheus.yml文件
- job_name: "nginx"
    static_configs:
    - targets: ['192.168.1.201:9113']



# 修改配置后需要重启Prometheus

8.docker安装nginx-exporter

1.确认nginx是否有with-http_stub_status_module 模块
# docker exec -it nginx nginx -V 2>&1 | grep -o with-http_stub_status_module

2.nginx开启stub_status配置
# vim nginx.conf
server {
    listen 80;
    server_name localhost;
......
    
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 0.0.0.0/0;
        deny all;
    }
......

3.重新加载配置
# docker exec -it nginx nginx -t
# docker exec -it nginx nginx -s reload
# curl http://localhost/nginx_status

4.拉取nginx-exporter镜像
# docker pull registry.cn-beijing.aliyuncs.com/insights-ops/nginx-prometheus-exporter:1.2

# docker tag registry.cn-beijing.aliyuncs.com/insights-ops/nginx-prometheus-exporter:1.2 nginx-prometheus-exporter:1.2

5 配置nginx-exporter
cat >docker-compose.yaml <<'EOF'
version: '3.3'
services:
  nginx_exporter:
    image: nginx/nginx-prometheus-exporter:1.2
    container_name: nginx_exporter
    hostname: nginx_exporter
    command:
      - '-nginx.scrape-uri=http://192.168.1.201/nginx_status'
    restart: always
    ports:
      - '9113:9113'
    network_mode: host
EOF

6.启动nginx-exporter
# docker-compose up nginx-exporter -d
# docker ps -a | grep nginx-prometheus-exporter
# netstat -nltp | grep 9113

7.修改Prometheus配置文件  
- job_name: 'nginx'
    static_configs:
      - targets: ['192.168.1.201:9113']
        labels:
          instance: 测试环境
          group: 项目1
          environment: test

# 修改完成后重启Prometheus

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值