zabbix 触发器 triggers
触发器使用逻辑表达式来评估通过 item获取到的数据是处于哪种状态。
触发器的状态只有两种: OK和 PROBLEM
一个 trigger只能属于一个 Item, 但一个 Item可以有多个 trigger
( 1)创建触发器
点击 Configuration -> Host 或 Template
点击 Hosts或 Template相关行的 triggers,再点击右上角的 create trigger
在表单中输入相应的信息
Severity用途和定义说明:
可视化显示,不同级别显示不同颜色
声音报警,不同级别不同声音
可使用用户自定义媒介报警,例如短信或邮件
严重性 定义 颜色 Notclassified 未知 灰色 Information 一般信息 浅绿 Warning 警告 *** Average 一般问题 橙色 High 严重问题 红色 Disaster 灾难,会带来损失的那种 深红
自定义 severity名称和颜色(一般不用修改,默认挺好的)
触发器 Expression中的表达式:
{:.()}
例: {node2.magedu.com:net.if.in[eth0,bytes].last(#1)}>1200
:评估采集到的数据是否在合理范围内时所使用的函数;其评估过程可以根据采集到的数据、当前时间或其它因素;
常用函数:
avg, count, change, date, dayofweek,dayofmonth, delta, diff, iregexp, regexp, last, max, min, nodata, now, prev,str, strlen, sum
详细说明:
last:表示最后一次采样。例如从老到最新值为 1,2,3,4,5,6 last(#3)=4 last(#2)=5。
avg:最后几次采样的平均值 ,可以是最近几次或最近几分钟,即可选时间或次数
max:最近几次采样中的最大值,可以是最近几次或最近几分钟,即可选时间或次数
min:最近几次采样中的最大值,可以是最近几次或最近几分钟,即可选时间或次数
change:差值,最后一次与上次(倒数第二次)采样的差值,对于字符串返回值 0为没有变化, 1为发生变化。对于数值则为具体数值
delta:返回指定时间范围内或采样范围内的最小值与最大值之差
dayofweek: 本周第几天
dayofmonth: 本月第几天
diff:用来比较最后一次的采样和倒数第二次采样他们彼此间的值是否存在不同,通常用来监控文件
iregexp:忽略大小写的正则表达式
sum:指定时间或次数内的数据之和
regexp:检查最后一次采样的数据是否能够被指定的模式所匹配; 1表示匹配, 0表示不匹配;
now:返回自 Unix元年至此刻经历的秒数;
prev:倒数第二个采样值;
str:从最后一次的采样中查找此处指定的子串,区分大小写,找到返回 1,找不到返回 0;
strlen:字符串长度比较
操作符 :
优先级 操作 定义 1 / 除 2 * 乘 3 - 减 4 + 加 5 大于 7 # 不等于 8 = 等于 9 & 逻辑与 10 | 逻辑或
( 2)触发器依赖关系
触发器可以设置依赖性,例如我配置了两个触发器,一个触发器定义www.163.com这个 host 是否在运行中,另一个是www.163.com 的网络是否畅通。假如网络出现故障,但是 163服务器并未出现故障,我们依旧会受到这两个触发器给到的故障通知。
可以看出, 163服务器是正常工作的,肯定不希望收到它的故障信息。所以在配置 www.163.com这个 Host 触发器时,我们需要增加依赖关系,依赖网络是否畅通这个触发器。一旦网络出现故障,将不会发出 Host故障的通知。
一个触发器可以依赖于多个触发器
依赖设置:
Configuration -> Templates或 Hosts 选定的模板或主机行 ->点击 Triggers
编辑选定的 trigger或点击右上角 create trigger
zabbix action 动作
action触发条件一般为事件 ,支持如下事件:
Trigger events: OK --> PROBLEM
Discovery events: zabbix的 network discovery工作时发现主机;
Auto registration events:主动模式的 agent注册时产生的事件;
Internal events: Item变成不再被支持,或 Trigger变成未知状态
( 1) action创建
Configuration -> Actions -> 选择相应的事件 ->create action
这里以创建 triggers的 action为例
( 2) conditions配置
(3 )Oprations 配置
3.1关于远程命令的执行 remotecommand
(1) 给 zabbix定义 sudo规则;
zabbixALL=(ALL) ALL
(2) 不支持 active模式的 agent;
(3) 不支持代理模式;
(4) 命令长度不得超过 255个字符;
(5) 可以使用宏;
(6) zabbix-server仅执行命令,而不关心命令是否执行成功;
命令执行的前提: zabbix-agent要配置为支持执行远程命令:
vim /etc/zabbix/zabbix_agent.conf 使 EnableRemoteCommands=1,如有需要记录远程命令可打开 LogRrmoteCommands=1
另外,还需要定义 sudo配置文件,支持 zabbix用户通过 sudo执行命令
visudo 添加
zabbix ALL=(ALL) NOPASSWD:ALL
(zabbix用户,无须密码可执行所有命令 )
注意
如果用到以其它用户身份执行命令的话,那么命令本身要以 sudo 方式运行:
sudo /etc/rc.d/init.d/httpd restart
在各 agent 上的 sudoers 文件, (vimsudo) 要注释如下行 ( 因为 sudo 默认是需要一个安全的 tty 环境来运行命令, zabbix agent 并没有在 tty 环境中,所以要取消默认的 ):
Defaults requiretty
zabbix inventory 资产清单
类似于备注,设备的详细描述
上面有一个手动和自动的选择,自动的话会自动带入一些主机的基本信息,大部分还得自己填写。这些信息还有一个作用,在发送警报通知时可以使用其中的信息, {INVENTORY.*}这样来获取之前填写过的信息。例如这台服务器故障了,需要发送邮件给当前服务器的联系人,我们可以发送邮件给 {INVENTORY.CONTACT1}...
zabbix Media types 媒介
Media types包括 mail、 sms、 script、 jabber、 commercial,通常会使用 email和 script比较多
( 1) email类型的使用
Administration -> Media types ->create... 就可以创建了,这里创建用于本地的邮件发送,用来通知本机用户
创建后,只要在 Administration -> User 中新建或现存的相关用户中使用这个 Mediatypes 就可以了,例:
( 2) Script类型的使用
当事件通知到脚本,会传递三个参数给它,分别是 $1(发送给谁), $2 (标题), $3(内容)
Administration -> Media types ->create... 就可以创建了
然后再和上面 email的一样,指定用户即可使用。
注意:
脚本的路径为相对路径,脚本的目录需要先定义 AlertScriptsPath
vim/etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts 改为自己需要的目录即可
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com