node-exporter监控主机信息,mysql-exporter和prometheus监控mysql,Grafana图表展示的安装步骤


grafana docker安装

docker run -d   --name grafana   -p 3000:3000   -v grafana_data:/var/lib/grafana   grafana/grafana:latest

配置个mysql用户监控mysql的话后续要用到

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'exporter_password';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;

创建mysqld-exporter 配置文件.my.cnf

[client]
user = username
password = password
host = host_ip
port = 3306

运行mysqld-exporter docker

docker run -d -p 9104:9104 \
   -v $(pwd)/.my.cnf:/etc/mysql_exporter/.my.cnf \
  prom/mysqld-exporter --config.my-cnf /etc/mysql_exporter/.my.cnf

创建并运行node-exporter 的docker,直接运行该docker会监控宿主机的相关参数

docker run -d --name node-exporter \
  -p 9100:9100 \
  --restart=unless-stopped \
  prom/node-exporter

创建prometheus.yml配置文件

global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['192.160.50.31:9093']

rule_files:
  - "rules/*.rules"


scrape_configs:
  - job_name: 'prometheus'  # 定义一个监控任务,名为 Prometheus
    static_configs:
      - targets: ['localhost:9090']  # 监控 Prometheus 自身
  - job_name: 'mysql_metrics'
    static_configs:
      - targets: ['192.160.50.31:9104']
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['192.160.50.31:9100']

运行prometheus docker运行


docker run -d --name prometheus \
  -p 9090:9090 \
  -v  $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
  -v  $(pwd)/rules:/etc/prometheus/rules \
  prom/prometheus

如果配置数据源出现界面无数据,但是prometheus正常up的情况,需要创建一个新的数据源来解决这个问题。

prometheusf告警服务配置文件alertmanager.yml

global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.qq.com:465'  # 邮箱 SMTP 服务器
  smtp_from: 'you_mail@qq.com'    # 发件人邮箱
  smtp_auth_username: 'you_mail@qq.com'  # 邮箱用户名
  smtp_auth_password: 'dzdnjjhmkovpbjif'  # 邮箱授权码
  smtp_require_tls: false

route:
  group_by: ['alertname']
  group_wait: 5s
  group_interval: 5m
  repeat_interval: 5m
  receiver: 'email'

receivers:
- name: 'email'
  email_configs:
#  - to: 'you_mail@qq.com'  # 收件人邮箱
    -to: 'you_mail@163.com'
    send_resolved: true
    headers: {Subject: "Alertmanager Notification"}

prometheus告警服务docker


docker run -d --name alertmanager \
  -p 9093:9093 \
  -v $(pwd)/alertmanager.yml:/etc/alertmanager/config.yml \
  prom/alertmanager

或者docker-compose直接配置

version: "3.3"  # 使用支持的版本号

services:
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    restart: unless-stopped

  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - ./rules:/etc/prometheus/rules
    restart: unless-stopped

  alertmanager:
    image: prom/alertmanager
    container_name: alertmanager
    ports:
      - "9093:9093"
    volumes:
      - ./alertmanager.yml:/etc/alertmanager/config.yml
    restart: unless-stopped

  mysqld-exporter:
    image: prom/mysqld-exporter
    container_name: mysqld-exporter
    ports:
      - "9104:9104"
    volumes:
      - ./my.cnf:/etc/mysql_exporter/.my.cnf
    command: --config.my-cnf /etc/mysql_exporter/.my.cnf
    restart: unless-stopped

  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    ports:
      - "9100:9100"
    restart: unless-stopped

volumes:
  grafana_data:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注