10分钟搭建Grafana监控看板和普罗米修斯_实现软件服务监控

     互联网公司 运维监控等基础设施的 完善程度 一定情况下可以看出其 经营情况 技术能力。
     本次学习的内容可对应用 网络流量 服务器负载 存储容量 等关键指标进行 实时监测 可以及时发现和预防 潜在问题 并做出相应的处理 避免因故障导致 服务中断或数据丢失 在双11营销节日甚至是日常迭代中 监控系统的作用也是 至关重要的。
     第一份互联网工作 坐在我对面的几位男生 他们的岗位是 NOC技术支持 那时候也是初次看到 互联网企业软件服务监控 感觉很新奇,很有趣~
     在这里,继续用 10分钟 时间 搭建运维监控系统 实现实时数据可视化监控。


使用效果

Grafana:Grafana.png
Prometheus:Prometheus.png
Grafana-Redis:Redis.png
Grafana-MySQL:MySQL.png

一.Grafana
1
2
3
4
5
6
7
8
# 拉取镜像
docker pull grafana/grafana

# Grafana服务运行
docker run --network cicd_network -d -p 5000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana

# 进入后台 初始密码【admin/admin】
http://192.168.1.1:5000/login
二.普罗米修斯
1
2
3
4
5
6
7
8
9
# 拉取镜像
docker pull prom/prometheus

# 配置文件
mkdir /opt/prometheus
vi /opt/prometheus/prometheus.yml #内容见附件 或下载 https://lixiangpro.oss-cn-hangzhou.aliyuncs.com/resource/prometheus.yml

# 普罗米修斯运行
docker run --network cicd_network -d -p 9090:9090 --name=prometheus -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
三.Node节点导出
1
2
# Node_Exporter 运行
docker run --network cicd_network -d -p 9100:9100 --name=node-exporter -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter
四.Grafana使用与配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 重启普罗米修斯
docker restart prometheus

# 进入Grafana后台 http://192.168.1.1:5000/login

# 配置数据源
=》首页-连接-数据源-Add data source-prometheus
Prometheus server URL = http://192.168.1.1:9090

# 导入看板视图模版【查看更多=> https://grafana.com/grafana/dashboards】
DEMO模版 = https://lixiangpro.oss-cn-hangzhou.aliyuncs.com/resource/grafana_node_exporter.json
=》首页-仪表盘-新建-导入

# 设置默认首页看板
=》首页-管理-概况-默认首选项-主页仪表板

至此_已完成_部署Grafana和普罗米修斯及其应用

拓展补充-监控MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 部署MySQL
docker pull mysql:8.0.32
docker run -p 3306:3306 --name=mysql --network cicd_network --restart=always --privileged=true -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/logs:/var/log -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.32

# 部署MySQL Exporter
vi /opt/mysql/my.cnf
[client]
host=192.168.1.1
user=root
password=123456

docker pull prom/mysqld-exporter
docker run -d --name mysql_exporter --restart always -p 9104:9104 -v /opt/mysql/conf:/.my.cnf --network=cicd_network prom/mysqld-exporter

# 修改普罗米修斯配置
vi /opt/prometheus/prometheus.yml
- job_name: mysql-monitor
static_configs:
- targets: [ '192.168.1.1:9104' ]

# 重启普罗米修斯
docker restart prometheus

# 进入Grafana后台 http://192.168.1.1:5000/login
=》首页-仪表板-导入-模版ID=7362-加载-prometheus
拓展补充-监控Redis-方案一
1
2
# 直连监控
=》首页-连接-添加新链接-Redis-install-Add new data source-Dashboards-Redis Import
拓展补充-监控Redis-方案二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 本地部署Redis
docker pull redis:latest
docker run --name redis -d -p 6379:6379 -e REDIS_PASSWORD=123456 --network cicd_network redis:latest

# 本地部署Redis管理工具
docker pull redis/redisinsight:latest
docker run -d --name redisinsight -p 5540:5540 --network cicd_network redis/redisinsight:latest

# 修改普罗米修斯配置
vi /opt/prometheus/prometheus.yml
- job_name: redis
static_configs:
- targets: [ '192.168.1.1:9121' ]
labels:
instance: redis

# 本地部署Redis管理工具
docker pull oliver006/redis_exporter:v1.45.0
docker run -d --name redis-exporter -p 9121:9121 -e REDIS_ADDR=redis://192.168.1.1:6379 -e REDIS_USER=root -e REDIS_PASSWORD=123456 oliver006/redis_exporter:v1.45.0

# 重启普罗米修斯
docker restart prometheus

# 进入Grafana后台 http://192.168.1.1:5000/login
=》首页-仪表板-导入-模版ID=763-加载-prometheus
附件:prometheus.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['192.168.1.1:9090']
labels:
instance: centos7
- job_name: grafana
static_configs:
- targets: ['192.168.1.1:9100']
labels:
instance: centos7
- job_name: hello_world
static_configs:
- targets: ['192.168.1.1:8080']
labels:
instance: centos7