随着网站的上线,对网站的一套监控体系也陆续完成,主要用cacti对服务器的网卡流量、CPU  Usage 、Load Average、 Memory Usage做了监控,也是用了PERCONA 提供的模板对mysql的相关监控点做了监控,可以直观的在监控图上显示各个监控点的状态,具体实现方式博文会有讲解。

考虑到对业务监控的需求,又搭建了zabbix,主要对各个服务的process NUM,port,free disk space,host status,processor load ,及web页面,主要还是业务监控的添加,通过开发提供的需求,阀值或需要获得状态值,通过自定义脚本来实现对zabbix中无默认key值得监控。

关于zabbix的文章鱼龙混杂,本系列将从zabbix的安装到监控添加,邮件及短信报警,mysql模板添加,zabbix默认key及自定义key的演示,及web页面的监控等。但也仅仅是简单使用zabbix,zabbix相当强大,想用好用活zabbix还需仔细研究。

1, zabbix的安装 

此处简单说明  zabbix不像cacti只需要安装服务端,就可以直接对各个server进行监控,(cacti是通过snmp协议获取数据,然后使用rrdtool存储和更新,及snmp和rrdtool是cacti的关键所在,当然也要mysql或者其他数据库的存储的支持)。zabbix则是通过client端获取host信息,server端定时(item中配置时间)通过定义的key值获取client端状态值来进行绘图或者监控。

安装,依然通过编译,版本2.2.3 下载见附件

yum -y install curl curl-devel net-snmp net-snmp-devel  net-snmp-libs net-snmp-utils perl-DBI 

创建用户账号(server,agent)

# groupadd zabbix

# useradd -g zabbix zabbix

# usermod -s /sbin/nologin zabbix

创建zabbix数据库并导入zabbix数据库数据(server)

# mysql -u root -p123456

> grant all on zabbix.* to [email protected] identified by 'zabbixpwd';

> create database zabbix;

# tar zxvf zabbix-2.2.3.tar.gz

# cd zabbix-2.2.3

# mysql -uzabbix -pzabbixpwd zabbix < database/mysql/schema.sql

# mysql -uzabbix -pzabbixpwd zabbix < database/mysql/p_w_picpaths.sql

# mysql -uzabbix -pzabbixpwd zabbix < database/mysql/data.sql

编译 server 端

# ./configure --prefix=/usr/local/zabbix   --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

# make install

编译client 端

./configure --prefix=/usr/local/zabbix  --enable-agent  即可


server端配置文件配置 172.16.16.201

vi /usr/local/etc/zabbix_server.conf

修改如下内容并删除其他未修改参数条目:

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

LogFile=/var/log/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbixpwd


 vi /usr/local/etc/zabbix_agentd.conf

修改如下内容并删除其他未修改参数条目:

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

LogFile=/var/log/zabbix_agentd.log

Server=127.0.0.1,172.16.16.201 写上本机ip 

UnsafeUserParameters=1 打开可以自定义key值选项。


agent: (172.16.8.1)需要监控的Ip,都要装,都要配置。

# vi /usr/local/etc/zabbix_agentd.conf

修改如下内容并删除其他未修改参数条目:

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

LogFile=/var/log/zabbix_agentd.log

Server=172.16.16.201 指向server端IP

UnsafeUserParameters=1

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

# touch /var/log/zabbix_server.log

# chmod 777 /var/log/zabbix_server.log

# touch /var/log/zabbix_agentd.log

# chmod 777 /var/log/zabbix_agentd.log

启动进程

/usr/local/zabbix/sbin/zabbix_server

/usr/local/zabbix/sbin/zabbix_agentd  服务器端讲打开10050 10051 端口 客户端只打开10050,zabbix之间通信也是使用10050端口,可以使用telnet进行检测,注意selinux,iptables,要做好策略或者进行关闭。

安装web端

zabbix代码是php开发,需要安装php相关进行支持

php  php-bcmath  php-cli  php-common  php-gd  php-ldap php-mbstring php-mysql php-odbc php-pdo php-pear php-xml php-xmlrpc 其中好像 php-bcmath 跟php-mbstring 我yum源里没有,单独下载的。

把解压出来的frontends/php 下面的php源代码文件拷贝到web服务器html文件目录下面,我用的apache,由于只需要提供web环境,也是yum安装的apache并把/php目录下的所有文件capy到了/var/www/html/zabbix下,根据自己情况选择吧。

输入url http://172.16.16.201/zabbix/,就会自动跳转

具体web安装,请参照其他博文,推荐http://showerlee.blog.51cto.com/2047005/1189484

修改php.ini 文件 解除相关错误

注:我在第一次安装过程中出新php-gd的一直报错,手动编译安装的gd库,才解决问题。

需修改该PHP文件配置文件参数:

# vi /usr/local/php5/lib/php.ini

查找如下参数并修改为:

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

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

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

加载PHP下gettext模块

# cd /root/php-5.4.13/ext/gettext

# /usr/local/php5/bin/phpize

# ./configure --with-php-config=/usr/local/php5/bin/php-config

# make && make install

加载该模块

# vi /usr/local/php5/lib/php.ini

添加如下行:

extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gettext.so"

重启apache服务

# service httpd restart

根据每一部指示,填写用户名密码,即完成安装,

zabbix开源监控系列一(安装及web端安装)

zabbix开源监控系列一(安装及web端安装)

zabbix默认用户 admin 密码 zabbix 。