Zabbbix监控配置
一、Zabbix-Agent客户端的安装
一、Zabbix-Agent客户端的安装
在前一篇文章《Zabbix介绍》有提到过,Zabbix客户端的数据采集方式可以分为SSH/Telnet/SNMP/Agent等,此处介绍用Agent方式对客户端数据进行采集。实验环境如下。
①Zabbix-Server:192.168.10.67(主机名:server)
②Zabbix-Agent:192.168.10.68(主机名:agent)
1.1 安装Zabbix-Agent
[[email protected] ~]# yum -y install zabbix-agent zabbix-sender
1.2 配置zabbix_agentd.conf
这里先列举常用配置参数,如下。
##### Passive checks related(被动检测相关的配置:agent等待server过来请求数据) Server=IP[:Port] # 被动模式下,允许哪些zabbix-server或zabbix-proxy连接agent,有多台时以逗号分隔 ListenPort=10050 # Zabbix-Agent监听端口 ListenIP=0.0.0.0 # Zabbix-Agent监听的地址,0.0.0.0表示监听在所有地址上 StartAgents=3 # 预生成的zabbix_agentd进程数量 ##### Active checks related(主动检测相关的配置:agent主动向server发送监控数据) ServerActive=IP[:Port] # 主动模式下,向哪台服务器传送采集数据 Hostname=HOSTNAME # 用于向server端表明自己的识别名,可以是hostname,也可以是基于字符串显示的标识符
修改配置文件后,如下所示。
[[email protected] ~]# egrep -v "(^#|^$)" /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=192.168.10.67 # 被动模式,Zabbix-Server的IP地址 ServerActive=192.168.10.67:10051 # 主动模式,Zabbix-Server的IP地址、端口 Hostname=node2.itab.com Include=/etc/zabbix/zabbix_agentd.d/
启动zabbix-agent服务。
[[email protected] ~]# systemctl start zabbix-agent.service [[email protected] ~]# ss -tnl | grep :10050 LISTEN 0 128 *:10050 *:* LISTEN 0 128 :::10050 :::*
二、Zabbix-Server监控配置
在上一篇文章《Zabbix安装配置》中已经演示了Zabbix安装配置过程,接下来演示Zabbix服务端的监控配置过程。这里先提一下,Zabbix的一次完整的简单监控配置顺序如下:
Host groups(主机组) --> Hosts(主机) --> Application(监控项组/应用) --> Items(监控项) --> Triggers(触发器) --> Events(事件) --> Media Type(媒介,告警方式/通道) ---> User groups(用户组) --> Users(用户) --> Action(处理动作)
简单的逻辑图如下(图片来自《Zabbix企业级分布式监控系统》,吴兆松)。
下面我们来配置Zabbix-Server(在192.168.10.67主机上)。
2.1 添加主机组(Host Group)
将多个主机合并在一个逻辑组件内即为主机组。分组的目的是将同一属性的主机归类,方便以后管理,例如以业务指标划分组、以系统版本划分组、以应用程序划分组等。主机组中可以包含主机,也可以包含模板。以下是分组的实例。
接下来演示如何添加主机组。首先打开前端Web页面,单击Configuration --> Host groups,如下。
单击Create host group。
添加主机组,组名为test group。右边是选择哪些主机或模板属于这个新添加的组。
添加后就可以显示在主机组列表中了。
主机组添加完成。
2.2 添加主机(Host)
主机,即被监控设备。添加主机的目的就是对具体的设备进行监控。添加主机过程:单击Configuration --> Hosts。
单击Create host。
打开界面如下。
各参数的详细说明如下表(图片来自《Zabbix企业级分布式监控系统》,吴兆松)。
单击add添加后,可以在页面上看新添加的监控主机。
主机添加完成。
2.3 添加应用
单击上图的Application --> Create application。
将该应用命名为CPU(可自定义)。
单击Add后,如下。
应用添加完成。
2.4 添加Item
Items就是监控项,对于在Zabbix中每一个要监控的数据指标使用一个item进行描述,而一个item通常是由一个Key来标识,这个Key就是定义的Item在采集数据时所使用到的命令的简写形式(类似于命令别名)。Item可以配置获取监控数据的方式、取值的数据类型、获取数据的时间间隔、历史数据保存时间、趋势数据保存时间、监控Key的分组等。
Items可以存在于模板(Template)中,也可以存在于主机(Host)中,模板的作用是可以对需要重复配置的监控项(Items)进行归类,并重复使用已定义的监控项(Items)。
2.4.1 添加第一个Item(监控CPU上下文切换次数)
可以单击上图中某个Application右边对应的Items,也可以单击Configuration --> Hosts --> Items。
前半部分最终配置如下
这里以监控CPU上下文切换次数,因此,item取名为“cpu context switches”,并点击select选择与之对应的Zabbix內建Key。如果是自定义的Key,则点击Select后是无法看到的,需要自己手动填入Key。
需要注意的是,Key有两种:①Zabbix內建的Key;②用户自定义的Key。对于Zabbix內建的Key而言,其类型(type)/监控接口有多种,如下图。
值得注意的是不同类型的监控接口所支持的Zabbix內建item的Key是不同的。其中部分內建Key是有带参数的,用方括号'[]'表示。方括号'[]'中有些带尖括号'<>',表示可选参数,有些不带尖括号的,表示比给参数,如下。
这些参数的使用可以查看Zabbix官方文档(地址为:https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent)。
采集到的信息的种类有以下几种,大致可分为数值和字符串两种。
数据类型有二进制、八进制、十进制、十六进制。
如果采集数据有单位的话也可以填写单位,此处为空。
后半部分最终配置如下。
Enabled表示保存后立即启用。
此处可以选择每隔多长时间采集一次数据,单位为s。
可以选择采集数据的存储方式(Store value),如下:
①As is:采集到的数据不做任何处理。
②Delta(simple change):本次采样数据减去前一次采样数据的结果。
③Delta(speed per second):本次采样数据减去前一次采样数据,而后除以采样间隔时长的结果。
各参数可参考下表(图片来自《Zabbix企业级分布式监控系统》,吴兆松)。
2.4.2 添加第二个Item(监控出栈报文数)
如图。
访问https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent,查看:
最终配置如下。
2.4.3 添加第三个Item(监控Web服务)
如图。
访问https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent,查看:
三个监控项添加完成。
2.5 添加Trigger
Items的作用是采集数据,而不是判断采集到的数据是否属于正常值;Triggers的作用是对采集到的数据进行分析,判断其是否在合理区间内,一旦数据超出合理范围,就会产生一个事件,同时,Action对达到条件(即数据超出合理范围)的Trigger触发告警动作。
Trigger的状态如下表(下表来自于《Zabbix企业级分布式监控系统》,吴兆松)。
Trigger是一个逻辑表达式,需要定义一个阈值,通常用于定义不合理区间。Trigger的状态会在每次采集到数据后重新判断,对于Trigger中的时间函数nodata()、now()等,Zabbix-Server会每隔30s进行重新判断。
接下来配置Trigger。点击Configuration --> Hosts --> Trggier。
点击Create trigger。
最终配置如下。
添加后如下图。
添加触发器完成。
注:告警依赖指的是一个事件的成立必须依赖于另一个事件存在。这种情况适用于比较复杂的业务,例如,一个IDC机房的路由器出现故障时,机房内所有的机器都会因为状态不可获取而告警,并产生了大量不必要的告警信息,但作为管理人员,只需要收到一条有效告警信息“XXX的IDC机房路由器出现故障,将会影响整个机房的使用”即可。
2.6 添加Action
如果需要在Triggers触发事件后,能够自动采取一些操作,如执行远程命令以尝试故障自动恢复、发送通知等,则需要配置actions。Action由Condition和Operation组成。
点击Configuration --> Actions。
解释:
①Trigger events:当Trigger的状态从OK改变为PROBLEM。
②Discover events:当network discover工作。
③Auto registration events:主动模式的Agent自动注册。
④Internal events:当Item编程不被支持(unsupported)或者Trigger变成未知状态(unknown state),该功能需Zabbix 2.2以上版本才支持。
此处选择Trggier event,再点击Create action。
此处需要创建虚拟用户(User),同时也可以先自定义媒介(Media)。
2.6.1 配置媒介/告警通道
媒介(Media Types)用于定义告警信息的传输通道。
点击Administration --> Media Types。
点击Create media type。
Type有以下几种:
①Email:邮件
②Script:自定义脚本
③SMS:短信(适用于北美)
④Jabber:用于及时通信的软件的框架性协议
⑤Ez Texting:商业组件,只有在美国和加拿大支持
自定义添加后如下。
添加Media type完成。
2.6.2 创建用户组
点击Administration --> User groups。
点击Create user group。
配置如下。
配置权限。
添加后如下。
添加用户组完成。
2.6.3 创建用户
点击Administration --> Users。
点击Create user。
配置如下。
添加后如下。
2.6.3 添加Action
此处只演示Operation的配置,Action和Conditions的配置同上。
此处的Send Only to选择了LocalSendmail,但最好选择All,表示使用何种媒介(Media Type)作为告警通道,但有可能存在部分用户不支持这种媒介,因此最好是选择All。
点击Add。
注:此处还可再添加Operation实现更大范围的告警升级机制。
添加后如下。
添加Action完成。
点击Monitoring --> Latest data,再点击监控项cpu context switches的Graph。
Graph如图。
可以看到曲线图上有一红色警戒线,只有定义了Action之后才能看到。,一旦超出警戒线范围则告警。
现在人为增大CPU的上下文切换次数(可通过增大agent端主机的Web服务访问量来实现),然后查看Trigger状态。
查看Events。
查看曲线图。
在Zabbix-Server上收到告警信息,如下。
Content-Type: message/rfc822 From [email protected] Sun Sep 10 05:01:08 2017 Return-Path: <[email protected]> From: <[email protected]> To: <[email protected]> Date: Sun, 10 Sep 2017 05:01:08 +0800 Subject: PROBLEM: cpu cs too high Content-Type: text/plain; charset="UTF-8" Trigger: cpu cs too high Trigger status: PROBLEM Trigger severity: Average Trigger URL: Item values: 1. cpu context switches (node2:system.cpu.switches): 818 2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN* 3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
告警配置完成。
转载于:https://blog.51cto.com/xuweitao/1963976