文章目录
docker搭建grafana的prometheus之node_exporter和mysql_exporter监控展示
1.node_exporter搭建启动(根据自己的服务来决定启动,需要在每台服务器上启动)
启动:
docker run -d \
--name node_exporter \
--restart=always \
--net="host" \
--pid="host" \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
prom/node-exporter:v1.1.1 \
--path.procfs=/host/proc \
--path.rootfs=/rootfs \
--path.sysfs=/host/sys \
--collector.filesystem.ignored-mount-points='^/(sys|proc|dev|host|etc)($$|/)'
测试访问数据:http://ip:9100/metrics
2.mysqld_exporter搭建启动
启动:
docker run -d \
--name mysql_exporter \
--restart=always \
-p 9104:9104 \
-e DATA_SOURCE_NAME="用户名:密码@(mysql-ip:3306)/" \
prom/mysqld-exporter:v0.12.1
测试访问数据:http://ip:9104/metrics
3.prometheus搭建启动
1)创建配置文件
创建文件夹
mkdir -p /opt/prometheus/data
chmod -R 777 /opt/prometheus/data
配置文件解析
官方文档:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
常用的几个配置:
- global:全局配置
- alerting:告警配置
- rule_files:告警规则
- scrape_configs:配置数据源,称为target,每个target用job_name命名。又分为静态配置和服务发现
# 全局配置
global:
# 默认抓取周期,可用单位ms、smhdwy #设置每15s采集数据一次,默认1分钟
[ scrape_interval: <duration> | default = 1m ]
# 默认抓取超时
[ scrape_timeout: <duration> | default = 10s ]
# 估算规则的默认周期 # 每15秒计算一次规则。默认1分钟
[ evaluation_interval: <duration> | default = 1m ]
# 和外部系统(例如AlertManager)通信时为时间序列或者警情(Alert)强制添加的标签列表
external_labels:
[ <labelname>: <labelvalue> ... ]
# 规则文件列表
rule_files:
[ - <filepath_glob> ... ]
# 抓取配置列表
scrape_configs:
[ - <scrape_config> ... ]
# Alertmanager相关配置
alerting:
alert_relabel_configs:
[ - <relabel_config> ... ]
alertmanagers:
[ - <alertmanager_config> ... ]
# 远程读写特性相关的配置
remote_write:
[ - <remote_write> ... ]
remote_read:
[ - <remote_read> ... ]
创建文件:prometheus.yml
# 全局配置
global:
scrape_interval: 15s # 默认抓取周期,可用单位ms、smhdwy #设置每15s采集数据一次,默认1分钟
evaluation_interval: 15s # 估算规则的默认周期 # 每15秒计算一次规则。默认1分钟
# scrape_timeout is # 默认抓取超时 默认10s
# 抓取配置列表
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
static_configs:
- targets: ['安装了prometheus服务器IP:9090']
labels:
appname: 'Prometheus'
- job_name: 'node'
scrape_interval: 10s
static_configs:
- targets: ['安装了node_exporter服务器IP:9100','安装了node_exporter服务器IP:9100','安装了node_exporter服务器IP:9100']
labels:
appname: 'node'
- job_name: 'mysql'
scrape_interval: 10s
static_configs:
- targets: ['安装了mysql_exporter服务器IP:9104']
labels:
appname: 'mysql'
2)启动容器
docker run -d \
--name prometheus \
--restart=always \
-p 9090:9090 \
-v /opt/prometheus/data:/prometheus \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime \
-v /opt/prometheus:/etc/prometheus \
prom/prometheus:v2.25.0
3)测试连接数据:http://ip:9090/targets
4.grafana搭建
1)启动容器
docker run -d \
--name grafana \
--restart=always \
-p 3000:3000 \
grafana/grafana:7.4.3
2)访问:http://服务器ip:3000
初始化用户名密码:admin/admin
3)创建prometheus数据连接
4)输入连接地址,保存退出
5)导入模板
模板下载地址:https://grafana.com/grafana/dashboards,或者输入8919
导入模板: