一、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

[root@agent ~]# 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,也可以是基于字符串显示的标识符


修改配置文件后,如下所示。

[root@agent ~]# 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服务。

[root@agent ~]# systemctl start zabbix-agent.service
[root@agent ~]# 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企业级分布式监控系统》,吴兆松)。

Zabbbix监控配置_第1张图片


下面我们来配置Zabbix-Server(在192.168.10.67主机上)。


2.1 添加主机组(Host Group)

将多个主机合并在一个逻辑组件内即为主机组。分组的目的是将同一属性的主机归类,方便以后管理,例如以业务指标划分组、以系统版本划分组、以应用程序划分组等。主机组中可以包含主机,也可以包含模板。以下是分组的实例。

Zabbbix监控配置_第2张图片


接下来演示如何添加主机组。首先打开前端Web页面,单击Configuration --> Host groups,如下。

wKioL1mzr3GSJB8ZAAAoULIxZLw797.png


单击Create host group。


添加主机组,组名为test group。右边是选择哪些主机或模板属于这个新添加的组。

Zabbbix监控配置_第3张图片

添加后就可以显示在主机组列表中了。



主机组添加完成。


2.2 添加主机(Host)

主机,即被监控设备。添加主机的目的就是对具体的设备进行监控。添加主机过程:单击Configuration --> Hosts。

Zabbbix监控配置_第4张图片


单击Create host。

Zabbbix监控配置_第5张图片


打开界面如下。


Zabbbix监控配置_第6张图片


各参数的详细说明如下表(图片来自《Zabbix企业级分布式监控系统》,吴兆松)。

Zabbbix监控配置_第7张图片


单击add添加后,可以在页面上看新添加的监控主机。


主机添加完成。


2.3 添加应用

单击上图的Application --> Create application。



将该应用命名为CPU(可自定义)。


单击Add后,如下。

Zabbbix监控配置_第8张图片


应用添加完成。


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)/监控接口有多种,如下图。

Zabbbix监控配置_第9张图片

值得注意的是不同类型的监控接口所支持的Zabbix內建item的Key是不同的。其中部分內建Key是有带参数的,用方括号'[]'表示。方括号'[]'中有些带尖括号'<>',表示可选参数,有些不带尖括号的,表示比给参数,如下。

Zabbbix监控配置_第10张图片

这些参数的使用可以查看Zabbix官方文档(地址为:https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent)。


采集到的信息的种类有以下几种,大致可分为数值和字符串两种。


数据类型有二进制、八进制、十进制、十六进制。

Zabbbix监控配置_第11张图片


如果采集数据有单位的话也可以填写单位,此处为空。

wKiom1m304zz7uWBAAACqJdA_ec297.png


后半部分最终配置如下。


wKioL1m31yOxOMOAAAAJownq3wU982.png

Enabled表示保存后立即启用。


此处可以选择每隔多长时间采集一次数据,单位为s。


可以选择采集数据的存储方式(Store value),如下:

①As is:采集到的数据不做任何处理。

②Delta(simple change):本次采样数据减去前一次采样数据的结果。

③Delta(speed per second):本次采样数据减去前一次采样数据,而后除以采样间隔时长的结果。


各参数可参考下表(图片来自《Zabbix企业级分布式监控系统》,吴兆松)。

Zabbbix监控配置_第12张图片

Zabbbix监控配置_第13张图片


2.4.2 添加第二个Item(监控出栈报文数)

如图。

Zabbbix监控配置_第14张图片

访问https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent,查看:

最终配置如下。

Zabbbix监控配置_第15张图片


2.4.3 添加第三个Item(监控Web服务)

如图。

Zabbbix监控配置_第16张图片

访问https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent,查看:

Zabbbix监控配置_第17张图片最终配置如下。

Zabbbix监控配置_第18张图片


三个监控项添加完成。


2.5 添加Trigger

Items的作用是采集数据,而不是判断采集到的数据是否属于正常值;Triggers的作用是对采集到的数据进行分析,判断其是否在合理区间内,一旦数据超出合理范围,就会产生一个事件,同时,Action对达到条件(即数据超出合理范围)的Trigger触发告警动作。


Trigger的状态如下表(下表来自于《Zabbix企业级分布式监控系统》,吴兆松)。


Trigger是一个逻辑表达式,需要定义一个阈值,通常用于定义不合理区间。Trigger的状态会在每次采集到数据后重新判断,对于Trigger中的时间函数nodata()、now()等,Zabbix-Server会每隔30s进行重新判断。


接下来配置Trigger。点击Configuration --> Hosts --> Trggier。

Zabbbix监控配置_第19张图片

点击Create trigger。

Zabbbix监控配置_第20张图片


Zabbbix监控配置_第21张图片


最终配置如下。


Zabbbix监控配置_第22张图片


添加后如下图。


添加触发器完成。


注:告警依赖指的是一个事件的成立必须依赖于另一个事件存在。这种情况适用于比较复杂的业务,例如,一个IDC机房的路由器出现故障时,机房内所有的机器都会因为状态不可获取而告警,并产生了大量不必要的告警信息,但作为管理人员,只需要收到一条有效告警信息“XXX的IDC机房路由器出现故障,将会影响整个机房的使用”即可。


2.6 添加Action


如果需要在Triggers触发事件后,能够自动采取一些操作,如执行远程命令以尝试故障自动恢复、发送通知等,则需要配置actions。Action由Condition和Operation组成。


点击Configuration --> Actions。

Zabbbix监控配置_第23张图片


Zabbbix监控配置_第24张图片

解释:

①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。


Zabbbix监控配置_第25张图片


Zabbbix监控配置_第26张图片



此处需要创建虚拟用户(User),同时也可以先自定义媒介(Media)。


2.6.1 配置媒介/告警通道

媒介(Media Types)用于定义告警信息的传输通道。


点击Administration --> Media Types。

Zabbbix监控配置_第27张图片


点击Create media type。

Zabbbix监控配置_第28张图片


Type有以下几种:

①Email:邮件

②Script:自定义脚本

③SMS:短信(适用于北美)

④Jabber:用于及时通信的软件的框架性协议

⑤Ez Texting:商业组件,只有在美国和加拿大支持


自定义添加后如下。


添加Media type完成。


2.6.2 创建用户组

点击Administration --> User groups。


点击Create user group。

Zabbbix监控配置_第29张图片


配置如下。


配置权限。


添加后如下。


添加用户组完成。


2.6.3 创建用户

点击Administration --> Users。

Zabbbix监控配置_第30张图片


点击Create user。

wKiom1m8wyaydp-zAAAMyBLa_nE414.png


配置如下。

Zabbbix监控配置_第31张图片



选择自定义的Media Type。


添加后如下。


2.6.3 添加Action

此处只演示Operation的配置,Action和Conditions的配置同上。

Zabbbix监控配置_第32张图片

此处的Send Only to选择了LocalSendmail,但最好选择All,表示使用何种媒介(Media Type)作为告警通道,但有可能存在部分用户不支持这种媒介,因此最好是选择All。


点击Add。

Zabbbix监控配置_第33张图片

注:此处还可再添加Operation实现更大范围的告警升级机制。


添加后如下。


添加Action完成。


点击Monitoring --> Latest data,再点击监控项cpu context switches的Graph。

Zabbbix监控配置_第34张图片


Graph如图。

Zabbbix监控配置_第35张图片

可以看到曲线图上有一红色警戒线,只有定义了Action之后才能看到。,一旦超出警戒线范围则告警。


现在人为增大CPU的上下文切换次数(可通过增大agent端主机的Web服务访问量来实现),然后查看Trigger状态。

Zabbbix监控配置_第36张图片


查看Events。

Zabbbix监控配置_第37张图片


查看曲线图。

Zabbbix监控配置_第38张图片


在Zabbix-Server上收到告警信息,如下。

Content-Type: message/rfc822

From [email protected] Sun Sep 10 05:01:08 2017
Return-Path: 
From: 
To: 
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*


告警配置完成。