容器下Prometheus、Grafana安装-部署-nginx代理-监控MYSQL数据库

497 阅读3分钟

Prometheus、Grafana安装-部署-nginx代理-监控MYSQL数据库

思路

1.安装mysqld_exporter监控数据库指标

2.安装普罗米修斯监控信息JOB

3.安装Grafana展示UI

下载镜像

#收集服务器硬件和操作系统信息(被监控)

docker pull prom/node-exporter

#收集mysql使用情况数据信息

docker pull prom/mysqld-exporter

#负责收集服务器运行的docker容器信息(被监控)

docker pull google/cadvisor

#普罗米修斯监控服务

docker pull prom/prometheus

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

docker pull grafana/grafana

1.mysqld_exporter 安装

1.1创建mysqld用户

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'mysqldExporter2022' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';

注意:

在创建用户的时候,推荐执行 MAX_USER_CONNECTIONS参数,避免我们监控使用过多的数据库连接数,导致数据库压力过大。

1.2拉取mysqld镜像

docker pull prom/mysqld-exporter

1.3运行mysqld镜像服务

docker run -d --name mysqld_exporter -p 9104:9104 -e DATA_SOURCE_NAME="mysqld_exporter:mysqldExporter2022@(192.168.80.172:33061)/" prom/mysqld-exporter

1.4验证服务

浏览器访问主机+ip,查看是否有收集指标

http://192.168.81.128:9104/metrics

clipboard.png

2. prometheus安装

2.1拉取镜像

docker pull prom/prometheus

2.2运行prometheus服务

2.2.1创建本地映射yml配置文件

mkdir -p /opt/prometheus
vi /opt/prometheus/prometheus.yml
global:
  scrape_interval:     20s
  evaluation_interval: 20s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
      labels:
          instance: 'prometheus'

2.2.2运行docker服务

# 创建prometheus容器
docker run -itd --name prometheus -p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /opt/prometheus/rules/:/etc/prometheus/rules/ \
-v /etc/localtime:/etc/localtime:ro \
prom/prometheus

2.2.3查看普罗米修斯targets

http://192.168.81.128:9090/
没有配置mysqld-exporter之前,只有一个job服务,就是prometheus任务

clipboard.png

2.2.4新增mysqld-exporter的监控job

vi /opt/prometheus/prometheus.yml
global:
  scrape_interval:     20s
  evaluation_interval: 20s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
      labels:
          instance: 'prometheus'
  - job_name: 'mysqld-exporter'
    static_configs:
    - targets: ['192.168.81.128:9104']
重启prometheus容器服务
docker restart  *****

2.2.4验证普罗米修斯是否新增mysqld-exproter任务

clipboard.png

3. grafana安装

3.1拉取镜像

docker pull grafana/grafana

3.2运行服务

在DockerMachine上运行Grafana, http://机器地址:3000,登录用admin 密码为刚创建Grafana时的admin8888,
docker run -d -i -p 3000:3000 \
-v "/etc/localtime:/etc/localtime" \
-e "GF_SECURITY_ADMIN_PASSWORD=smartW****" \
--net=bridge \
grafana/grafana

3.3挂载配置文件

进容器copy /etc/grafana/grafana.ini
文件到宿主机,方便下次修改配置,譬如加载反向代理。
docker stop  ***
docker rm ****
在DockerMachine上运行Grafana, http://机器地址:3000,登录用admin 密码为刚创建Grafana时的smartWork@2022,
docker run -d -i -p 3000:3000 \
-v "/etc/localtime:/etc/localtime" \
-v "/mnt/data/prometheus/grafana.ini:/etc/grafana/grafana.ini" \
-e "GF_SECURITY_ADMIN_PASSWORD=smartWork@2022" \
--net=bridge \
grafana/grafana

登录系统

clipboard.png

3.4配置数据源到-普罗米修斯

clipboard.png

选择普罗米修斯

clipboard.png

填写数据源

clipboard.png

clipboard.png

导入页面ui,可以导入线上的,或者json配置文件

MySQL仪表盘: grafana.com/grafana/das…

可以下载,导入json

选择仪表盘查看

clipboard.png

clipboard.png

4. grafana代理

4.1配置参数

image.png

``

4.2重新运行服务

运行Grafana, http://机器地址:3000,登录用admin 密码为刚创建Grafana时的smartWork@2022,
docker run -d -i -p 3000:3000 \
-v "/etc/localtime:/etc/localtime" \
//挂载配置
-v "/mnt/data/prometheus/grafana.ini:/etc/grafana/grafana.ini" \
-e "GF_SECURITY_ADMIN_PASSWORD=smartWork@2022" \
--net=bridge \
grafana/grafana

4.3配置ngxin

image.png

location  /grafana{
                # 因为存在2M的js,需要设置nginx的缓存配置调大
                proxy_buffering on;
                proxy_buffer_size 4k;
                proxy_buffers 8 4M;
                proxy_busy_buffers_size 4M;
                proxy_set_header Host $http_host;
                proxy_pass http://10.2.8.213:3000/grafana;
        }
        location ^~ /grafana/api/live {
                # 这是grafana的webSocket连接
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header Host $http_host;
                proxy_pass http://10.2.8.213:3000/grafana/api/live;
        }

4.4访问代理后的url

http://*****:30100/grafana

clipboard.png

5参考文档:

Mysqld_exporter部署及常见的几种错误

blog.csdn.net/GX_1_11_rea…

普罗米修斯-docker安装

blog.csdn.net/qq_34936628…

Prometheus、Grafana安装-部署-nginx代理-监控linux

blog.csdn.net/privateobje…