由于最近公司的MySQL服务器越来越多,一直就想弄个监控软件,以前弄过nagios和cacti,当时公司的MySQL服务器不多,只是将nagios和cacti安装起来后就没怎么用。现在听说zabbix挺厉害的,于是就准备玩一下zabbix,本篇文章只是很基础的安装篇,以后会慢慢扩展。

  首先了解一个软件最基本的方法就是去官方网站看介绍,zabbix官网http://www.zabbix.com/然后找对应的帮助文档http://www.zabbix.com/documentation.php,切记勿随便相信百度出来的内容,因为首先百度出来的很可能是以前老版本的东西,其次百度的东西不一定正确,纯属个人意见。

  现在开始进入主题,安装环境:操作系统为CentOS 6.5,zabbix版本为源码版2.4.3,到此页面下载对应的版本http://www.zabbix.com/download.php,我已将安装包传至http://down.51cto.com/data/1978954,MySQL版本为5.6.21(MySQL安装本文不介绍,以后准备专门写介绍MySQL相关的内容)。安装前关闭iptables以及selinux,由于第一次写博客,这次就贴出来怎么关闭防火墙和selinux。

  关闭防火墙

  shell> iptables -F #先清除所有防火墙规则

  shell> service iptables save #保存防火墙规则

  shell> /etc/init.d/iptables stop #停止防火墙

  关闭selinux

  shell> setenforce 0 #临时关闭

  shell> vim /etc/selinux/config #将SELINUX的值修改为disable,永久关闭

  第一步安装所需软件包shell> yum -y install net-snmp-devel curl-devel php-gd php-xmlwriter php-bcmath php-mbstring httpd #这一步可能会少安装包,如果后面在WEB配置的步骤报缺失什么就安装什么

  第二步解压软件到/usr/local目录下

  shell> tar xvf zabbix-2.4.3.tar.gz -C /usr/local/

  第三步增加zabbix组与账号(A separate user account is not required for Zabbix frontend installation.官方说明这一步不是必须的)

  shell> groupadd zabbix

  shell> useradd -g zabbix zabbix

  第四步开始编译安装zabbix

  shell> cd /usr/local/zabbix-2.4.3/

  shell> ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 #由于我只关心MySQL的监控,这里只编译和MySQL有关的功能

  shell> make install

  安装完后接着登陆MySQL创建数据库和对应的相关账号

  mysql> create database zabbix; -- 创建数据库

  mysql> grant all on zabbix.* to zabbix@'%' identified by '123456';  -- 创建账号

  mysql> flush privileges;  -- 刷新权限

  在安装目录找到相关SQL,在MySQL里执行,请注意执行顺序

  shell> cd /usr/local/zabbix-2.4.3/database/mysql

  shell> mysql -uzabbix -p123456 zabbix < schema.sql

  shell> mysql -uzabbix -p123456 zabbix < p_w_picpaths.sql

  shell> mysql -uzabbix -p123456 zabbix < data.sql

  执行完SQL后需要修改几个参数,否则服务起不来

  shell> vim /usr/local/etc/zabbix_server.conf

  将第94行和102行修改成对应的DBUser和DBPassword,请注意根据各自安装的MySQL进行修改

  接下来就是在服务端启动daemon和在被监控端启动agented

  shell> zabbix_server

  shell> zabbix_agentd

  第五步配置web接口

  安装完Apache后会有这个目录/var/www/html/,我们需要将zabbix的php文件放到此目录下

  shell> mkdir /var/www/html/zabbix

  shell> cd /usr/local/zabbix-2.4.3/frontends/php

  shell> cp -a . /var/www/html/zabbix

  启动Apache

  shell> /etc/init.d/httpd start

  接下来就可以通过在浏览器里访问http://<server_ip_or_name>/zabbix配置了

  进入WEB界面后,直接下一步下一步就可以了,当然在下一步的过程中如果报错,请注意是不是没有安装相关的软件包和修改/etc/php.ini的配置造成的,都有很明确的提示,也就是第一步少安装了相关软件包,修改完PHP配置请注意重启Apache服务,如果一直到最后一步全部没有报错的话,那就可以顺利进入登录界面,默认的账号为Admin,密码为zabbix,如果登录成功,则表明安装到此完成。

  安装过程中出现的问题以及解决办法汇总:

  1、在WEB接口配置的时候一定要将相关的软件包安装,一般直接yum install相关软件包即可

  2、修改PHP配置后记得重启Apache服务

  3、数据库的各种配置要熟悉,否则很可能会卡在这一步,由于我是一名小小的MySQL DBA,一般报MySQL的错误我一眼就能看出来,例如这次安装我就碰到个很奇怪的问题,全部配置完毕,进入WEB界面,一直提示zabbix server is not running: the information displayed may not be current,当时排查了很久没找到原因,后来通过看日志,发现日志里显示以下错误

426    4206:20150127:095757.237 database is down: reconnecting in 10 seconds

427    4206:20150127:095807.238 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

看到这种错误后我瞬间明白了是socket文件没有指定正确,正确指定socket文件后,满心欢喜以为问题解决了,结果又报如下错误

509    4206:20150127:100447.291 database is down: reconnecting in 10 seconds

510    4206:20150127:100457.292 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'root'@'localhost' (using password: NO)

我一看这错误,哈哈,这不是就权限问题嘛,一看就知道用户名没有配置正确,这个错误解决后又满心欢喜的以为没问题了,结果服务还是没有起来,于是又看日志,又有以下错误

518  zabbix_server [6034]: Is this process already running? Could not lock PID file [/tmp/zabbix_server.pid]: [11] Resource temporarily unavailable

当我看到这个错误,我心里就一蒙,妈拉个巴子的(请原谅我说脏话),这又是什么鸟错,仔细一看关键字是already running,估计是进程已经在运行了,于是pkill zabbix,重启下zabbix_server,好了到此全部问题解决。

  后续会写如何对MySQL进行相关的监控,敬请期待!