zabbix基础配置(三)
===============================================================================
概述:
===============================================================================
回顾:
zabbix 监控配置
1.item(监控项)
★配置监控项流程:
- host groups --> host --> applications --> item(simple graph) --> triggers (events) --> action (condtions, operations)
- operations:remote command, alert
★item图形
- graph --> screen --> slide show
★item:item key
- zabbix 内建:
zabbix agent //被动监控模式下专用的key
zabbix agent(active) //主动模式下专用的key
- 用户自定义(UserParamter)
★采集到的数据类型:
- 数值:
整数
浮点数
- 字符型:
字符串
text(文本)
log (日志)
★存储的值:
- As is:不对数据做任何处理,存储采集到的数据本身;
- Delta(simple change):本次采样的数据减去前一次采样的数据;
- Delta(speed per second):本次采样的数据减去前一次采样的数据,再除以经过的时长;速率数据;
演示:
现在我们在被监控主机CentOS 7.2-2中再去定义一个监控项
----------------------------------------------------------------------------------------
1.监控项为获取被监控主机的网卡入栈报文数,类型为Zabbix agent
2.key(键值)为net.if.in[if,<mode>]就表示入栈的流量统计,Key后带"[]"表示可以接受参数
这里我们在zabbix-server端手动采样一下CentOS 7.2-2的入栈报文,可以发现,报文是不断累加递增的,如下:
3.选择好键值,并给定好参数之后,要选择信息和数据类型,这里还是为十进制数字,数据更新时间间隔可自行定义,如下:
选择数据保留时长,存储值,因为数据是不断累加的,所以我们需要知道其每秒数据的变化量,并添加新的应用集;
4.这样我们就定义好了一个监控项,如果,再添加的监控项,和之前的相差不大,这里我们还可以克隆一个监控项,比如我们可以克隆一个入栈字节数,如下:
只需要修改对应的名称和key参数即可,应用集都是相同的
5.查看添加的监控项,如下:
6.定义好之后,就可以到监测项中查看最新数据了,如下:
图形显示如下:
创建触发器(trigger):
---逻辑表达式,阈值,通常用于定义数据的不合理区间; 条件满足时,TRUE,表示PROBLEM状态,反之,则OK状态;
★触发器
☉“监控项”仅负责搜集数据,而通常搜集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,“触发器”正是用于为监控项所收集的数据定义阈值;
☉每一个触发器仅能关联至一个监控项,但可以为一个监控项同时使用多个触发器;
- 事实上,为一个监控项定义多个具有不同阈值的触发器,可以实现不同级别的报警功能;
☉一个触发器由一个表达式构成,他定义了监控项所采取的数据的一个阈值;
☉一旦某次采集的数据超出了此触发器定义的阈值,触发器状态将会转变为“Problem”,而当采集的数据再次回归至合理范围内时,其状态将重新返回至“OK”
★触发器表达式
☉基本格式:
{<server>:<item>.<fuction>(<parameters>)}<operator><constant>
- server:主机名称;
- key:主机上关系的相应监控项的key;
- function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采取的数据、当前时间及其他因素进行
- 目前触发器所支持的函数有:avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等
- parameters:函数参数,大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用“#”作为前缀,则表示最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;
- operator:表达式所支持的运算符
★触发器间可存在依赖关系;
演示:
为刚才添加的监控项创建触发器
-----------------------------------------------------------------------------------------
1.在配置中,选择要创建触发器的主机,如下:
2.创建对应监控项的触发器
1)定义触发器的名称和表达式
2)选择要添加的主机及监控项
3)建立表达式
4)查看生成的表达式,然后设定级别,点击添加就完成了
3.在监测中可以发现,网卡入栈报文新增了一项触发器,如下:
1)发现,最大的才只有14,现在我修改一下,把最大值设置为15,再去查看,可以看到一条触发线条即阈值,如果超过阈值的就会触发一个事件event
2)查看事件event可以发现有一次超过阈值,由OK变为Problem,如下:
媒介类型(Media Types)
---报警信息的传递方式;
★类型:
- Email:邮件,需要定义发件人邮箱地址和SMTP服务器;
- Script:自定义脚本,此脚本有发送信息至相关用户的功能;
- SMS、Jabber、Ez Texting
★接收通知信息者为zabbix的用户:需要为用户定义对应各种媒介通道的接收方式;
- localmail:
- script:
演示:
1.创建媒介类型
2.自定义媒介类型
3.接下来定义user,用来接收邮件,此用户要关联至本地的能接受邮件的信箱上
1)添加媒介
2)选择媒介类型,和收件人以及级别
如上,媒介类型和添加的用户就已经定义好了,这样,我们就可以在Action中的operations中定义send message发邮件给添加的用户了!
Action:处理动作
1.监控系统介绍
★conditions:
- 触发此动作的条件,一般通过“事件”触发;
★operations:触发条件满足时要采取的动作;
☉send message:
- 功能:发报警信息给关联的用户;
☉remote command
- 功能:在agent所在的主机上运行用户指定的命令或脚本来尝试着恢复故障;
例如:重启服务;任何由用户自定义的脚本;
- 类型:
IPMI
custom script //自定义脚本
ssh
telnet
global script //全局脚本
- custom script实现的前提:
演示:
1.设定执行处理动作的条件
定义其计算方式,3个条件都满足才执行其动作还是满足几个就执行,默认为与关系,即条件同时满足才执行处理动作
2.在执行处理动作之前,还可以执行操作,如发警报或者执行命令等