加载中…
正文 字体大小:

Zabbix常用应用监控实例

(2012-08-29 13:01:05)
标签:

zabbix

分布式监控

it

分类: Monitor

今天演示换机器了,版本zabbix-2.0.2

服务端:192.168.128.42

客户端:192.168.128.43

 

一、监控nginx

参考文章:http://www.linuxidc.com/Linux/2012-07/64798.htm

模板文件可在上面链接下载

 

修改nginx配置:

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf

location /nginx_status {            #添加location字段

            stub_status on;

            access_log off;

            allow 127.0.0.1;

            allow 192.168.128.42; #服务器端IP

            deny all;

}

 

访问验证:http://192.168.128.43/nginx_status

 

创建nginx_status取值脚本:

[root@localhost ~]# vi /usr/local/zabbix/bin/nginx_status.sh

#!/bin/bash

HOST=`ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'`

PORT="80"

function active {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Active' | awk '{print $NF}'

        }

function reading {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Reading' | awk '{print $2}'

       }

function writing {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Writing' | awk '{print $4}'

       }

function waiting {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

       }

function accepts {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $1}'

       }

function handled {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $2}'

       }

function requests {

        /usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $3}'

       }

# Run the requested function

$1

 

修改zabbix_agentd.conf配置,添加自定义项:

[root@localhost ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf

UserParameter=nginx.accepts,/usr/local/zabbix/bin/nginx_status.sh accepts

UserParameter=nginx.handled,/usr/local/zabbix/bin/nginx_status.sh handled

UserParameter=nginx.requests,/usr/local/zabbix/bin/nginx_status.sh requests

UserParameter=nginx.connections.active,/usr/local/zabbix/bin/nginx_status.sh active

UserParameter=nginx.connections.reading,/usr/local/zabbix/bin/nginx_status.sh reading

UserParameter=nginx.connections.writing,/usr/local/zabbix/bin/nginx_status.sh writing

UserParameter=nginx.connections.waiting,/usr/local/zabbix/bin/nginx_status.sh waiting

 

重启agent服务:

[root@localhost ~]# pkill zabbix

[root@localhost ~]# /usr/local/zabbix/sbin/zabbix_agentd start

 

服务器端测试取值:

[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.128.43 -p 10050  -k "nginx.accepts"

3

 

Web导入nginx模版:

系统配置-》模板-》导入

Zabbix常用应用监控实例

本地导入文件:

Zabbix常用应用监控实例

查看模版,包括7个监控项和2个图形显示:

Zabbix常用应用监控实例

 

主机关联nginx模版: 

Zabbix常用应用监控实例

 

查看Nginx Clients StatusNginx Socket Status图形显示: 

Zabbix常用应用监控实例

Zabbix常用应用监控实例

 

2.0.2版本导入模板后图形没有数据,需要修改监控项配置: 

Zabbix常用应用监控实例

 

将类型修改为:Zabbix 客户端,所有监控项都需要修改: 

Zabbix常用应用监控实例

 

二、监控apache

下载模板:https://github.com/rdvn,该zip包有apachememcacheredisvarnish模板,下面演示一下apacheredis用法,其他两个类似。

 

修改http.conf配置:

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

<Location /server-status>

    SetHandler server-status

    Order deny,allow

#    Deny from all

    Allow from all  #可以只给服务器端IP访问权限

</Location>

 

拷贝脚本到指定目录并赋权:

[root@localhost ~]# ll /usr/local/zabbix/bin/apache_status.sh

-rwxr-xr-x 1 root root 248 Apr 23 06:38 /usr/local/zabbix/bin/apache_status.sh

 

修改zabbix_agentd.conf配置:

[root@localhost ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf

UserParameter=apache[*],/usr/local/zabbix/bin/apache_status.sh $1   #添加到行尾

 

重启服务

[root@localhost ~]# pkill zabbix

[root@localhost ~]# /etc/init.d/zabbix_agentd start

 

web导入模板:

导入过程不再演示,与以上nginx类似,导入后与主机关联即可,包含7个监控项和3个图形显示,其中一个如下: 

Zabbix常用应用监控实例

 

三、监控redis

添加crontab:

[root@localhost ~]# crontab -e

* * * * * /usr/local/redis/bin/redis-cli info > /tmp/redisstat  #如果redis设置了端口、密码,需要根据自身情况修改命令参数。

 

修改zabbix_agentd.conf配置:

[root@localhost ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf

UserParameter=redis.stat[*],cat /tmp/redisstat | grep "$1:" | cut -d":" -f2

 

重启agent-web导入xml模板-》关联主机 

Zabbix常用应用监控实例

 

8.30补充mysql监控:

四、监控mysql

模板下载:http://www.zabbix.com/forum/showthread.php?t=26503

包含文件:zabbix-mysqlmonitor.tar.gzmysql.xml

 

1)、数据库授权访问用户

[root@localhost ~]# mysql -e "grant all select,super,process on *.* to zabbix@localhost identified by 'zabbix';"

 

2)、修改配置文件

tar包有2个文件:ss_get_mysql_stats.phpzabbixmysql.conf,拷贝到指定目录

 

修改脚本文件:

[root@localhost ~]# vi /usr/local/zabbix/bin/ss_get_mysql_stats.php

$mysql_user = 'zabbix';   #用户

$mysql_pass = 'zabbix';   #密码

 

修改配置文件路径:

[root@localhost ~]# sed -i 's/share\/zabbix\/plugins/zabbix\/bin/g' /usr/local/zabbix/etc/zabbixmysql.conf

 

修改zabbix_agentd.conf文件:

[root@localhost ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbixmysql.conf

 

修改完毕后重启agent服务。

 

3)web配置

按照以上方式导入mysql.xml模板,由于模板集成了166个监控项和40个图形显示,有些监控项需要根据你的mysql配置来选择,这里演示一个图形所关联的所有监控项,首先查看图形:

Zabbix常用应用监控实例


上图显示关联了
6个监控项,将监控项一一添加到web1主机,监控项的名称前缀不连续,下面只是2个选项:

Zabbix常用应用监控实例


完成后图形显示:

Zabbix常用应用监控实例

 

Zabbix2.0.2本身也自带mysql模板,但是监控项相当较少,根据自己的情况选择。另外如果是1.8.x版本,可以下载官方模板http://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including_replication,内有安装说明,也可以查看http://www.ixpub.net/blog-7367226-406679.html

这个模板不兼容2.0.2版本。


通过这些天的测试,我感觉zabbix确实是不可多得的开源监控平台,绝对有赶超nagioscacti之势,总结一下优点:

1)  zabbix自定义监控非常的灵活,配置也比较简单,至少相对nagioscacti简单多了;

2)  zabbix集成了众多监控模板,基本上涵盖了所有系统层面的监控,需要自己定义的基本上也就是线上跑的应用服务;

3)  自动发现功能是zabbix特有的,当你有大批量服务器需要添加监控的时候相当的便利;

4)  分布式部署so easy

5)  误报率非常低,比nagios好多了;

6)  最后一点:zabbix自带中文,你不用再纠结满世界的找某某某汉化版,这对于众多只钟爱母语的IT运维来说绝对是最大的福音啊,有木有!!!

 

以上只是我个人的使用感受,仅供参考。。。

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有