参考文档https://www.zabbix.com/documentation/2.2/manual/discovery
一 网络发现
https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery
zabbix提供有效而灵活的自动网络发现功能,使用自动网络发现功能可以:
1)加速zabbix的部署
2)简化zabbix的管理
3)在快速变更的环境中使用zabbix不需要过多的管理
zabbix网络发现功能是基于以下信息:
1)IP范围
2)外部服务的可用性,如TCP,HTTP,POP,FTP,SSH等
3)从zabbix agent接收到的信息
4)从SNMP agent接收到的信息
zabbix不能提供发现网络拓扑的功能
zabbix网络发现功能本质上包括两个阶段,根据发现规则发现主机和发现主机后对主机采取相应动作.
zabbix会间断地扫描网络发现规则中定义的IP范围。间隔时间可以自定义。
每个发现规则都有一系列根据定义的服务类型去检查IP范围内的主机,每次发现都会产生一次发现事件,然后可以对发现的主机采取相应动作,如添加或删除主机到一个主机组,发送邮件,添加或删除模板等操作。
配置Dicovery
参考文档https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule
二 利用zabbix agent主动监控自动注册 active agent auto-registration
zabbix agent配置文件中配置了ServerActive可以用于agent自动注册。
自动注册不需要创建一个网络发现规则
使用主机元数据 Use host metadata
当zabbix agent向zabbix server发送自动注册请求时,它会发送主机名给server。在有些情况下,主机名不足以zabbix server来区分发现的主机。这样可以选择使用主机元数据host metadata来向server发送一些其他信息。
在zabbix agent配置文件中相关的参数有
HostMetadata
定义除了主机名外额外区分不同主机的信息 如果设置的值超过255个字符,agent会显示错误信息
HostMetadataItem
定义HostMetada的获取方式 如果设置的值超过255个字符,agent会显示错误信息
RefreshActiveChecks
设置agent发送主动监控的间隔时间,默认是120秒
案例1 使用主机元数据区分Linux服务器和Windows服务器
在zabbix agent配置文件中配置
HostMetadataItem=system.uname
这样可以保证运行agent的主机的主机元数据包含Linux或Windows
Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32
在zabbix页面上点击Configuration-->Actions Event source选择Auto registration然后点击Create action然后填入动作名称,条件和动作,如下图
三 低级发现功能 low-level discovery
参考文章
http://john88wang.blog.51cto.com/2165294/1439500
https://www.zabbix.com/documentation/2.2/manual/discovery/low_level_discovery
zabbix监控apache server-status
http://jaychang.iteye.com/blog/2215945
系统环境:centos6.3 x64
apache: httpd-2.4.4
zabbix: zabbix-2.06
首先在本机下载模板:https://github.com/rdvn/zabbix-templates/archive/master.zip
该zip包有apache、memcache、redis、varnish模板,我们解压后使用其中的apache模板。
一.打开apache的配置文件添加server-status:
# vi /usr/local/apache/conf/httpd.conf
末行添加如下内容:
---------------------
#ExtendedStatue On
SetHandler server-status
Order Allow,Deny
Allow from all
---------------------
重启apache使其生效:
# /usr/local/apache/bin/apachectl restart
二.zabbix配置:
将下载下来zip包内apache目录下apache_status.sh上传到系统/data/zabbix/sbin/下,并赋予执行权限
# chmod +x apache_status.sh
# ll /data/zabbix/sbin/apache_status.sh
-rwxr-xr-x 1 root root 248 4月 23 2012 apache_status.sh
修改zabbix_agentd.conf配置:
# vim /data/zabbix/etc/zabbix_agentd.conf
末行添加如下内容:
UserParameter=apache[*],/data/zabbix/sbin/apache_status.sh $1
重启zabbix服务
# /etc/init.d/zabbix_agentd restart
三.访问zabbix web后台导入模板
访问zabbix-配置-模板,点击右上角的载入:
将本地zip包中apache目录下的apache.xml文件导入zabbix模板,点击载入保存。
3.访问zabbix-配置-模板,查看模板:
4.访问zabbix-配置-主机-192.168.7.12,找到apache客户端关联templete Apache模版:
添加templete Apache模板即可
添加完毕,查看效果
zabbix 监控tcp连接数
Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受 到了***,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后 果不堪设想。
一:这里列出脚本如下:
# cat /usr/local/zabbix/alertscripts/tcp_connect.sh #!/bin/bash #scripts for tcp status function SYN_RECV { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}' } function ESTABLISHED { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}' } function FIN_WAIT1 { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' | awk '{print $2}' } function FIN_WAIT2 { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-2' | awk '{print $2}' } function TIME_WAIT { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'TIME-WAIT' | awk '{print $2}' } function LAST_ACK { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LAST-ACK' | awk '{print $2}' } function LISTEN { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}' } $1
二、填写key值:当然大家在加入key值之后最好再服务器上面去执行看有没有返回值:
# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp_connect.conf
UserParameter=tcp_connect[*],/usr/local/zabbix/alertscripts/tcp_connect.sh $1
# chown zabbix.zabbix /usr/local/zabbix
三、导入模板(在我的附件上,然后触发器根据自己的情况调整:)
http://www.linuxidc.com/Linux/2015-05/117477.htm