跳转至

Prometheus监控实践

Prometheus监控实践。

Prometheus监控MySQL

Prometheus官方提供了监控MySQL的Exporter,下载地址:https://prometheus.io/download/。

  1. 部署MySQL Exporter
[root@dev ~]# cd /usr/local/src
[root@dev src]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
[root@dev src]# tar zxf mysqld_exporter-0.14.0.linux-amd64.tar.gz
[root@dev src]# mv mysqld_exporter-0.14.0.linux-amd64 /usr/local/
[root@dev src]# ln -s /usr/local/mysqld_exporter-0.14.0.linux-amd64/ /usr/local/mysqld_exporter
  1. 配置系统服务
[root@dev src]# useradd -s /sbin/nologin prometheus
[root@dev src]# vim /usr/lib/systemd/system/mysql_exporter.service
[Unit]
Description=Prometheus MySQL Exporter Daemon
After=network.target

[Service]
User=prometheus
Group=prometheus
Type=simple
Restart=on-failure
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --web.listen-address=0.0.0.0:9104 \
           --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf \
           --collect.info_schema.processlist \
           --collect.slave_status \
           --collect.slave_hosts

[Install]
WantedBy=multi-user.target
  1. MySQL监控配置

  2. 登录到受监控的MySQL中

[root@dev ~]# mysql -u root -p
  • 创建MySQL监控账户并授权
MariaDB [(none)]> CREATE USER 'exporter'@'localhost' IDENTIFIED BY '123456.coM';
MariaDB [(none)]> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
MariaDB [(none)]> exit;
  • 配置MySQL监控账户

    [root@dev ~]# vim /usr/local/mysqld_exporter/.my.cnf
    [client]
    user=exporter
    password=123456.coM
    

  • 启动MySQL监控插件

    [root@dev ~]# systemctl daemon-reload
    [root@dev ~]# systemctl restart mysql_exporter.service
    [root@dev ~]# systemctl enable mysql_exporter.service
    

  • 测试

    curl http://127.0.0.1:9104/metrics
    

Prometheus监控Redis

社区提供了Redis Exporter进行Redis的监控。https://github.com/oliver006/redis_exporter

  1. 部署Redis Prometheus
[root@demo ~]# cd /usr/local/src
[root@demo src]# wget https://github.com/oliver006/redis_exporter/releases/download/v1.43.1/redis_exporter-v1.43.1.linux-amd64.tar.gz
[root@demo src]# tar zxf redis_exporter-v1.43.1.linux-amd64.tar.gz
[root@demo src]# mv redis_exporter-v1.43.1.linux-amd64 /usr/local/
[root@demo src]# ln -s /usr/local/redis_exporter-v1.43.1.linux-amd64/ /usr/local/redis_exporter
  1. 配置系统服务
[root@dev src]# useradd -s /sbin/nologin prometheus
[root@dev src]# vim /usr/lib/systemd/system/redis_exporter.service
[Unit]
Description=Prometheus Redis Exporter Daemon
After=network.target

[Service]
User=prometheus
Group=prometheus
Type=simple
Restart=on-failure
ExecStart=/usr/local/redis_exporter/redis_exporter --web.listen-address=0.0.0.0:9121 \
           --redis.addr=redis://localhost:6379 \
           --redis.password=OpsAny2020

[Install]
WantedBy=multi-user.target
  1. 启动MySQL监控插件

    [root@dev ~]# systemctl daemon-reload
    [root@dev ~]# systemctl restart redis_exporter.service
    [root@dev ~]# systemctl enable redis_exporter.service
    

  2. 测试

    curl http://127.0.0.1:9121/metrics
    

Prometheus监控MongoDB

Percona公司开源了MongoDB Exporter 官方地址:https://github.com/percona/mongodb_exporter

  1. 部署MongoDB Exporter

    [root@demo ~]# cd /usr/local/src
    [root@demo src]# wget https://github.com/percona/mongodb_exporter/releases/download/v0.34.0/mongodb_exporter-0.34.0.linux-amd64.tar.gz
    [root@demo src]# tar zxf mongodb_exporter-0.34.0.linux-amd64.tar.gz
    [root@demo src]# mv mongodb_exporter-0.34.0.linux-amd64 /usr/local/
    [root@demo src]# ln -s /usr/local/mongodb_exporter-0.34.0.linux-amd64/ /usr/local/mongodb_exporter
    

  2. 配置系统服务

[root@dev src]# useradd -s /sbin/nologin prometheus
[root@dev src]# vim /usr/lib/systemd/system/mongodb_exporter.service
[Unit]
Description=Prometheus MongoDB Exporter Daemon
After=network.target

[Service]
User=prometheus
Group=prometheus
Type=simple
Restart=on-failure
ExecStart=/usr/local/mongodb_exporter/mongodb_exporter --web.listen-address=0.0.0.0:9216 \
           --mongodb.uri=mongodb://user:pass@127.0.0.1:27017/admin?ssl=true
           --collect-all

[Install]
WantedBy=multi-user.target
  1. MongoDB监控配置

  2. 为MongoDB创建监控使用exporter用户

# mongo -u root -p
db.getSiblingDB("admin").createUser({
    user: "exporter",
    pwd: "123456.coM",
    roles: [
        { role: "clusterMonitor", db: "admin" },
        { role: "read", db: "local" }
    ]
})
  1. 启动MongoDB监控插件
[root@dev ~]# systemctl daemon-reload
[root@dev ~]# systemctl restart mongodb_exporter.service
[root@dev ~]# systemctl enable mongodb_exporter.service
  1. 测试
    curl http://127.0.0.1:9216/metrics