根据使用zabbix这么久的经验,总结了一套zabbix比较实用的添加主机、监控报警的使用流程,供你们参考。mysql
一:添加处理方法,就是如何报警
打开zabbix的管理------处理方法----create media type:linux

我用的是脚本发邮件的方式来报警的,脚本名字为mail.py。指的一提的是脚本存放位置,个人脚本是放在/usr/local/zabbix/bin/目录下面,在这里不写目录的据对路径,直接写脚本名字,他的路径设置是在zabbix服务器端的配置文件中设置的,在zabbix_server.conf配置文件中设置:AlertScriptsPath=/usr/local/zabbix/bin/
二:添加zabbix用户和组,设置其邮箱地址等信息
1:打开zabbix的管理------用户---选择用户组下拉----create user group:

填写个组名,设置须要的权限直接保存就成,其余的不用填写和选择。
2:打开zabbix的管理------用户---选择用户下拉----create user:
填写用户信息

3:添加报警介质,就是报警方式,由于是报警,【信息】那项就不用勾选,信息通常就是服务器信息发生变化时报警,这个通常没有什么意义,因此不勾选,不过你也能够选择,根据我的喜爱。类型的话就是选择处理发放中的报警介质,选择你添加的。而后能够保存信息,完成添加用户(Permissions那项没有不填写)。

三:报警触发器触发的动做设置
当监控项中的触发器达到你设置的报警值以后,须要执行操做来发送邮件等动做。具体设置:
1:打开zabbix的系统配置---操做---- 选择事件源为触发器------create action:sql

2:触发条件设置:

3:详细操做设置,即知足触发条件以后执行什么动做,这里通常设置为发邮件之类的,设置收邮件的用户(建议每一个组对应一个用户,这样发邮件的时候容易设置发送对象):

四:zabbix中经常使用到的几个key
Zabbix的key能够理解为zabbix的命令,执行这个key能够获得相应的结果。
1:监控端口的:net.tcp.port[,3306]
/usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 返回1为192.168.8.120的端口3306存在,0为不存在windows
2:监控进程的:proc.num[mysqld]
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 返回值为192.168.8.120中mysqld的进程数量服务器
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 返回值为192.168.8.120中全部的进程数量网络
3:查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数tcp
4:查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式
5:查看系统的简单信息:system.uname 返回值为192.168.8.120的系统信息,相似于linux系统的uname -a命令ide
6:查看windowns系统当前网卡的进出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]同样
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值为IP为192.168.8.120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量spa
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值为IP为192.168.8.120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量3d
7:查看系统内存大小:vm.memory.size[total],返回值单位bytes
8:查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes
9:查看文件是否存在:vfs.file.exists[file] 文件若是存在返回1,不存在返回0
10:查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)
11:自动发现网卡并监控流量和自动发现分区及分区挂载状况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用便可
以上是经常使用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等状况。若是要监控其余的能够自定义key来实现,本人喜欢自定义key,写个脚原本返回,获得本身想要的监控结果,zabbix在这块作的很是好,扩展性很强,支持各类脚原本实现自定义的key。
要启用自定义key,须要在客户端的配置文件中启用UnsafeUserParameters=1参数,而后在配置文件的最下面来定义key,如:
UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本能够是任何能够运行的脚本语言。
五:建立监控模板和监控项
其实在zabbix服务器端安装完成以后,就有许多自带的监控模板,基本上能够知足大众化的监控需求,不过其中有许可能是没有必要的监控项或是本身不感兴趣的,比较冗余,因此要作好监控的话,仍是自定义模板和监控项,这个监控模板能够修改zabbix系统自带的,也能够本身建立。如下为本身建立监控模板。
1:建立监控模板:
打开zabbix的系统配置---模板----create template:
填写模板名字和模板所在组保存便可。

2:建立监控项:
打开zabbix的系统配置---模板---选择对应模板中的监控项---create item:

3:建立监控项的触发器:
打开zabbix的系统配置---模板---选择对应模板中的触发器---create trigger:


这里说明下这个 N 值的大小
好比说我检测被监控端的httpd 进程数为9个,这时这这个N的值就能够设置为 N=9 ,
当last value 最后一次检测的值小于N,也就是小于9时,这个触发器就会被触发。
六:添加主机并应用模板
添加主机有两种方法,一个是手动添加,一个是经过zabbix的自动发现来自动添加主机。
1:手动添加主机
作完以上的设置,添加主机就是很简单的事情了。打开zabbix的系统配置---主机—create host:

在这一步,只填写主机名、显示名、agent接口中的IP地址,选择主机所在组,其余的默认。

选择模板确认并保存主机,其余的选项不须要设置,默认便可
添加完主机以下图,可用性为绿色是正常,红色为不可监控(主要是网络不通或是没有安装zabbix客户端),灰色为正在检测zabbix的状态:

2:经过自动发现自动添加主机:
打开zabbix的系统配置---自动发现—create discovery rule:

须要添加名称,ip地址段(这个地址段以覆盖你全部IP的最小地址段为好),checks。其中checks最为重要,总共三项,只填写key,这里用system.uname这个key。而后点击添加并保存。这里的意思是zabbix服务器端扫描这个网段中的zabbix客户端(客户端端口默认为10050),扫描到以后取客户端的system.uname值,这个值返回的相似于linux系统中的uname –a命令,值为下面形式:

这个主要用于发现主机以后把主机自动分配到相应的组(好比linux组或是windowns组)中,而且应用相应的监控模板。
固然,这个key值不必定要用system.uname,也能够用其余的key,首先zabbix客户端支持这个key,在这用这个key能够区分不一样类型的主机方便分组应用监控模板。
打开zabbix的系统配置---操做-------事件源下拉选择自动发现—create action:


这几项的意思是当自动发现经过发现zabbix客户端,而且接收到key的中包含linux字符,即把他添加到linux_servers组中,应用linux_server模板。等一段时间便可查看自动发现的结果。结果能够在zabbix首页中最下面有状态,也能够在zabbix的状态统计---自动发现中查看,能够看到发现了多少,监控了多少。
到此为止,zabbix的监控设置说明完毕。