ubuntu

ubuntu nginx如何配置监控告警

小樊
51
2025-09-03 08:01:29
栏目: 智能运维

在Ubuntu上配置Nginx监控告警可以通过多种方式实现,以下是一些常见的方法:

1. 使用Nginx自带的模块

Nginx有一些内置的模块可以帮助你监控服务器的状态,例如ngx_http_stub_status_module

步骤:

  1. 安装Nginx(如果尚未安装):

    sudo apt update
    sudo apt install nginx
    
  2. 启用stub_status模块: 编辑Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加以下内容:

    server {
        listen 80;
        server_name localhost;
    
        location /nginx_status {
            stub_status on;
            allow 127.0.0.1;  # 只允许本地访问
            deny all;         # 拒绝其他所有IP
        }
    }
    
  3. 重启Nginx

    sudo systemctl restart nginx
    
  4. 访问状态页面: 打开浏览器,访问http://your_server_ip/nginx_status,你应该能看到Nginx的状态信息。

2. 使用第三方监控工具

你可以使用Prometheus和Grafana来监控Nginx,并设置告警。

步骤:

  1. 安装Prometheus: 下载并安装Prometheus:

    wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
    tar xvfz prometheus-2.30.3.linux-amd64.tar.gz
    cd prometheus-2.30.3.linux-amd64
    
  2. 配置Prometheus: 编辑prometheus.yml文件,添加Nginx的监控配置:

    scrape_configs:
      - job_name: 'nginx'
        static_configs:
          - targets: ['localhost:9113']
    
  3. 启动Prometheus

    ./prometheus --config.file=prometheus.yml
    
  4. 安装Nginx Exporter: Nginx Exporter是一个将Nginx指标暴露给Prometheus的工具。

    wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.10.0/nginx-prometheus-exporter-0.10.0.linux-amd64.tar.gz
    tar xvfz nginx-prometheus-exporter-0.10.0.linux-amd64.tar.gz
    cd nginx-prometheus-exporter-0.10.0.linux-amd64
    sudo cp nginx-prometheus-exporter /usr/local/bin/
    
  5. 配置Nginx Exporter: 编辑nginx.conf文件,添加以下内容:

    server {
        listen 9113;
        location /metrics {
            stub_status on;
            allow 127.0.0.1;
            deny all;
        }
    }
    
  6. 重启Nginx

    sudo systemctl restart nginx
    
  7. 安装Grafana

    sudo apt install grafana
    
  8. 启动Grafana

    sudo systemctl start grafana-server
    
  9. 配置Grafana: 打开浏览器,访问http://your_server_ip:3000,使用默认用户名和密码(admin/admin)登录,然后添加Prometheus作为数据源,并创建仪表盘来监控Nginx指标。

3. 使用ELK Stack

ELK Stack(Elasticsearch, Logstash, Kibana)也可以用来监控Nginx日志并设置告警。

步骤:

  1. 安装Elasticsearch

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
    sudo apt update && sudo apt install elasticsearch
    
  2. 安装Logstash

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
    sudo apt update && sudo apt install logstash
    
  3. 安装Kibana

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
    sudo apt update && sudo apt install kibana
    
  4. 配置Logstash: 编辑/etc/logstash/conf.d/nginx.conf文件,添加以下内容:

    input {
        file {
            path => "/var/log/nginx/access.log"
            start_position => "beginning"
        }
    }
    
    filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
    }
    
    output {
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "nginx-%{+YYYY.MM.dd}"
        }
    }
    
  5. 启动服务

    sudo systemctl start elasticsearch
    sudo systemctl start logstash
    sudo systemctl start kibana
    
  6. 配置Kibana: 打开浏览器,访问http://your_server_ip:5601,使用默认用户名和密码(kibana/kibana)登录,然后配置索引模式并创建仪表盘来监控Nginx日志。

通过以上方法,你可以实现对Nginx的监控和告警。选择哪种方法取决于你的具体需求和环境。

0
看了该问题的人还看了