四、添加监控客户端
1、监控Linux服务器
首先安装zabbix-agent客户端
CentOS6客户端:

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
# yum install zabbix-agent      #安装的过程自动创建zabbix用户和组
# chkconfig --level 345 zabbix-agent on     #设置自启动级别
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.100.3.66                #本机和监控端IP,需用逗号隔开
ServerActive=10.100.3.66:10051          #监控端IP和端口号
Hostname=commission-server              #客户端主机名,添加主机时要使用
注:Server和ServerActive都指定zabbix server的IP地址,不同的是,前者是被动取数据,后者是主动上传数据。
# service zabbix-agent start                    #启动agent
# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
# service iptables restart
# service iptables save
# netstat -anpl|grep 10050

配置和管理Zabbix(一)
CentOS7客户端:

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# yum install zabbix-agent          #安装的过程自动创建zabbix用户和组
# cat /etc/passwd|grep zabbix
zabbix:x:998:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.100.3.66
ServerActive=10.100.3.66:10051
Hostname=3d-gold-server
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
# firewall-cmd --permanent --add-port=10050/tcp --zone=public 
# firewall-cmd –reload
# netstat -anpl|grep 10050

配置和管理Zabbix(一)
配置监控端(服务端):

# firewall-cmd --permanent --add-port=10051/tcp --zone=public 
# firewall-cmd --permanent --add-port=10050/tcp --zone=public 
# firewall-cmd --reload

配置-->主机-->创建主机,输入主机名称(客户端名称,zabbix_agentd.conf配置的名称)、可见的名称(别名,外部显示的名称)、群组(主机要加入的主机群组)、agent代理程序的接口(客户端IP和端口,默认为IP地址,也可以选择DNS输入域名),默认启用即可。
配置和管理Zabbix(一)_第1张图片
在模板界面,输入linux搜索可用的链接指示器,选择Template OS Linux
配置和管理Zabbix(一)_第2张图片
先点击第一个添加(添加链接模板),再点击第二个添加(添加主机),完成主机的创建。
zabbix_get -s 10.100.2.200 -p 10050 -k agent.ping #返回1表示正常
可通过zabbix_get -h获取帮助文档。
查看主机,可以看到ZBX显示为绿色,表示监控正常。否则就要检查日志。
配置和管理Zabbix(一)
查看客户端日志,如果有以下错误提示:
active check configuration update from [10.100.3.66:10051] started to fail (cannot connect to [[10.100.3.66]:10051]: [113] No route to host)
请检查监控端防火墙配置是否正确,10051端口是否可以访问。
此时在监控中-->最新数据,可以看到刚添加的客户端的监控数据。
配置和管理Zabbix(一)_第3张图片
打开监测中-->图形,选择群组、主机、图形即可查看想要的图表了。如下图:
配置和管理Zabbix(一)_第4张图片
在添加第2台主机3d-gold时,可以点击已有的主机,选择克隆,再修改主机名称、可见的名称、IP地址,点击添加即可。其他主机相同操作。
配置和管理Zabbix(一)
2、监控Windows服务器
下载zabbix_agent:
下载地址:https://www.zabbix.com/download_agents ,下载并解压缩
配置和管理Zabbix(一)_第5张图片
解压后的目录:bin、conf
bin文件夹:dev文件夹、zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe
注:有win32和win64两个文件夹,分别用于32位和64位系统(文件相同)。
conf文件夹:zabbix_agentd.win.conf
在C盘新建文件夹:C:\Program Files\Zabbix_agent(自定义路径和文件夹名),并复制“dev文件夹、zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe”(根据操作系统版本选择win32或win64)和“zabbix_agentd.win.conf”到此目录。如下图:
配置和管理Zabbix(一)_第6张图片
配置zabbix_agented.win.conf:
以文本方式打开(如notepad++,格式不会乱),修改以下几项:和Linux客户端类似

LogFile=C:\Program Files\Zabbix_agent\zabbix_agentd.log     #日志文件路径
EnableRemoteCommands=1              #允许在本地执行远程命令
LogRemoteCommands=1                 #执行远程命令是否保存操作日志
Server=10.100.3.66                      #监控端IP,被动模式
ServerActive=10.100.3.66:10051          #监控端IP,主动模式
Hostname=oa-server                      #客户端名称(需和监控端一致)

配置和管理Zabbix(一)_第7张图片
注册和启动服务:以管理员模式启动cmd命令行
注册服务:"c:\Program Files\Zabbix_agent\zabbix_agentd.exe" -i -c "c:\Program Files\Zabbix_agent\zabbix_agentd.win.conf"
注:删除服务为zabbix_agentd.exe -d -c zabbix_agented.win.conf
配置和管理Zabbix(一)_第8张图片
启动服务:"c:\Program Files\Zabbix_agent\zabbix_agentd.exe" -s -c "c:\Program Files\Zabbix_agent\zabbix_agentd.win.conf"
也可在服务里,选择Zabbix Agent服务,点击启动
配置和管理Zabbix(一)
通过netstat -an命令可以看到端口已起来:
配置和管理Zabbix(一)
配置防火墙:允许10050(TPC/UDP)端口进来
最好把允许zabbix_agentd.exe程序通过防火墙通信也打开
配置和管理Zabbix(一)
监控端配置:
同Linux客户端操作类似,添加主机模板时,可以搜索windows,选择Template OS Windows模板。
配置和管理Zabbix(一)
远程操作命令:
管理-->脚本-->创建脚本,如下图:输入名称,命令,描述,点击添加。
配置和管理Zabbix(一)_第9张图片
打开拓扑图,点击需要重启的Win服务器,选择重启命令即可。
配置和管理Zabbix(一)_第10张图片
3、监控网络设备连通性
通过ICMP PING监控网络设备的连通性:
Zabbix使用外部命令fping处理ICMP ping的请求,在3.4.2中默认已安装好,直接使用即可。
配置和管理Zabbix(一)
1>添加网络设备
配置-->主机-->创建主机,输入主机名称、可见的名称、选择群组、输入IP地址
配置和管理Zabbix(一)_第11张图片
2>在模板页面,添加Template Module ICMP Ping模板
在链接指示器中,点击选择,在Templates群组中选中Template Module ICMP Ping,然后添加即可
配置和管理Zabbix(一)_第12张图片
3>添加图形
在图形页面,点击创建图形
配置和管理Zabbix(一)_第13张图片
添加完成后,即可看到监控图:
配置和管理Zabbix(一)_第14张图片
4>监控项和触发器
在最新数据中可看到监控项中的最新数据:
配置和管理Zabbix(一)
默认已有触发器模板,添加设备后默认已启用
配置和管理Zabbix(一)_第15张图片
4、资产管理
配置-->主机,打开某台主机的配置-->主机资产记录,如下图(截取部分内容):
默认停用的,可以选择手动或自动(自动的仅获取名称和操作系统),然后补充相应的数据,最后更新即可。
配置和管理Zabbix(一)_第16张图片
查看资产记录:
打开资产记录主机,选择相应主机,即可查看主机的概述,打开细节可查看所有记录项。
配置和管理Zabbix(一)_第17张图片
五、监控项管理
Items是从主机里面获取的所有数据。通常情况下叫item为监控项,item由key+参数组成,例如监控项中需要获取cpu信息,则需要一个对应的监控key:system.cpu.load [avg5],avg5是对应的参数,表示5分钟的负载情况。
创建监控项:
例如:获取CPU的内核数:
打开:配置-->主机-->监控项,如下图:
配置和管理Zabbix(一)_第18张图片
配置和管理Zabbix(一)
点击创建监控项,输入名称(如CPU Core Num),选择键值(system.cpu.num),添加到应用集(CPU),填入主机资产记录栏位(硬件)
配置和管理Zabbix(一)_第19张图片
注意:在创建Item过程中,选择Key时,要将选择的system.cpu.num[]的key值修改成system.cpu.num,否则会报Invalid first parameter的错误。
最后点击添加即可。
但这仅仅是针对某一台服务器添加的监控项,如果要对所有服务器都使用,可在“配置”“模板”“监控项”(如Template OS Linux)中添加即可。
配置和管理Zabbix(一)_第20张图片
最新数据可以看到cpu是4核的。
配置和管理Zabbix(一)
Key格式:Item key格式包含key名称和参数,参数必须符合规范
配置和管理Zabbix(一)
首先验证key名是否合法,如果存在参数那么验证参数是否合法,如果没有参数那直接跳过。
key名称规范:0-9a-zA-Z_-.,即允许字符:所有数字、大小写字母、下划线、减号、点。
key可以有多个参数,他们之间用逗号分开,key参数可以是带引号的字符串、不带引号的字符串以及数组。参数如果为空,那么将会使用他设置的默认值。

通过自动发现,监控CPU每个核心:
1、创建模板或使用已有的模板。
2、创建自动发现规则
  配置-->模板-->自动发现-->创建发现规则:
配置和管理Zabbix(一)_第21张图片
3、创建监控项原型
  配置-->模板-->自动发现-->监控项原型-->创建监控项原型:
配置和管理Zabbix(一)_第22张图片
注:Windows中监控项原型略有不同,键值改为:system.cpu.util[{#CPU.NUMBER},,],否则会报Invalid second parameter的错误,其他类似。
在最新数据中显示效果:
配置和管理Zabbix(一)_第23张图片
4、创建图形原形(可省略)
配置-->模板-->自动发现-->图形原型-->创建图形原型:
配置和管理Zabbix(一)_第24张图片
这样,就可以在监测中-->图形,看到每个核心的使用百分比图形了。
如果想把多个核心放在一张图上,则还需要针对具体主机创建图形。
配置-->主机-->图形-->创建图形:
配置和管理Zabbix(一)_第25张图片
效果如下:
配置和管理Zabbix(一)_第26张图片

六、触发器管理
默认大部分监控项都在模板中配置了触发器,但有些监控项需要根据个人需要自已去创建。另外像上面例子在自动发现规则中创建了CPU core discovery,但却没有创建触发器类型。
创建触发器可以在模板的触发器中创建,如定义了自动发现规则也可以在自动发现规则的触发器中创建触发器类型。
具体的触发器定义规则,可参考官方文档:
触发器、自动发现
例如:5分钟内CPU使用率的平均值超过85%时报警
配置-->模板-->Template OS Linux-->触发器-->创建触发器,
在监控项中可以看到system.cpu.util[,,]表示CPU使用率,返回浮点数
配置和管理Zabbix(一)
其中有一个cpu idle时间(system.cpu.util[,idle]),即cpu的空闲时间,当空闲时间小于15%的时候就是cpu大于85%的时候。如下图:
输入名称:{HOST.NAME} cpu use percent 5m avg > 85%
选择严重性:如一般严重
选择表达式:直接输入,或点击添加插入以下表达式都可以
{Template OS Linux:system.cpu.util[,idle].avg(5)} 〈 15 (注:小于号改为英文半角)
配置和管理Zabbix(一)_第27张图片
其他值默认,选择启用,添加即可。
配置和管理Zabbix(一)_第28张图片
另外,还可以在自动发现规则里创建触发器原型。
例如:监控每个CPU core 10分钟内平均使用率超过90%时触发严重告警
配置-->模板-->Template OS Linux-->自动发现规则-->CPU core discovery-->触发器类型-->创建触发器原型,
输入名称:{HOST.NAME} CPU core {#CPU.NUMBER} 10m avg > 90%
选择严重性:如自定义为严重
表达式:{Template OS Linux:system.cpu.util[{#CPU.NUMBER},user,avg1].avg(10)}>90
其他默认,选择启用,添加即可。
注:Windows模板和Linux略有不同,表达式改为:{Template OS Windows:system.cpu.util[{#CPU.NUMBER},,].min(10m)}>90
配置和管理Zabbix(一)_第29张图片
可以把报警值调低(如50%),平均时间设为1分钟,然后通过计算圆周率来进行压力测试,触发告警。
[root@zabbix ~]# echo "scale=8000; 4*a(1)" | bc -l -q
配置和管理Zabbix(一)_第30张图片
默认网卡自动发现规则Network interface discovery没有触发器原型,可以手动创建。
例如:网卡流出流量5分钟内平均流量超过30M时报警
配置-->模板-->Template OS Linux-->自动发现规则-->Network interface discovery-->触发器类型-->创建触发器原型,
输入名称:{HOST.NAME} Outgoing network traffic on {#IFNAME} 5m avg > 30M
选择严重性:如警告
表达式:{Template OS Linux:net.if.out[{#IFNAME}].avg(5)}>30M
注:30M为bps,如想使用Bps(byte),可以用net.if.out[{#IFNAME},bytes]。
其他默认,选择启用,添加即可。
配置和管理Zabbix(一)_第31张图片
用此规则可以监控服务器上传下载文件的流量。
从FTP服务器下载一个大文件,触发告警。
配置和管理Zabbix(一)_第32张图片
参考:官方文档:触发器表达式、官方文档:支持的触发器函数
其他参考:触发器相关、触发器详解