• Prometheus+Grafana可视化监控【Nginx状态】


    一、安装Docker

    注意:我这里使用之前写好脚本进行安装Docker,如果已经有Docker请省略此步骤,安装Docker是为了方便部署Nginx WEB服务器,如果已经有数据库前两步骤都可以省略。

    点击获取Docker离线安装脚本

    tar zxf docker20.10.14Install.tar.gz
    cd docker20.10.14Install
    bash install.sh
    
    • 1
    • 2
    • 3

    查看Docker状态如下图表示没问题:

    systemctl status docker
    
    • 1

    在这里插入图片描述

    二、安装Nginx(Docker容器方式)

    1、前提准备:

    docker pull nginx:1.18
    mkdir /home/software/nginx/{conf,logs} -p
    
    systemctl stop firewalld
    systemctl disable firewalld
    iptables -F
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、创建配置文件

    cat >> /home/software/nginx/conf/nginx.conf << EOF
    worker_processes 1;
    
    events {
        worker_connections 1024;
    }
    
    http {
        server {
            listen 80;
            location /nginx_status {
                stub_status on;
                access_log off;
                allow all;
            }
            location / {
                return 200 'Hello, Nginx!';
            }
        }
    }
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2、运行容器:

    docker run -itd --name nginx \
        -v /home/software/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
        -v /etc/localtime:/etc/localtime \
        -v /home/software/nginx/logs:/var/log/nginx \
        -p 80:80 --restart=always nginx:1.18
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、验证Nginx服务是否正常

    curl http://127.0.0.1/nginx_status
    
    • 1

    如下图:返回Nginx状态信息,表示无误。
    在这里插入图片描述

    三、安装Prometheus

    1、时间和时区同步

    timedatectl set-timezone Asia/Shanghai
    yum -y install ntpdate
    /usr/sbin/ntpdate -u ntp1.aliyun.com
    
    • 1
    • 2
    • 3

    配置计划任务定时同步时间

    echo "0 5 * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root
    crontab -l
    
    • 1
    • 2

    2、安装Prometheus

    wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz
    
    tar zxf prometheus-2.42.0.linux-amd64.tar.gz 
    mv prometheus-2.42.0.linux-amd64 /usr/local/prometheus
    
    • 1
    • 2
    • 3
    • 4

    3、配置systemd管理

    cat > /usr/lib/systemd/system/prometheus.service << EOF
    [Unit]
    
    [Service]
    ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
    ExecReload=/bin/kill -HUP \$MAINPID
    
    [Install]
    WantedBy=multi-user.target
    Alias=dbus-org.fedoraproject.FirewallD1.service
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4、启动并设置开机自启

    systemctl enable prometheus --now
    systemctl status prometheus
    
    • 1
    • 2

    在这里插入图片描述
    显示如上图,表示Prometheus也没问题了,默认端口是9090,我们可以浏览器访问一下
    点击 Status > Targets 可以查看到Prometheus自己的metrics如下图:
    在这里插入图片描述

    四、安装Grafana

    1、安装Grafana

    wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.1-1.x86_64.rpm
    sudo yum install grafana-enterprise-9.4.1-1.x86_64.rpm -y
    
    systemctl enable grafana-server.service --now
    
    • 1
    • 2
    • 3
    • 4

    2、WEB页面验证
    默认端口是3000,第一次访问会提示重新设置密码,如下图:
    在这里插入图片描述
    在这里插入图片描述

    五、Pronetheus和Grafana相关联

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    六、安装nginx_exporter

    1、安装nginx_exporter

    wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz
    mkdir  /usr/local/nginx-exporter
    tar zxf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz -C /usr/local/nginx-exporter/
    
    • 1
    • 2
    • 3

    2、配置systemd管理
    注意:-nginx.scrape-uri参数设置自己的nginx地址,只要能访问到 /nginx_status路由即可,我这里是本机,我写的是http://127.0.0.1:80/nginx_status

    cat > /usr/lib/systemd/system/nginx_exporter.service << EOF
    [Unit]
    Description=nginx_exporter Service
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/nginx-exporter/nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1:80/nginx_status
    ExecReload=/bin/kill -HUP \$MAINPID
    Restart=on-failure
    RestartSec=30s
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    启动并加入开机自启动

    systemctl enable nginx_exporter --now
    systemctl status  nginx_exporter
    
    • 1
    • 2

    在这里插入图片描述

    默认端口为9113

    netstat -anput |grep 9113
    
    • 1

    4、Prometheus配置文件中指定nginx_exporter信息

    vim /usr/local/prometheus/prometheus.yml
    
      - job_name: "Nginx_115"
        static_configs:
          - targets: ["16.32.15.115:9113"]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    添加完成配置文件后使用命令测试格式上是否有问题

    cd  /usr/local/prometheus/
    ./promtool check config prometheus.yml
    
    • 1
    • 2

    重启Prometheus

    systemctl restart prometheus.service
    
    • 1

    七、Grafana添加Nginx监控模板

    这里使用Nginx的模板ID:11199
    点击 下方红圈地方 > import > 输入模板ID
    在这里插入图片描述

    在这里插入图片描述

    最终效果图如下:

    在这里插入图片描述

  • 相关阅读:
    springboot+rocketmq(4):实现延时消息
    按照C++语言程序结构组成数字电路进行计算的计算机
    RK3568 + 国产 PHY YT8531 调试
    Self-Instruct 论文解读:利用大模型自己给自己生成指令数据,指令数据自动生成
    第二章 类与名称空间
    Linux 基础入门(学习笔记通俗易懂版)
    MindSpore社区群组介绍系列之三——WG- Molecular Modeling
    [架构之路-14]:目标系统 - 硬件平台 - CPU、MPU、NPU、GPU、MCU、DSP、FPGA、SOC的区别
    大数据毕业设计选题推荐-智慧小区大数据平台-Hadoop-Spark-Hive
    浅析能耗分析系统在数据中心节能降耗中的应用
  • 原文地址:https://blog.csdn.net/weixin_45310323/article/details/132922881