最近在复习运维常见的监控告警软件的时候,想起了 zabbix,于是先用军哥的 lnmp 一键安装包快速搭建了 lnmp 环境,然后成功编译安装了 zabbix,特地将安装过程和遇到的问题记录在此,以便自己或有需要的人来参考翻阅。
由于已有 php 运行环境,所以只需要编译安装 zabbix 即可。
一、安装依赖组件
1 | yum –y install net–snmp net–snmp–devel perl–DBI php–gd php–xml php–bcmath fping OpenIPMI–devel php–mbstring |
二、编译安装 zabbix
①、下载 zabbix
1 2 | cd /usr/local/src wget –O zabbix–2.4.3.tar.gz –c “http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.4.3/zabbix-2.4.3.tar.gz/download” |
②、编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #解压zabbix tar zxvf zabbix–2.4.3.tar.gz #编译zabbix cd zabbix–2.4.3 ./configure —prefix=/usr/local/zabbix —enable–server —with–mysql —with–net–snmp —with–libcurl —with–openipmi —enable–proxy —enable–agent #成功将出现如下信息: *********************************************************** * Now run ‘make install’ * * * * Thank you for using Zabbix! * * <http://www.zabbix.com> * *********************************************************** #直接make install 安装即可: make install |
Ps:configure 可能出现下列错误:
a. 找不到 mysqlclient library:
1 2 3 | checking for mysql_config... /usr/bin/mysql_config checking for main in –lmysqlclient... no configure: error: Not found mysqlclient library |
如下建立软链接之后,重新编译即可:
1 2 3 | #如果是32位系统,应该是lib32,总之,先看下路径所指文件是否存在: ln –s /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib64/mysql/libmysqlclient.so ln –s /usr/lib64/mysql/libmysqlclient_r.so.18.0.0 /usr/lib64/mysql/libmysqlclient_r.so |
b. 找不到 MySQL library:
1 | configure: error: MySQL library not found |
这是未安装 mysql-devel 组件产生的错误,先用 yum 安装,然后重新编译即可:
1 | yum install mysql–devel |
三、配置 zabbix
Ps:以下步骤如果不是绝对路径,均位于 zabbix 解压后的文件夹目录,即/usr/local/src/zabbix-2.4.3
③、创建 zabbix 数据库,并导入初始数据
1 2 3 4 5 6 7 8 9 | #创建zabbix数据库和zabbix用户 mysql –uroot –proot密码 –e “create database zabbix default character set utf8;” mysql –uroot –proot密码 –e “grant all privileges on zabbix.* to ‘zabbix’@’localhost’ identified by ‘zabbix2014’;flush privileges;” #导入zabbix初始数据 cat database/mysql/schema.sql | mysql –uzabbix –pzabbix2014 zabbix cat database/mysql/images.sql | mysql –uzabbix –pzabbix2014 zabbix cat database/mysql/data.sql | mysql –uzabbix –pzabbix2014 zabbix |
③、修改配置
1 2 3 4 5 6 7 8 9 | #创建服务 cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ #修改参数,注意根据实际情况修改DB用户名和密码: sed –i ‘s/^DBUser=.*$/DBUser=zabbix/g’ /usr/local/zabbix/etc/zabbix_server.conf sed –i ‘s/^.*DBPassword=.*$/DBPassword=zabbix2014/g’ /usr/local/zabbix/etc/zabbix_server.conf sed –i ‘s/BASEDIR=/usr/local/BASEDIR=/usr/local/zabbix/g’ /etc/init.d/zabbix_server sed –i ‘s/BASEDIR=/usr/local/BASEDIR=/usr/local/zabbix/g’ /etc/init.d/zabbix_agentd |
④、部署 WEB
1 2 3 4 | #因为只是测试,所以直接丢到了default下,http://ip/zabbix就能访问了 cp –r frontends/php /home/wwwroot/default/zabbix #修改权限 chown –R www:www /home/wwwroot/default/zabbix |
⑤、增加服务端口
1 2 3 4 5 6 7 | #直接在终端执行如下命令行即可: cat >>/etc/services <<EOF zabbix–agent 10050/tcp #Zabbix Agent zabbix–agent 10050/udp #Zabbix Agent zabbix–trapper 10051/tcp #Zabbix Trapper zabbix–trapper 10051/udp #Zabbix Trapper EOF |
⑥、启动 zabbix 服务
1 2 3 4 5 6 | service zabbix_server start service zabbix_agentd start #可选配置:将服务加入开机启动项 chkconfig zabbix_server on chkconfig zabbix_agentd on |
四、WEB 端的安装
因为我是放到 lnmp 的 default 目录,所以直接在浏览器访问 http://ip 地址/zabbix 进入安装向导,和一般的 php 建站程序的安装一样,非常简单。
下一步会检测运行环境,若出现红色的,就自查并解决即可,比如这次出现了一个这样的提示:
提示 max_input_time 的值应该改成 300,所以只需要编辑 php.ini,找到 max_input_time 并修改为 300,保存后执行 service php-fpm restart,再刷新安装向导已经没有问题了,继续按照向导直到安装完毕:
完成后进入 zabbix 登陆界面:
输入默认的用户名:admin 和 密码:zabbix 即可登入:
五、问题与解决
①、监控报错
登陆 zabbix 后,发现仪表盘报如下错误:
看了下后台日志:
1 2 3 4 5 6 | [root@lcoalhost ~]# tail -f /tmp/zabbix_server.log 9785:20150128:114951.637 [Z3001] connection to database ‘zabbix’ failed: [2002] Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2) 9785:20150128:114951.637 Database is down. Reconnecting in 10 seconds. 9785:20150128:115001.638 [Z3001] connection to database ‘zabbix’ failed: [2002] Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2) 9785:20150128:115001.638 Database is down. Reconnecting in 10 seconds. ... |
原来是 mysql.sock 路径问题。
解决方法:
方法(1). 修改/usr/local/zabbix/etc/zabbix_server.conf,找到#DBSocket=/tmp/mysql.sock,取消注释:
方法(2). 建立软链接:
1 2 | test –d /var/lib/mysql || mkdir /var/lib/mysql ln –s /tmp/mysql.sock /var/lib/mysql/mysql.sock |
推荐第一种方法,保存后,使用 service zabbix_server restart 重启 zabbix 服务即可解决此问题。
①、中文设置
修改为中文界面的步骤是:Profile -> Language -> Chinese (zh_CN) ->Save
可当我安装之后,却没有 Chinese (zh_CN)这这个下拉选项。
解决办法:
1、在 zabbix 网站目录(/home/wwwroot/default/zabbix)找到 include/locales.inc.php 文件
2、编辑 locales.inc.php,找到
1 | ‘zh_CN’ => array(‘name’ => _(‘Chinese (zh_CN)’), ‘display’ => false), |
修改为:
1 | ‘zh_CN’ => array(‘name’ => _(‘Chinese (zh_CN)’), ‘display’ => true), |
Ps:里面好多语言默认都是 false 屏蔽了,想开启只需要改成 true 即可在语言配置中开启。
修改保存后,刷新网页,已经可以找到Chinese (zh_CN)了:
②、图形中文显示为方框
由于还没有添加受监控的客户端,所以先把 server 自身的监控打开:
进入图形后,发现文字都是方框:
看来是字体问题,只需要用 Windows 下的常用字体替换一下即可。
具体步骤:
1). 我比较喜欢微软雅黑,所以在 C:windowsfonts 下找到微软雅黑字体:msyh.ttc
2). 上传到 zabbix 字体目录:/home/wwwroot/default/zabbix/fonts/
3.). 用 msyh.ttc 覆盖默认的字体文件 DejaVuSans.ttf 即可:
1 | mv –f msyh.ttc DejaVuSans.ttf |
刷新页面,已经正常了:
好了,关于 zabbix 服务端的安装就记录到这,后续有时间在来记录下 zabbix 客户端的安装及使用。