随着网站的上线,对网站的一套监控体系也陆续完成,主要用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 zabbix@localhost 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/images.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默认用户 admin 密码 zabbix 。