您的位置:首页 > 理论基础 > 计算机网络

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

2015-05-16 20:02 609 查看
参考文档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
参考文章
/article/4405025.html

https://www.zabbix.com/documentation/2.2/manual/discovery/low_level_discovery

zabbix监控apache server-status
/article/3798896.html
系统环境: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后台导入模板
访问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
本文出自 “从心开始” 博客,请务必保留此出处http://hao360.blog.51cto.com/5820068/1651937
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: