使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql



相关博文原文地址:
简书:test小星星:使用docker部署prometheus监控系统
Prometheus监控系统(6)使用mysqld_exporter监控MySQL
CSDN:woqutechteam:prometheus监控多个MySQL实例



一、docker部署prometheus监控系统

1.1 配置安装环境

1.1.1 安装prometheus

docker pull prom/prometheus

1.1.2 安装grafana

docker pull grafana/grafana

1.1.3 安装node_exporter

下载node_exporter,然后解压:

tar -xvzf ****.tar.gz

启动:

nohup ./node_exporter >> node_exporter.log 2>&1 &

1.2 运行环境

1.2.1 配置prometheus

vim prometheus-config.yml
# 全局配置
global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  # 监控prometheus本身
  - job_name: 'prometheus'  
    static_configs:
    - targets: ['localhost:9090']
  # 通过node_exporter将监控数据传给prometheus,如果要监控多台服务器,只要在每个服务器上安装node_exporter,指定不同多ip地址就好了
  - job_name: 'node_exporter'  
    static_configs:
    - targets: ['localhost:9100']
  # 监控mysql
  - job_name: 'mysql'  
    static_configs:
    - targets: ['localhost:9104']

1.2.2 启动 prometheus

docker run --name prometheus -d -p 9090:9090 
-v /root/prometheus/prometheus-config.yml:/etc/prometheus/prometheus.yml 
prom/prometheus --config.file=/etc/prometheus/prometheus.yml

1.2.3启动 grafana

docker run --name grafana -d -p 3000:3000 grafana/grafana

在浏览器中输入:服务器ip地址:3000进入到Grafana界面。

添加监控数据源选择 prometheus。
在这里插入图片描述

输入prometheus的访问地址,并保存。注意不能使用localhost。


这个地方注意踩坑,prometheus.yml的配置文件,Ip尽量不要写localhost,写ip地址。

在这里插入图片描述

二、Prometheus使用mysqld_exporter监控MySQL

2.1官网下载mysqld_exporter并进行解压

2.2登录MySQL为exporter创建一个用户并进行授权(我直接使用root进行操作了,有风险,尽量不要使用)

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';

2.3配置mysql_exporter

vi /usr/local/mysqld_exporter/my.cnf
[client]
host=192.168.21.xx
port=3306
user=exporter  #这里的用户就是第二步设置的用户
password=123456

2.4启动mysqld_exporter,默认监听在9104端口

/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/my.cnf

2.4.1 通过Docker启动mysqld_exporter

docker run -d  --restart=always  --name mysqld-exporter -p 9104:9104   -e DATA_SOURCE_NAME="user:password@(hostname:port)/"   prom/mysqld-exporter
 
docker run -d  --restart=always  --name mysqld-exporter -p 9104:9104   -e DATA_SOURCE_NAME="exporter:123456@(192.168.1.82:3306)/"   prom/mysqld-exporter
 
要查看容器是否报错, 主要是验证exporter与mysql服务端之间正常连接和获取数据; 
docker logs -f mysqld-exporter  看有没有报错

2.5为mysqld_exporter创建一个启动脚本,内容如下(可做可不做)

[Unit]
Description=mysqld_exporter

[Service]
Type=simple
Restart=on-failure
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/my.cnf

[Install]
WantedBy=multi-user.target

2.6使用systemctl管理mysqld_exporter

systemctl daemon-reload
systemctl start mysqld_exporter.service
原文地址:https://www.cnblogs.com/aixing/p/13327237.html