Zabbix部署,


原文发表于cu:2016-05-11

参考文档:

一.环境

ServerCentOS-7-x86_64-1511

Server IP: 192.168.11.252

Web环境:CentOS-7-x86_64-1511编译nginx-1.9.12+ mysql-5.7.11+ php-7.0.4

ClientWin7 x86_64, Chrome/Firefox浏览器

二.软件获取

Zabbix官网下载地址:http://www.zabbix.com/download.php

截至2016-05-11,最新LTS版本下载地址:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz 

三.安装zabbix

1. iptables设置

# zabbix_agent端口10050,agent默认采用被动方式,由server端主动连接agent;agent主动模式,在agent的配置文件中可配置;
# zabbix_trapper端口10051,agent主动或trapper方式连接server端
[root@localhost ~]# vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT 

2. 创建/导入数据库

# 进入mysql数据库创建脚本目录,列出文件,有schema.sql、images.sql、data.sql三个文件
cd /usr/local/src
tar -zxvf zabbix-3.0.1.tar.gz
cd /usr/local/src/zabbix-3.0.1/database/mysql
ll

# 输入密码,进入MySQL控制台
mysql -u root -p
 
# 创建数据库zabbix,并且数据库编码使用utf8
create database zabbix character set utf8;

# 新建账户zabbix,密码123456,刷新系统授权表
CREATE USER zabbix IDENTIFIED BY '123456';
flush privileges;

# 允许zabbix账号能从本机连接到数据库zabbix
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456' with grant option;
flush privileges;

# 进入mysql数据库,查看新建zabbix账号及其权限库zabbix
use mysql;
select host,user from user;

# 进入zabbix数据库,导入脚本文件到zabbix数据库,重要:请务必按以下顺序导入
use zabbix;
source /usr/local/src/zabbix-3.0.1/database/mysql/schema.sql
source /usr/local/src/zabbix-3.0.1/database/mysql/images.sql
source /usr/local/src/zabbix-3.0.1/database/mysql/data.sql

# 或者在系统中直接导入
mysql -uzabbix -p123456 -hlocalhost zabbix < /usr/local/src/zabbix-3.0.1/database/mysql/schema.sql
mysql -uzabbix -p123456 -hlocalhost zabbix < /usr/local/src/zabbix-3.0.1/database/mysql/images.sql
mysql -uzabbix -p123456 -hlocalhost zabbix < /usr/local/src/zabbix-3.0.1/database/mysql/data.sql

# 系统版本不同,文件版本可能不一样,这里是18.0.0;有可能找不到libmysqlclient_r.so.x.0.0文件,不影响
cd /usr/lib64/mysql
ln -s libmysqlclient.so.18.0.0 libmysqlclient.so
ln -s libmysqlclient_r.so.18.0.0 libmysqlclient_r.so

3. 部署zabbix

添加用户

# 创建用户zabbix,将用户zabbix加入到用户组zabbix中
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix

依赖包

#如果以下软件包在安装Web环境LNMP时已安装过,此步骤可忽略
yum install net-snmp-devel curl curl-devel mysql-devel

安装zabbix

#有可能找不到libiconv.so.2文件,暂时未发现有何影响
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

#使配置立即生效
/sbin/ldconfig

#find / -name mysql_config 查找位置,如果没有mysql_config,需要安装yum install mysql-devel
cd /usr/local/src/zabbix-3.0.1
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql=/usr/bin/mysql_config
make
make install

ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/

配置

添加端口

#添加zabbix服务对应的端口,默认services文档中已添加
vim /etc/services

# Zabbix
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

修改zabbix配置文件

#zabbix配置文件修改
vim /usr/local/zabbix/etc/zabbix_server.conf

DBName=zabbix
DBUser=zabbix
DBPassword=123456
ListenIP=127.0.0.1
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

#启用自定义key子配置文件路径,并打开对特殊字符的处理
vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1

添加开机启动脚本

#服务端
cp /usr/local/src/zabbix-3.0.1/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server

#客户端
cp /usr/local/src/zabbix-3.0.1/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd

#添加脚本执行权限
chown zabbix:zabbix /etc/rc.d/init.d/zabbix_server
chown zabbix:zabbix /etc/rc.d/init.d/zabbix_agentd
chmod +x /etc/rc.d/init.d/zabbix_server
chmod +x /etc/rc.d/init.d/zabbix_agentd

#编辑服务端启动脚本中zabbix的安装目录
vim/etc/rc.d/init.d/zabbix_server

BASEDIR=/usr/local/zabbix/

#编辑客户端启动脚本中zabbix的安装目录
vim /etc/rc.d/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix/

#添加开机启动
chkconfig –level 35 zabbix_server on
chkconfig –level 35 zabbix_agentd on 

配置web站点

#解压文件中有模板
cp -r /usr/local/src/zabbix-3.0.1/frontends/php /usr/local/nginx/html/zabbix

#/usr/local/nginx/html为Nginx默认站点目录,www为nginx运行账户
chown -R www:www /usr/local/nginx/html/zabbix
 
#启动zabbix服务端/客户端
service zabbix_server start
service zabbix_agentd start

修改php配置文件参数

#参数都是zabbix web安装需要的参数,在后面的zabbix启动安装时会检测
vim /etc/php.ini
post_max_size =16M
max_execution_time =300
max_input_time =300

vim /usr/local/php/etc/php-fpm.d/www.conf
request_terminate_timeout = 300
 
#重启php-fpm
service php-fpm reload

安装zabbix web

在浏览器中打开:http://192.168.11.252/zabbix

第一次运行时,系统会自动重重定向到setup.php进行web安装。

Next step

Zabbix web安装会检测安装环境,必须全部通过才能进行下一步安装。

如下,检测显示有一项未通过检测,

参数:always_populate_raw_post_data 检测不通过,

zabbix会主动检测此参数,但php5.6已经没有此参数,可以做如下修改:

# 注释原76~78行,添加如上几行,当php版本大于5.6时忽略此检测
# https://blog.memotz.com/276.html
vim /usr/local/nginx/html/zabbix/include/classes/setup/CFrontendSetup.php

// check for deprecated PHP 5.6.0 option 'always_populate_raw_post_data'
#if (version_compare(PHP_VERSION, '5.6', '>=')) {
# $result[] = $this->checkPhpAlwaysPopulateRawPostData();
#}

if (version_compare(PHP_VERSION, '5.6', '>=') && version_compare(PHP_VERSION, '7.0.4', '<')) {
$result[] = $this->checkPhpAlwaysPopulateRawPostData();
}
$result[] = $this->checkPhpSockets();

 修改后刷新检测,通过,Next step

配置DB信息,按之前的配置填写即可,注意:database host处如localhost不通过,可查看zabbix是否赋予主机localhost相应权限,如没有,可增加localhost主机或修改配置页中的localhost为127.0.0.1

修改后刷新检测,通过。

Next step

可以默认,也可以设置一个zabbix服务器名。 

Next step

Next step

安装完成,Finish。

Zabbix登录页,默认账号/密码:admin/zabbix

zabbix server启动问题

登录zabbix后,重点观察Dashboard中zabbix server的状态值,有时zabbix并没用运行,VALUE显示值为No,此时可以查看/tmp/zabbix_server.log日志文件定位(在配置文件/usr/local/zabbix/etc/zabbix_server.conf中明确日志文件的位置),经常会因为mysql权限问题导致zabbix_server不能正常启动。

4. Zabbix汉化(optional)

修改系统配置文件,使web页面支持简体中文显示

vim /usr/local/nginx/html/zabbix/include/locales.inc.php

'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),
修改为:
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),

替换监控图像上系统默认的字体

默认字体不支持中文,如果不替换,图像上会显示乱码。

在Windows系统中的C:\Windows\Fonts目录中复制出一个中文字体文件,例如msyh.ttf,

把字体文件msyh.ttf上传到zabbix站点根目录下fonts文件夹中,如/usr/local/nginx/html/zabbix/fonts

#备份默认的字体文件,修改msyh.ttf名为DejaVusSans.ttf
mv DejaVusSans.ttf DejaVusSans.ttf-bak
mv msyh.ttf DejaVusSans.ttf

修改显示语言

登录zabbix,AdministratoràUseràAdmin(字体与账户有关),修改Language为Chinese(zh_CN)。

点击update,退出站点,重新登录即可。

相关内容