Prometheus-中间件(nginx/mysql)监控

Mysql

  1. 创建mysqld_exporter用户
useradd -M -s /usr/sbin/nologin mysqld_exporter
  1. 获取mysqld_exporter包, 解压并修改属主数组为mysqld_exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
mv mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter /usr/local/bin/
chown mysqld_exporter.mysqld_exporter /usr/local/bin/mysqld_exporter 
  1. 在mysql中添加mysqld_exporter用户并授权
mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';
mysql> flush privileges;
  1. 创建mysqld_exporter配置文件,用于登录mysql
vim /etc/.mysqld_exporter.cnf
[client]
user=mysqld_exporter
password=123456

chown mysqld_exporter.mysqld_exporter /etc/.mysqld_exporter.cnf 
  1. mysqld_exporter托管到systemd
cat >> /usr/lib/systemd/system/mysqld_exporter.service << EOF
[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
User=mysqld_exporter
Group=mysqld_exporter
Environment=DATA_SOURCE_NAME=mysqld_exporter:123456@(localhost:3306)/
ExecStart=/usr/local/bin/mysqld_exporter \
          --config.my-cnf="/etc/.mysqld_exporter.cnf"  \
          --collect.auto_increment.columns \
          --collect.binlog_size \
          --collect.engine_innodb_status \
          --collect.engine_tokudb_status \
          --collect.global_status \
          --web.listen-address=0.0.0.0:9104
Restart=always

[Install]
WantedBy=multi-user.target
EOF
  1. 修改prometheus配置文件,添加mysql job
vim /usr/local/prometheus/prometheus.yml 
  - job_name: 'mysql'
    static_configs:
    - targets:
      - 192.168.71.21:9104
  1. 重载prometheus
curl -X POST http://192.168.71.21:9090/-/reload
  1. 重载并启动mysqld_exporter
systemctl daemon-reload
systemctl start mysqld_exporter
[root@prometheus ~]# ss -lnt | grep 9104
LISTEN     0      128         :::9104                    :::*                  
  1. 在grafana中添加mysql面板
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

Nginx

  1. 编译安装nginx,并安装vts模块

vts为nginx监控模块,能够提供json格式的数据输出

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre

wget https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.1.18.tar.gz

./configure --add-module=/root/nginx-module-vts-0.1.18

make && make install
  1. 修改nginx配置文件,并重启服务
vim /usr/local/nginx/conf/nginx.conf
    
    http {
      ...
      vhost_traffic_status_filter_by_host on;
      vhost_traffic_status_zone;
      server {        
        listen 8888;
        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
          }
       }
       ...
    }
    
 /usr/local/nginx/sbin/nginx -t
 
 systemctl reload nginx 
  1. Nginx监控数据查看
    在这里插入图片描述

  2. nginx-vts-exporter获取并解压

wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.0/nginx-vts-exporter-0.10.0.linux-amd64.tar.gz
tar xf nginx-vts-exporter-0.10.0.linux-amd64.tar.gz 
cp nginx-vts-exporter-0.10.0.linux-amd64/nginx-vts-exporter /usr/local/bin/
  1. nginx-vts-exporter托管到systemd
vim   /usr/lib/systemd/system/nginx.service 
[Unit]
Descirption=nginx-vts-exporter
After=network.target

[Service]
ExecStart=/usr/local/bin/nginx-vts-exporter  -nginx.scrape_timeout 10 -nginx.scrape_uri http://192.168.71.21:8888/status/format/json 
Restart=always

[Install]
WantedBy=multi-user.target
  1. 启动nginx-vts-exporter
systemctl daemon-reload
systemctl start nginx-vts-exporter
  1. 查看nginx-vts-exporter暴露的数据
    在这里插入图片描述

  2. 添加nginx job到prometheus

  - job_name: 'nginx'
    static_configs:
    - targets:
      - 192.168.71.21:9913
  1. 重载prometheus
curl -X POST http://192.168.71.21:9090/-/reload
  1. prometheus 界面查看
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

real向往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值