Prometheus、Grafana 部署 MySQL、Redis 监控

283 阅读2分钟

Prometheus、Grafana 部署监控


#收集mysql使用情况数据信息
docker pull prom/mysqld-exporter

#收集redis的使用情况数据信息
docker pull oliver006/redis_exporter

#普罗米修斯监控服务
docker pull prom/prometheus

#用于展示普罗米修斯监控的图形化界面
docker pull grafana/grafana


### 创建mysql容器
docker run --name mysql8  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0 

mysqld_exporter 安装

### 创建mysqld用户
CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporter' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
GRANT SELECT ON performance_schema.* TO 'exporter'@'%';
FLUSH PRIVILEGES;
SELECT User, Host FROM mysql.user WHERE User='exporter';
SHOW GRANTS FOR 'exporter'@'%';
exit;


### docker 安装(注意提前查看msql8的网络ip地址)

docker run -d -p 9104:9104  --name mysql-exporter  -e DATA_SOURCE_NAME="exporter:exporter@(172.17.0.2:3306)/spider" prom/mysqld-exporter

### 验证安装
http://127.0.0.1:9104/metrics

安装prometheus 服务

### 创建本地yml配置文件
vim /home/imac/Desktop/script/docker/prometheus/prometheus.yml

### 构建镜像
docker run --name prometheus -d -p 9090:9090   -v /home/imac/Desktop/script/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

### 验证安装
http://127.0.0.1:9090

打通 mysqld-exporter 和 prometheus连接

### 先查看这两个容器网段是不否在同一个网段中(仅Docker部署)
#### 查看容器网络
docker inspect [容器名称或ID] | grep IPAddress

### 如果在就修改上面配置文件

  - job_name: "mysqld-exporter"
    static_configs:
      - targets: ["172.17.0.4:9104"]   ### 这个 172.17.0.4 就是 mysqld-exporter 网段
        labels:
          instance: mysqld-exporter


### 重启 prometheus 容器 
docker restart  *****

### 检查是否打通 
1.访问 http://127.0.0.1:9090
2.点击导航栏 Status
3.点击下列列表的 Targets

安装grafana

### 构建镜像
docker run -d --name=grafana   -p  3000:3000 grafana/grafana

### 验证安装
http://127.0.0.1:3000
### 初始密码 admin admin

搭建redis 性能监控

### docker构建容器  172.17.0.6 是redis的内网地址
docker run -d --name redis_exporter -p 9121:9121  oliver006/redis_exporter --redis.addr redis://172.17.0.6:6379 --redis.password '123456'


### 完整配置文件
# my global config
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["172.17.0.4:9090"]

  - job_name: "mysql_metrics"
    static_configs:
      - targets: ["172.17.0.3:9104"]

  - job_name: "redis_metrics"
    static_configs:
      - targets: ["172.17.0.7:9121"]

后续的导入数据源很简单了