10分钟搭建Grafana监控看板和普罗米修斯_实现软件服务监控
 
     互联网公司 运维监控等基础设施的 完善程度 一定情况下可以看出其 经营情况 和 技术能力。 
     本次学习的内容可对应用 网络流量 服务器负载 存储容量 等关键指标进行 实时监测 可以及时发现和预防 潜在问题 并做出相应的处理 避免因故障导致 服务中断或数据丢失 在双11营销节日甚至是日常迭代中 监控系统的作用也是 至关重要的。 
     第一份互联网工作 坐在我对面的几位男生 他们的岗位是 NOC技术支持 那时候也是初次看到 互联网企业软件服务监控 感觉很新奇,很有趣~ 
     在这里,继续用 10分钟 时间 搭建运维监控系统 实现实时数据可视化监控。 
使用效果 
Grafana:
Prometheus:
Grafana-Redis:
Grafana-MySQL:
一.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
   | 
 
拓展补充-飞书告警 
1 2 3 4 5 6 7 8 9
   | # Grafana配置飞书支持告警 =》警报->警报规则->New alert rule  填写告警名称->填写查询SQL->Expressions定义条件(比如计数汇总>10)->定义执行频率->选择告警WebHook # 使用效果: Grafana自动执行SQL查询业务数据,满足自己定义的条件后,可以直接发送告警数据到群聊等【飞书机器人助手】。
  # 自定义的Grafana飞书告警 =》警报->联络点->Create contact point   填写联络点名称->整合模版选择->Webhook->配置推送地址和请求方式 # 使用效果:可以把Grafana原始数据推送到这里的Url。后端服务,解析数据并持久化,可自定义加工并发送消息到群聊。
   | 
 
附件: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
   |