参考文档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然后填入动作名称,条件和动作,如下图

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix


三 低级发现功能 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
<Location /server-status>
  SetHandler server-status
  Order Allow,Deny
  Allow from all
</Location>

---------------------

重启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后台导入模板

  1. 访问zabbix-配置-模板,点击右上角的载入:

将本地zip包中apache目录下的apache.xml文件导入zabbix模板,点击载入保存。

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix_02

3.访问zabbix-配置-模板,查看模板:

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix_03

4.访问zabbix-配置-主机-192.168.7.12,找到apache客户端关联templete Apache模版:

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix_04

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix_05

添加templete Apache模板即可


添加完毕,查看效果

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix_06

 zabbix的Discovery功能,zabbix监控apache server-status  zabbix 监控tcp连接数_zabbix_07






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