从零开始的云计算生活——第三十五天,举步维艰,zabbix监控(二)

目录

一.故事背景

二.自动发现

自动发现常用的键

创建规则

三.自动发现动作

四.自动注册动作

五.邮件告警

创建媒介

 添加用户组

邮件告警

开始测试

六.设置钉钉告警

创建钉钉群

生成webhook(请保管好webhook的值;后面需要用到。)

服务器上操作

web页面操作

钉钉接收告警信息测试


一.故事背景

在之前的zabbix学习中,学习了如何安装配置zabbix,如何创建新模板,构建监控项,图像等内容,本节内容继续推进,讲述如何添加自动部署,触发器等动作。

二.自动发现

自动发现是指通过zabbix自带的网络扫描功能扫描整个设置好的ip地址段内的符合要求的主机

自动发现常用的键

操作系统相关

Linux

system.uname:键通常用于获取系统相关的信息,包括操作系统名称、内核版本等

net.if.discovery:自动发现网络接口,可用于监控网卡的流量、状态等信息。

vfs.fs.discovery:发现文件系统,方便监控磁盘空间使用情况、文件系统类型等。

proc.discovery:用于发现正在运行的进程,有助于监控进程的资源占用和状态。

service.discovery:发现系统服务,可对服务的启动、停止等状态进行监控。

hw.sensor.discovery:自动检测硬件传感器,例如温度和风扇转速传感器,用于硬件状态监测。

user.discovery:发现系统用户,能用于监控用户登录活动等安全相关内容。

Windows

net.if.discovery:同Linux下的功能类似,用于发现网络接口。

vfs.fs.discovery:发现文件系统,可监测磁盘分区等情况。

win_service.discovery:专门用于发现Windows服务,方便对服务状态进行监控。

proc.discovery:发现运行的进程,可用于监控进程资源占用等情况。

user.discovery:发现系统用户,用于安全监控等。

数据库相关

mysql.discovery:自动发现MySQL数据库的对象,如数据库、表等,用于监控数据库性能、连接数等指标。

oracle.discovery:用于发现Oracle数据库中的实例、表空间、数据文件等对象,可对数据库性能和状态进行监控。

postgres.discovery:能发现PostgreSQL数据库中的数据库、表、索引等对象,方便监控数据库的资源使用和查询性能。

中间件相关

tomcat.discovery:自动发现Tomcat中间件中的应用程序、Servlet、JSP页面等,可用于监控Tomcat的运行状态和性能指标。

rabbitmq.discovery:用于发现RabbitMQ消息队列中间件中的队列、交换机、绑定关系等,方便对消息队列的长度、消息收发速率等进行监控。

容器相关

docker.container.discovery:自动发现主机上运行的Docker容器,包括容器名称、ID、状态等信息,可用于监控容器资源使用情况和内部应用性能。

kubernetes.pod.discovery:用于发现Kubernetes集群中的Pods,包括Pod名称、命名空间、状态、IP地址等,可对Pods的资源使用和容器运行状态进行监控。

网络设备相关

snmp.if.discovery:如果设备支持SNMP协议,可自动发现网络设备的接口,用于监控接口的流量、状态等。

snmp.vlan.discovery:通过SNMP协议自动发现网络设备上的VLAN信息,包括VLAN ID、VLAN名称、VLAN成员端口等,用于监控VLAN相关的流量和端口状态。

cisco.config.discovery(主要用于Cisco设备):自动发现设备的配置信息,如接口配置、路由配置、访问控制列表等,用于及时发现设备配置变更。

云平台相关

aws.ec2.discovery:自动发现亚马逊AWS EC2实例的相关信息,如实例ID、实例类型、状态、IP地址等,可用于监控EC2实例的性能指标。

azure.vm.discovery:用于发现微软Azure云平台虚拟机的基本信息和性能指标,如虚拟机名称、状态、资源组、CPU使用率、磁盘I/O等,方便对虚拟机进行管理和监控。

创建规则

现在开启一台虚拟机,ip为192.168.71.195,下载agent服务后观察是否自动检测

重启服务就发现已经添加了

三.自动发现动作

把刚才新添加的自动检查加入,并增加动作

成功添加,此时返回查看主机,可以发现刚才自动发现的主机已经添加了模板

四.自动注册动作

已经进行自动发现的主机不会被自动注册

此时进行主机配置,重启服务

此时等待片刻发现host1出现了

五.邮件告警

创建媒介

(SMTP寻找方式:

注意划线密码是授权登录密码,而不是登录密码

测试邮件是否可用 (可用)

 添加用户组

然后点击更新

邮件告警

添加测试脚本,检查同时使用用户人数,脚本语句如下

UserParameter=user_sum,w | awk 'NR >= 3{print | "wc -l"}'                                                        

重启服务,并从监控机测试

定义模板(之前定义的模板)

创建监控项和图形

关联组

开始测试

使人数增加

然后查看邮箱

再将人数恢复

再查看邮箱

六.设置钉钉告警

创建钉钉群

生成webhook(请保管好webhook的值;后面需要用到。)

请保管好webhook的值;后面需要用到。

服务器上操作

配置钉钉脚本

cd /usr/lib/zabbix/alertscripts/

vim dingding.py

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import requests
import json
import sys
import os
import datetime
webhook = 写刚才保存的webhock
user=sys.argv[1]
subject=sys.argv[2]
text=sys.argv[3]
data={
        "msgtype": "text",
        "text": {
                "content": "%s%s"%(subject,text)
        },
        "at": {
                "atMobiles": [
                        user
                        ],
                        "isAtAll": False
        }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/lib/zabbix/log/dingding.log"):
        f=open("/usr/lib/zabbix/log/dingding.log","a+")
else:
        f=open("/usr/lib/zabbix/log/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
        f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
        f.close()
else:
        f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送失败"+"\n"+str(text))
        f.close()

#为脚本添加执行权限

chmod +x dingding.py

#修改脚本的属主和属组:

 chown zabbix.zabbix dingding.py

创建日志文件:

mkdir -p /usr/lib/zabbix/log/

touch /usr/lib/zabbix/log/dingding.log

chown zabbix.zabbix -R /usr/lib/zabbix/log/

测试脚本是否能运行成功:

./dingding.py 手机号  告警 test

web页面操作

告警–>媒介–>创建媒体类型

填写信息

{ALERT.SUBJECT}
{ALERT.MESSAGE}
{ALERT.SENDTO}

创建动作

#告警操作内容:
##标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}


#恢复操作内容
##标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}

 

恢复操作添加:

更新媒介

钉钉接收告警信息测试

自己设置好服务器的监控项触发器,让他告警;

完成测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值