zabbix-3.2.5源码编译安装

it2024-03-12  60

第1章 基础环境搭建

1.1 部署环境

操作系统:

CentOS 6.5x64 Zabbix-Server:192.168.12.10 Zabbix_Client-enginx:192.168.12.4 Zabbix_Client-tomcat1:192.168.12.6 Mysql:Server version: 5.1.73 Source distribution Php:PHP 5.6.31 (cli) (built: Jan 19 2017 22:50:24) Zabbix:zabbix-3.2.5 Httpd:Apache/2.2.15 (Unix)

1.2 LAMP环境搭建

1.2.1 基础包部署

在 server 安装基础软件包,这里的环境使用 yum 安装,如果使用源码安装也是可以的。

yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp net-snmp-devel curl-devel php-ctype php-xml php-xmlreader php-xmlwriter php-session php-net-socket php-gettext php-mysql libcurl OpenIPMI fping libiksemel libxml2 libxml2-devel gcc libssh2

1.2.2 启动 httpd、mysql 并设置成开机自动启动

service httpd start service mysqld start chkconfig --add httpd chkconfig httpd on chkconfig --add mysqld chkconfig mysqld on

1.2.3 在 iptables 中放行 80,10050,10051 端口

iptables -I INPUT -p tcp -m multiport --destination-port 80,10050:10051 -j ACCEPT [root@zabbix-12-10 ~]# service iptables save

1.2.4 配置PHP参数

zabbix 的运行需要特定的 php 参数支持,修改如下(这些先不用设置,等升级完 php 后再设置)

sed -i “s@;date.timezone =@date.timezone = Asia/Shanghai@g” /etc/php.ini sed -i "s@max_execution_time = 30@max_execution_time = 300@g" /etc/php.ini sed -i "s@post_max_size = 8M@post_max_size = 32M@g" /etc/php.ini sed -i "s@max_input_time = 60@max_input_time = 300@g" /etc/php.ini sed -i "s@memory_limit = 128M@memory_limit = 128M@g" /etc/php.ini sed -i "s@;mbstring.func_overload = 0@ambstring.func_overload = 2@g" /etc/php.ini

1.2.5 修改 httpd 的 FQDN 错误,重启 httpd 服务

cd /etc/httpd/conf/ cp httpd.conf httpd.conf.bak echo "ServerName localhost:80" >>/etc/httpd/conf/httpd.conf /etc/init.d/httpd restart

1.3 安装 zabbix-3.2.5

1.3.1 获取源码包

wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.5/zabbix-3.2.5.tar.gz

1.3.2 添加 zabbix用户和组

groupadd -g 201 zabbix useradd -g zabbix -u 201 -s /sbin/nologin zabbix

1.3.3 源码安装

cd /usr/local/src/ tar zxvf zabbix-3.2.5.tar.gz cd zabbix-3.2.5 ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --enable-ipv6 --with-libcurl --with-libxml2 --with-png-dir --with-jpeg-dir --with-freetype-dir --enable-bcmath --enable-ctype --enable-sockets --enable-mbstring --with-gettext make && make install

1.3.4 建库及授权

mysql mysql> show databases; mysql> create database zabbix default charset utf8; mysql> show databases; mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; mysql> flush privileges; mysql> show grants for 'zabbix'@'localhost';

1.3.5 数据库初始化

cd /usr/local/src/zabbix-3.2.5/database/mysql mysql -uzabbix -pzabbix zabbix < schema.sql

注:-p 和密码之间不能有空格

mysql -uzabbix -pzabbix zabbix < images.sql mysql -uzabbix -pzabbix zabbix < data.sql

1.3.6 启动设置

配置软连接和启动文件信息

mkdir /var/log/zabbix chown -R zabbix.zabbix /var/log/zabbix/ ln -s /usr/local/zabbix/etc/ /etc/zabbix ln -s /usr/local/zabbix/bin/* /usr/bin/ ln -s /usr/local/zabbix/sbin/* /usr/sbin/ cp /usr/local/src/zabbix-3.2.5/misc/init.d/fedora/core/zabbix_* /etc/init.d/ chmod 755 /etc/init.d/zabbix_* ls -l /etc/init.d/zabbix_*

1.3.7 修改/etc/init.d 目录下的 zabbix_server 和 zabbix_agentd 启动文件

cd /etc/init.d/ cp zabbix_server zabbix_server.bak cp zabbix_agentd zabbix_agentd.bak 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

1.3.8 修改/etc/zabbix/zabbix_server.conf

cp zabbix_server.conf zabbix_server.conf.bak sed -i "s@DBUser=root@DBUser=zabbix@g" /etc/zabbix/zabbix_server.conf sed -i "s@# DBPassword=@DBPassword=zabbix@g" /etc/zabbix/zabbix_server.conf

1.3.9 修改/etc/zabbix/zabbix_agentd.conf

cp zabbix_agentd.conf zabbix_agentd.conf.bak

这里的 IP 地址写的是 zabbix_server 的 IP 地址,即 192.168.254.3

sed -i "s@Server=127.0.0.1@Server=127.0.0.1, 192.168.254.3g" /etc/zabbix/zabbix_agentd.conf sed -i "s@ServerActive=127.0.0.1@ServerActive=192.168.254.3:10051@g" /etc/zabbix/zabbix_agentd.conf

检查上面的修改是否生效

grep '192.168.12.88' /etc/zabbix/zabbix_agentd.conf sed -i "s@tmp/zabbix_agentd.log@var/log/zabbix/zabbix_agentd.log@g" /etc/zabbix/zabbix_agentd.conf grep 'zabbix_agentd.log' /etc/zabbix/zabbix_agentd.conf sed -i "s@^# UnsafeUserParameters=0@UnsafeUserParameters=1\n@g" /etc/zabbix/zabbix_agentd.conf grep 'UnsafeUserParameters' /etc/zabbix/zabbix_agentd.conf

1.3.10 复制 zabbix 站点的文件到/var/www/html 目录下

cp -r /usr/local/src/zabbix-3.2.5/frontends/php/ /var/www/html/zabbix chown -R apache.apache /var/www/html/zabbix/ chkconfig --add zabbix_server chkconfig zabbix_server on chkconfig --add zabbix_agentd chkconfig zabbix_agentd on service zabbix_server start service zabbix_agentd start

第2章 通过web站点配置 zabbix

2.1 报错解决

以上步骤配置完后通过 http://192.168.12.88/zabbix/setup.php 网页端进行后续配置,报http 500错误。 查看 apache 日志:

#tail -50f /var/log/httpd/error_log [Sun Apr 23 17:57:49 2017] [error] [client 192.168.12.100] PHP Parse error: syntax error, unexpected '[' in /var/www/html/zabbix/setup.php on line 30

查资料得知 php 版本太低,需要升级 php5.6

#php -v 8

源码升级步骤:http://blog.csdn.net/ebw123/article/details/41875255 yum 升级:

yum list installed | grep php php-common.x86_64 php-fpm.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstrin g.x86_64 php-mysql.x86_64 php-pdo.x86_64 php-xml.x86_64 php-xmlrpc.x86_64 yum -y remove php-* rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm yum -y install php56* --skip-broken php –v /etc/init.d/php-fpm start /etc/init.d/httpd restart

升级之后 http://192.168.12.10/zabbix/setup.php 可以看到安装界面

2.2 安装界面

1.出现安装界面,点击“next” 2.PHP 配置检查界面,结果是 OK 表示正常,如果是 fail 状态,请修改相关的 php 配置参数,并重启 httpd 服务。

#cp /etc/php.ini /etc/php.ini.bak

修改/etc/php.ini

post_max_size =16M max_execution_time =300 max_input_time =300 date.timezone = Asia/Shanghai post_max_size = 32M #/etc/init.d/httpd restart #vim /var/www/html/zabbix/include/classes/setup/CFrontendSetup.php

然后刷新页面既可

4、填写 zabbix 的 server 地址,我这里填写的是本机的 IP 地址 192.168.254.3

5、最后配置结果预览 检查没有问题点击 next step

6、安装完成

2.3 访问zabbix的web管理界面

安装完成后,通过 http://192.168.3.28/zabbix/index.php#就能直接访问 web 管理界面默认用户名:admin,密码:zabbix

2.4 调整 zabbix语言

此时会看到界面上有乱码,如下:

1.从 windows 下控制面板->字体->选择一种中文字库例如“楷体” 2.将字体上传至/var/www/html/zabbix/fonts 目录下 3.修改 zabbix 页面管理的中文字体设置

#cd /var/www/html/zabbix/include/ #cp defines.inc.php defines.inc.php.bak [root@zabbix-12-10 ~]# vim /var/www/html/zabbix/include/defines.inc.php 修改如下 2 行 define('ZBX_FONT_NAME', 'simkai'); define('ZBX_GRAPH_FONT_NAME', 'simkai');

修改后的 zabbix 界面。

第3章 微信告警设置

新版微信告警(企业微信) Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。

3.1 微信企业号申请

地址: http://work.weixin.qq.com/ 第一步注册

注册好微信企业号(即企业微信后)我们需要记录CorpID

我们点击通讯录,添加一个组,或者添加一个成员。成员可以使用微信邀请或者短信邀请。

添加完管理员需要记录管理员账号,我们添加成员需要记录成员ID 或组ID 点击企业应用,新增应用

设置应用

创建完成后 需要记录Agentld、Secret

需要得到的信息记录用户的账号CorpID和Secret、Agentld

3.2 修改Zabbix.conf

[root@abcdocker ~]# grep alertscripts /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts

我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本

3.3 设置脚本

下载脚本,使用云盘下载 链接:http://pan.baidu.com/s/1skXgaKl 密码:xz09 #rz上传wechat脚本到系统/usr/lib/zabbix/alertscripts目录,如果没有rz可以使用yum install lrzsz 安装rz

chmod 755 wechat chown zabbix:zabbix wechat

执行脚本,进行测试 cd到脚本所在目录/usr/lib/zabbix/alertscripts

./wechat --corpid=企业微信的id --corpsecret=Q-HMnIo9HKX8kZwbT4m1SUcS-kmYhmiuRgr4DCLreQA --msg="您好,告警测试" --user=CongYuHong --agentid=1000002 这个是正确的输出 {"errcode":0,"errmsg":"ok","invaliduser":""}

3.4 告警脚本参数详解

corpid= 企业id --corpsecret= 这里就是我们Secret里面的id -msg= 内容 -user=企业微信里面的账号

因为脚本是编译过的,无法进行编辑,我们可以使用./wechat -h or --help 查看使用方法。

3.5 查看企业id,agentdid及secret的方法

首先注册企业微信,然后登陆,登陆之后即可查看企业id、–agentid和–corpsecret

3.6 zabbix web 界面配置

创建报警媒介

--corpid=企业id --corpsecret=这里就是我们的Secret里的id --agentid=Agentld ID --user=={ALERT.SENDTO} --msg={ALERT.MESSAGE}

创建报警用户 这里填写微信收件人的账号 详情请见https://www.abcdocker.com/abcdocker/2573

3.7 其他的脚本

说明:这个脚本也可以实现微信告警,和上文那个wechat任意选一个用即可。

cat weixin.sh #!/bin/bash #set -x CorpID="ww11defa834d9c3dad" Secret="K9ykjDww_dNB6s2eadYwAsm-Yq4NRLO3sY1x48dqnro" GETURL=https://qyapi.weixin.qq.com/cgi-bin/gettoken\?corpid=$CorpID\&corpsecret=$Secret Token=$(/usr/bin/curl -s -G $GETURL |awk -F\": '{print $4}'|awk -F\" '{print $2}') #echo $Token POSTURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token" UserID=ZhaoLiDong #PartyID=2 agentid=1000002 Msg=`echo "$@" | cut -f 3` message(){ printf '{\n' printf '\t"touser": "'"$UserID"\"",\n" # printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n' printf '\t"agentid": "'"$agentid"\"",\n" printf '\t"text": {\n' printf '\t\t"content": "'"$Msg"\""\n" printf '\t},\n' printf '\t"safe":"0"\n' printf '}\n' } /usr/bin/curl --data-ascii "$(message $1 $2 $3)" $POSTURL

3.8 测试

sh weixin.sh 告警测试
最新回复(0)