day062-监控告警方式与Grafana优雅展示

发布于:2025-07-28 ⋅ 阅读:(18) ⋅ 点赞:(0)

0. 老男孩思想-马太效应

“凡有的,还要加给他,叫他有余;凡没有的,连他所有的也要夺去。”

强者愈强,弱者愈弱

在这里插入图片描述

1. API监控

  • 以舔狗日记接口为例
#Linux curl命令
 curl -X POST \
 -H "Content-Type:application/x-www-form-urlencoded" \
 -d "key=045a8a29190663ed52c2ee82f22d739d" \
 "https://apis.tianapi.com/tiangou/index" 
####################################################
[root@web01.oldboy.cn ~]#  curl -X POST  -H "Content-Type:application/x-www-form-urlencoded"  -d key=045a8a29190663ed52c2ee82f22d739d"  "https://apis.tianapi.com/tiangou/index" 
{"code":200,
"msg":"success",
"result":{
	"content":"你好像从来没有主动说过爱我,我搜索了一下关键字“爱”。在我们的聊天记录里,你只说过一次:爱奇艺会员借我一下。"}
}

在这里插入图片描述

在这里插入图片描述

2. zabbix的API接口

  • [10.0.0.63](http://10.0.0.63/api_jsonrpc.php)

在这里插入图片描述

2.1 生成zabbix的api token

在这里插入图片描述

在这里插入图片描述

2.2 访问格式

curl -X POST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "fa6d59fc107117e42ba01ec0b2b5a6efc952a5bfa105c2ccb14052d587553ec6" # 此处写api token
}'  http://10.0.0.63/api_jsonrpc.php

2.3 前端添加web监测

在这里插入图片描述

3. 监控告警方式

报警方式 方案 企业应用场景
发邮件 企业邮箱 企业邮箱
企业微信 机器人 使用企业微信,添加机器人
OA(办公自动化)系统 钉钉、飞书……
短信、电话 阿里云服务
第三方告警平台 onealert 睿象云-智能运维管理平台-智能运维系统-自动化运维性能监控平台
云监控告警

3.1 云监控-邮件告警

3.1.1 邮箱开启授权码

在这里插入图片描述

3.1.2 zabbix前端配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.1.3 消息模板

两个 报警媒介的模板:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

--------------------------------------------------------------------

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

3.1.4 配置邮箱收件人信息

在这里插入图片描述

3.1.5 配置触发器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2 企业微信告警

3.2.1 创建企业微信

  • 创建企业邮箱:[腾讯企业邮箱](https://work.weixin.qq.com/mail/)
    • 不设置也行;
    • 需要有一个域名,并配置邮箱解析

在这里插入图片描述

在这里插入图片描述

  • 登录企业微信管理后台:[企业微信](https://work.weixin.qq.com/wework_admin/loginpage_wx)

在这里插入图片描述

3.2.2 添加群机器人

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • Webhook 地址 是一个由用户提供的 HTTP/HTTPS URL,用于接收外部系统(如GitHub、企业微信、支付平台等)通过 HTTP POST 请求 实时推送的事件通知(例如代码提交、订单支付、审批结果等)。它本质上是开发者自定义的一个 “回调接口”,用于实现系统间的自动化通信。
  • https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3c1da462-093a-421c-a654-a8cd09d070bc

3.2.3 发送告警信息

  • 脚本: zbx_7.0-weixin-dingding.tar.gz 链接: https://pan.baidu.com/s/132dbrY1S8n06lMyMrg31SA?pwd=7wa9 提取码: 7wa9
[root@m03 /server/scripts/weixin_dingding]# ll
总用量 4
-rw-r--r-- 1 root root 2147  724 15:36 zbx_7.0-weixin-dingding.tar.gz
[root@m03 /server/scripts/weixin_dingding]# tar zxf zbx_7.0-weixin-dingding.tar.gz 
[root@m03 /server/scripts/weixin_dingding]# rm zbx_7.0-weixin-dingding.tar.gz 
文件,目录已经移动到回收站:/recyle/tmp.XEplkxQZOT
[root@m03 /server/scripts/weixin_dingding]# ll
总用量 16
-rwxr-xr-x 1 root root 1418  724 12:10 all-api-alert.py
-rw-r--r-- 1 root root 1703  724 11:49 docker-compose.yml
-rw-r--r-- 1 root root  620  724 12:06 Dockerfile-dingding-weixin
-rw-r--r-- 1 root root  901  724 11:45 sources.list
[root@m03 /server/scripts/weixin_dingding]# vim all-api-alert.py 

在这里插入图片描述

[root@m03 /server/scripts/weixin_dingding]# python3 all-api-alert.py "主题:网站挂了 内容:孙克旭搞的"
b'{"errcode":0,"errmsg":"ok"}'

在这里插入图片描述

3.2.4 zabbix发送告警

# 将脚本发到zabbix-server容器中
[root@m03 /app/tools/zbx]# docker-compose exec -u root -it zbx_server bash
root@0758c7bdd6fc:/var/lib/zabbix# grep -i '^alertscript' /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts
# 需要将Python脚本放到该目录下
# 容器还需要Python3的环境,以及下载request模块
# 所以可以使用自定义镜像
  • 自定义镜像压缩包:zbx_7.0-weixin-dingding.tar.gz 链接: https://pan.baidu.com/s/1WY1w0hvNQOUlPJfPOeVfmQ?pwd=dru9 提取码: dru9
[root@m03 /app/tools/zbx_alert_weixin_dingding]# docker-compose build
[+] Building 198.2s (11/11) FINISHED                                                 docker:default
 => [zbx_server internal] load build definition from Dockerfile-dingding-weixin                0.1s
 => => transferring dockerfile: 675B                                                           0.0s
 => [zbx_server internal] load metadata for docker.io/zabbix/zabbix-server-mysql:7.0.9-ubuntu  0.0s
 => [zbx_server internal] load .dockerignore                                                   0.0s
 => => transferring context: 2B                                                                0.0s
 => [zbx_server 1/5] FROM docker.io/zabbix/zabbix-server-mysql:7.0.9-ubuntu                    0.1s
 => [zbx_server internal] load build context                                                   0.0s
 => => transferring context: 2.41kB                                                            0.0s
 => [zbx_server 2/5] ADD all-api-alert.py  /usr/lib/zabbix/alertscripts/                       0.1s
 => [zbx_server 3/5] ADD sources.list   /etc/apt/sources.list                                  0.0s
 => [zbx_server 4/5] RUN     apt update     &&  apt install -y python3  python3-requests     195.7s
 => [zbx_server 5/5] WORKDIR /var/lib/zabbix                                                   0.0s 
 => [zbx_server] exporting to image                                                            1.8s 
 => => exporting layers                                                                        1.7s 
 => => writing image sha256:1d0473248a344a66f71b5807e7ebdbb5b391eddead55d432809e4eb25f9de98b   0.0s 
 => => naming to docker.io/zabbix/zabbix-server-mysql:7.0.9-ubuntu-python                      0.0s 
 => [zbx_server] resolving provenance for metadata file                                        0.0s
[root@m03 /app/tools/zbx_alert_weixin_dingding]# docker-compose up -d
[+] Running 4/4
 ✔ Network zbx_alert_weixin_dingding_oldboy_zbx_net  Created                                   0.1s 
 ✔ Container zbx_db                                  Started                                   0.9s 
 ✔ Container zabbix-server-mysql-7.0                 St...                                     1.1s 
 ✔ Container zabbix-web-nginx-mysql                  Sta...                                    1.6s 
[root@m03 /app/tools/zbx_alert_weixin_dingding]# docker-compose ps
NAME                      IMAGE                                            COMMAND                   SERVICE      CREATED         STATUS                            PORTS
zabbix-server-mysql-7.0   zabbix/zabbix-server-mysql:7.0.9-ubuntu-python   "/usr/bin/docker-ent…"   zbx_server   5 seconds ago   Up 3 seconds                      0.0.0.0:10051->10051/tcp, :::10051->10051/tcp
zabbix-web-nginx-mysql    zabbix/zabbix-web-nginx-mysql:7.0.9-ubuntu       "docker-entrypoint.sh"    zbx_web      4 seconds ago   Up 3 seconds (health: starting)   8443/tcp, 0.0.0.0:80->8080/tcp, [::]:80->8080/tcp
zbx_db                    mysql:8.0-debian                                 "docker-entrypoint.s…"   db           5 seconds ago   Up 3 seconds                      3306/tcp, 33060/tcp
  • 前端配置-告警媒介

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 优雅展示-Grafana

Grafana 是一款开源的 数据可视化与分析平台,主要用于监控、分析和展示时序数据(如服务器性能、应用指标、业务数据等)。它支持多种数据源(zabbix、Prometheus……),提供丰富的仪表盘(Dashboard)和图表功能,广泛应用于 DevOps、运维监控、IoT、业务分析 等领域。

  • 官网:https://grafana.com

4.1 部署grafana

  • 安装包:grafana-enterprise-10.4.17-1.x86_64.rpm 链接: https://pan.baidu.com/s/1S-7IYaYkTH3eHW7xB5rduA 提取码: rnf5
[root@m03 ~]# rpm -ivh grafana-enterprise-10.4.17-1.x86_64.rpm 
……
[root@m03 ~]# systemctl enable --now  grafana-server.service 
[root@m03 ~]# ss -lntup |grep gra
tcp     LISTEN   0        128                    *:3000                 *:*      users:(("grafana",pid=927,fd=16))   
  • granfana的前端页面端口是3000

在这里插入图片描述

在这里插入图片描述

4.2 配置数据源-zabbix

  • 安装zabbix插件,granfana默认 没有
[root@m03 ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
✔ Downloaded and extracted alexanderzobnin-zabbix-app v5.2.0 zip successfully to /var/lib/grafana/plugins/alexanderzobnin-zabbix-app

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.

[root@m03 ~]# grafana-cli plugins ls
installed plugins:
alexanderzobnin-zabbix-app @ 5.2.0
[root@m03 ~]# systemctl restart grafana-server.service 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3 编辑仪表盘面板

在这里插入图片描述

4.3.1 编辑Host name面板

  • 显示zabbix服务器主机名

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3.2 编辑CPU面板

  • 可以对监控项名称使用正则,获取多个参数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3.3 编辑System load(系统负载)面板

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.4 保存仪表盘配置

在这里插入图片描述

5. 踩坑记录-granfana仪表盘:Failed to upgrade legacy queries

在这里插入图片描述

在这里插入图片描述

6. 思维导图

https://kdocs.cn/join/gpuxq6r?f=101\r\n邀请你加入共享群「老男孩教育Linux运维99期-孙克旭」一起进行文档协作


网站公告

今日签到

点亮在社区的每一天
去签到