zabbix监控怎么添加报警人

zabbix监控怎么添加报警人,第1张

zabbix监控添加主机,报警、监控的设置

根据使用zabbix这么久的经验,总结了一套zabbix比较实用的添加主机、监控报警的使用流程,供大家参考。

一:添加处理方法,就是如何报警

打开zabbix的管理------处理方法----create media type:

我用的是脚本发邮件的方式来报警的,脚本名字为mail.py。指的一提的是脚本存放位置,我的脚本是放在/usr/local/zabbix/bin/目录下面,在这里不写目录的据对路径,直接写脚本名字,他的路径设置是在zabbix服务器端的配置文件中设置的,在zabbix_server.conf配置文件中设置:AlertScriptsPath=/usr/local/zabbix/bin/

二:添加zabbix用户和组,设置其邮箱地址等信息

1:打开zabbix的管理------用户---选择用户组下拉----create user group:

填写个组名,设置需要的权限直接保存就成,其他的不用填写和选择。

2:打开zabbix的管理------用户---选择用户下拉----create user:

填写用户信息

3:添加报警介质,就是报警方式,因为是报警,【信息】那项就不用勾选,信息一般就是服务器信息发生变化时报警,这个一般没有什么意义,所以不勾选,不过你也可以选择,根据个人喜好。类型的话就是选择处理发放中的报警介质,选择你添加的。然后可以保存信息,完成添加用户(Permissions那项没有不填写)。

三:报警触发器触发的动作设置

当监控项中的触发器达到你设置的报警值之后,需要执行 *** 作来发送邮件等动作。具体设置:

1:打开zabbix的系统配置--- *** 作---- 选择事件源为触发器------create action:

2:触发条件设置:

3:详细 *** 作设置,即满足触发条件之后执行什么动作,这里一般设置为发邮件之类的,设置收邮件的用户(建议每个组对应一个用户,这样发邮件的时候容易设置发送对象):

四:zabbix中常用到的几个key

Zabbix的key可以理解为zabbix的命令,执行这个key可以得到相应的结果。

1:监控端口的:net.tcp.port[,3306]

/usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 返回1为192.168.8.120的端口3306存在,0为不存在

2:监控进程的:proc.num[mysqld]

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 返回值为192.168.8.120中mysqld的进程数量

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 返回值为192.168.8.120中所有的进程数量

3:查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数

4:查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式

5:查看系统的简单信息:system.uname 返回值为192.168.8.120的系统信息,类似于linux系统的uname -a命令

6:查看windowns系统当前网卡的进出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值为IP为192.168.8.120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值为IP为192.168.8.120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量

7:查看系统内存大小:vm.memory.size[total],返回值单位bytes

8:查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes

9:查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1

10:查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)

11:自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可

以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。

要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:

UserParameter=free.disk,/usr/local/zabbix/bin/disk.py

free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言。

五:创建监控模板和监控项

其实在zabbix服务器端安装完成之后,就有许多自带的监控模板,基本上可以满足大众化的监控需求,不过其中有许多是没有必要的监控项或是自己不感兴趣的,比较冗余,所以要做好监控的话,还是自定义模板和监控项,这个监控模板可以修改zabbix系统自带的,也可以自己创建。以下为自己创建监控模板。

1:创建监控模板:

打开zabbix的系统配置---模板----create template:

填写模板名字和模板所在组保存即可。

步骤:

[if !supportLists]1、 [endif]在zabbix告警目录新建wxrobot.py脚本

vi /usr/local/zabbix/share/zabbix/alertscripts/wxrobot.py

粘贴以下内容:

#!/usr/bin/python

#-*- coding: utf-8 -*-

import requests

import json

import sys

import os

headers = {'Content-Type': 'application/jsoncharset=utf-8'}

api_url = "复制群聊机器人Webhook地址到这"

def msg(text):

    json_text= {

     "msgtype": "text",

        "text": {

            "content": text

        },

    }

    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':

    text = sys.argv[1]

msg(text)

保存退出

需要安装python插件库:pip install requests

授权和更改权限:

chmod +x *.py

chown zabbix:zabbix *.py

2.Zabbix页面配置,新增告警媒介

配置动作

配置—动作—创建动作 , 事件源  选择  触发器

1、点击右上角,“ 创建动作  ”填写对应的信息;在 动作 页面填写以下信息,这里例子为以主机内存使用率超过90%为例,

 计算方式:

Aand B,需要同时符合条件里面添加的条件;

条件A:主机群组等于 Linux Servers;

条件B:触发器等于linux模板的物理内存使用率持续3分钟等于90%。

2、切换到 *** 作

  *** 作: 也就是在符合动作里面配置好的条件时,做出对应的动作,具体的 *** 作说明,请参考官网指导文档,填写好信息,然后点击 *** 作细节 里面的 添加

[if !supportLists]1、 [endif]恢复 *** 作配置

到这就触发器告警企业微信群机器人发送配置完成了,动作日志可以在 

报表 –动作日志  页面查看

附上格式配置,参数说明和其他的格式,请参考  使用宏

*** 作发送消息内容恢复 *** 作发送消息内容

问题:{EVENT.NAME}

告警信息:{TRIGGER.NAME}

告警地址:{HOST.NAME}

监控项目:{ITEM.NAME}

监控取值:{EVENT.VALUE}

告警严重性:{EVENT.SEVERITY}

当前状态:{EVENT.STATUS}

告警时间:{EVENT.DATE} {EVENT.TIME}

事件ID:{EVENT.ID}

告警信息:{TRIGGER. NAME}

告警地址:{HOST.NAME}

监控项目:{ITEM.NAME}

监控取值:{EVENT.RECOVERY.VALUE}

告警严重性:{EVENT.SEVERITY}

当前状态:{EVENT.RECOVERY.STATUS}

告警时间:{EVENT.DATE} {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

事件ID:{EVENT.RECOVERY.ID}

技术交流欢迎加入Q群:177428068

动作: 指定将报警信息发送给谁/定义报警的信息/定义报警的类型(邮件 微信 电话)

触发器: 设定某个监控项报警的阈值条件,可以实现报警提示(条件表达式),默认页面提示报警

https://www.jianshu.com/p/7d798423ec58

https://www.jianshu.com/p/a6c3a551f2ec

配置 ------ 主机 --- 对应主机的监控项

配置 ---- 主机 ---- 选择相应监控主机触发器 --- 创建触发器

页面正常

把zabbix_agent的nginx停掉

页面出现报错信息

把服务重新启动

报警信息消失

右上角的小人头--- 正在发送消息

配置 --- 动作 --- 将默认动作进行开启

管理 ---- 报警媒介类型 --- 创建媒介类型

点击右上角的小人头

再点击 添加

点击 更新

停掉nginx

三个用户,均已收到

https://work.weixin.qq.com/wework_admin/loginpage_wx?redirect_uri=https://work.weixin.qq.com/wework_admin/frame#profile

点击 成员加入

选择一种加入方式并加入

成员加入后,点击 通讯录 可查看加入的成员

收集相关程序代理id和密钥和企业id

程序代理id: 1000003

程序密钥: nR0WyfP7251_jg6vOSQ4SpTrZlrWS-SVm_2nyrXTf6Y

企业id: ww7a34cccfb9fd932b

在zabbix_server端找到脚本存放路径

编写脚本,填写对应的企业和程序信息

脚本执行语法格式: 帐号 + 主题 +  内容

用户名可以在通讯录找到

出现报错: ImportError: No module named requests ,缺少 requests 模块

报错解决:

再次测试:

成功收到测试信息!

管理 --- 报警媒介类型 -- 创建媒介类型

配置接收微信的人员

点击 小人头 --- 报警媒介 ---- 添加

点击 添加

点击 更新

把zabbix_agent的nginx服务停掉

发现报错

这是临时生成的日志没有写入权限

解决办法:

在zabbix_server端更改日志所主

再次测试

报警成功!

1).利用阿里大鱼(收费)

https://www.aliyun.com/product/sms?spm=a3142.7791109.0.0.34691fd2OVGqAY

2)利用onealert发送报警

https://caweb.aiops.com/#/integrate/monitor

这里我们使用 onealert

配置 --- 新建通知

集成 --- zabbix

​ 2.获取alert agent包

3.安装配置alert

配置 --- 动作

在动作日志查看,发现已送达,但是我们选择的是免费版的,所以收不到邮件.....


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11411219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存