部署Prometheus
  • 为什么会有本书
  • Part I - Prometheus基础
    • 第一章 简介
    • 第二章 部署
      • 二进制部署
      • Docker部署
      • Kubernetes部署
    • 第三章 集群与高可用
      • Prometheus
      • Alertmanager
  • Part II - Prometheus数据采集与告警
    • 第四章 数据采集
      • 主机
        • Linux
        • Windows
        • Docker
        • PushGateway
      • Web服务器
        • Nginx
        • Tomcat
      • 数据库
        • MySQL
        • Redis
      • 消息队列
        • RabbitMQ
        • Kafka
      • 微服务
        • Eureka
        • Nacos
        • Zookeeper
        • Consul
      • 网络探测
    • 第五章 告警规则
      • 主机
        • Linux
        • Windows
        • Docker
        • PushGateway
      • Web服务器
        • Nginx
        • Tomcat
      • 数据库
        • MySQL
        • Redis
      • 消息队列
        • RabbitMQ
        • Kafka
      • 微服务
        • Eureka
        • Nacos
        • Zookeeper
        • Consul
      • 网络探测
    • 第六章 告警处理
  • Part III -Prometheus数据展示
    • 第七章 数据展示
Powered by GitBook
On this page
  • 授权
  • 配置exporter
  • 配置Prometheus

Was this helpful?

  1. Part II - Prometheus数据采集与告警
  2. 第四章 数据采集
  3. 数据库

MySQL

MySQL的监控比较简单,因为官方提供了exporter,只需要到数据库内新建一个用户授予几个权限即可。

授权

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

配置exporter

# 下载
cd /tmp
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.0/mysqld_exporter-0.12.0.linux-amd64.tar.gz
tar xvf mysqld_exporter-0.12.0.linux-amd64.tar.gz -C /ops

# 编写systemd service 文件
vi /usr/lib/systemd/system/mysqld_exporter.service 

[Unit]
Description=mysqld_exporter
After=network.target
[Service]
Type=simple
Environment=DATA_SOURCE_NAME=exporter:exporter@(localhost:3306)/
ExecStart=/ops/mysqld_exporter-0.12.0.linux-amd64/mysqld_exporter --web.listen-address=:9104
Restart=on-failure
[Install]
WantedBy=multi-user.target

# 启动与自启动
systemctl daemon-reload
systemctl start mysqld_exporter
systemctl enable mysqld_exporter

默认端口为9104,还需防火墙放行:

firewall-cmd --add-port=9104/tcp --permanent
firewall-cmd --reload

配置Prometheus

vi prometheus.yaml

scrapy_confings:
···
  - job_name: MySQL
    static_configs:
    - targets:
      - ip:9104
      labels:
        instance: DB

重启Prometheus生效

# 如果你已注册了prometheus服务
systemctl restart prometheus
# 如果你是使用supervisor管理prometheus的话
supervisorctl restart prometheus
Previous数据库NextRedis

Last updated 5 years ago

Was this helpful?