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: