以前都是在一台空的服务器上搭建的zabbix监控服务,今天由于环境和条件限制,要在现有服务器上搭建监控。

  于是开始了全编译安装。

  

  环境如下:

  zabbix-3.0.4 + nginx-1.8.1 + php-5.6.17 + mysql-5.6.16


  zabbix-server:(zabbix+nginx+php)

  mysql-server:(mysql)


1、数据库的安装

  数据库为独立的数据库,在这里就不做详细说明了。【172.16.1.14

 另一台服务器【172.16.1.15zabbix  server

2nginx编译安装


yum install pcre pcre-devel openssl openssl-devel -y

rpm -qa pcre pcre-devel openssl openssl-devel

mkdir /home/tank/tools -p

cd /home/tank/tools/

wget -q http://nginx.org/download/nginx-1.8.1.tar.gz    #这里可以根据自己的需要选择版本进行安装

tar xf nginx-1.8.1.tar.gz

cd nginx-1.8.1

./configure --prefix=/application/nginx-1.8.1--user=nginx --group=nginx --with-http_ssl_module--with-http_stub_status_module

make

make install

useradd nginx -s /sbin/nologin -M

ln -s /application/nginx-1.8.1//application/nginx

/application/nginx/sbin/nginx

echo "/application/nginx/sbin/nginx" >>/etc/rc.local    《====设置开机自启动

3PHP编译安装


Zabbix3.0PHP的要求还是比较高的,所以编译的过程一定要多加注意。(5.4版本以上)

https://www.zabbix.com/documentation/3.0/manual/installation/requirements   详见官网说明

依赖:

yum installzlib-devel libxml2-devel libjpeg-turbo-devel libxslt-devel freetype-devel \

libpng-develgd-devel libcurl-devel openssl openssl-devel \

libmcrypt-develmhash mhash-devel mcrypt -y

 

#此依赖yum不能直接安装

mkdir -p/app/logs

cd /home/tank/tools

wgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar xflibiconv-1.14.tar.gz

cdlibiconv-1.14

./configure--prefix=/usr/local/libiconv

make

make install

 

cd /home/tank/tools/

上传php压缩包

tar xf php-5.6.17.tar.gz

cd php-5.6.17

 

###PHP编译参数

./configure \

--prefix=/application/php-5.6.17\

--with-mysql=mysqlnd\

--with-mysqli=mysqlnd\

--with-pdo-mysql=mysqlnd\

--with-iconv-dir=/usr/local/libiconv\

--with-freetype-dir\

--with-jpeg-dir\

--with-png-dir\

--with-zlib \

--with-libxml-dir=/usr\

--with-gettext\

--enable-xml \

--disable-rpath\

--enable-bcmath\

--enable-shmop\

--enable-sysvsem\

--enable-inline-optimization\

--with-curl \

--enable-mbregex\

--enable-fpm \

--enable-mbstring\

--with-mcrypt\

--with-gd \

--enable-gd-native-ttf\

--with-openssl\

--with-mhash \

--enable-pcntl\

--enable-sockets\

--with-xmlrpc\

--enable-zip \

--enable-soap\

--enable-short-tags\

--enable-static\

--with-xsl \

--with-fpm-user=nginx\

--with-fpm-group=nginx\

--enable-ftp \

--enable-ctype\

--enable-opcache=no

###PHP编译成功后

make

make install

ln -s/application/php5.6.17/ /application/php

 

解析配置:php.ini

cp php.ini-production/application/php/lib/php.ini

cd /application/php/etc/

cp php-fpm.conf.default php-fpm.conf

启动:

/application/php/sbin/php-fpm

 

echo"/application/php/sbin/php-fpm" >>/etc/rc.local   《====设置开机自启动

4、调整nginx配置连接PHP

调整nginx配置文件,使之能连接PHP

server {

 

    listen      80;

    server_name zabbix.boxuegu.com;

    access_log /var/log/nginx/zabbix_access.log main;

 

    location / {

        root  html;

        index index.php index.html index.htm;

    }

    location ~ .*\.(php|php5)?$ {

        fastcgi_pass  127.0.0.1:9000;

        fastcgi_index index.php;

        include fastcgi.conf;

    }

    error_page  500 502 503 504  /50x.html;

    location = /50x.html {

        root  html;

    }

}

5、zabbix3.0编译安装

zabbix-3.0.3.tar.gz   http://www.zabbix.com/download.php  官网下载页面
http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz/download 
下载链接

依赖;

yum install -yOpenIPMI-devel libssh2-devel net-snmp-devel fping-devel libiksemel-devel

yum installmysql-devel    #本地没有数据库的话,安装此依赖;否则编译会报错(数据库相关)

 

cd /home/tank/tools

tar xfzabbix-3.0.3.tar.gz

cdzabbix-3.0.3

 

#添加用户

useradd zabbix

 

./configure--enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp--with-libcurl --with-libxml2 --with-openipmi --with-ssh2

 

make

make install

 

[root@nginxtools]# egrep -v "#|^$" /usr/local/etc/zabbix_server.conf  #调整服务端配置文件

LogFile=/tmp/zabbix_server.log

DBHost=172.16.1.14

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

Timeout=4

AlertScriptsPath=${datadir}/zabbix/alertscripts

LogSlowQueries=3000

 

 

#拷贝启动脚本

cpmisc/init.d/fedora/core/zabbix_* /etc/rc.d/init.d/

 

/etc/init.d/zabbix_server{start|stop|restart}

 

#修改配置文件

vim/application/php/lib/php.ini    #添加到结尾

max_execution_time= 300

max_input_time =300

post_max_size =16M

always_populate_raw_post_data= -1

date.timezone =Asia/Shanghai

 

#重启php

killallphp-fpm

/application/php/sbin/php-fpm

6、从zabbix源码包拷贝网站到nginx


[root@nginxzabbix-3.0.3]# pwd

/home/bxg/tools/zabbix-3.0.3

[root@nginxzabbix-3.0.3]# cp -rp frontends/php /application/nginx/html/zabbix/

chown -R nginx.nginx /application/nginx/html/

7、初始化zabbix数据库

基本上zabbix服务器算是安装差不多了

这里准备配置mysql服务器了,需要在mysql服务器上授权,及初始化zabbix数据库

#配置mysql服务器

createdatabase zabbix;

grant allprivileges on zabbix.* to zabbix@'172.16.1.15' identified by 'zabbix';

flushprivileges;

 

[root@nginxzabbix-3.0.3]# pwd

/home/bxg/tools/zabbix-3.0.3

[root@nginxzabbix-3.0.3]# ls database/mysql/     #将此3个SQL语句按顺序导入

data.sql  p_w_picpaths.sql schema.sql

mysql -uzabbix-pzabbix zabbix < zabbix-3.0.3/database/mysql/schema.sql

mysql -uzabbix-pzabbix zabbix < zabbix-3.0.3/database/mysql/p_w_picpaths.sql

mysql -uzabbix-pzabbix zabbix < zabbix-3.0.3/database/mysql/data.sql

 

数据库不在本地服务器:

mysql -root –p123456zabbix < zabbix-3.0.3/database/mysql/schema.sql   #根据实际路径

mysql -root –p123456zabbix < zabbix-3.0.3/database/mysql/p_w_picpaths.sql   #根据实际路径

mysql -root –p123456zabbix < zabbix-3.0.3/database/mysql/data.sql     #根据实际路径

8、web界面

打开浏览器输入一下连接:

http://zabbix.boxuegu.com/zabbix

wKiom1e1LAmQVgA7AACIYAO3s78218.png

9、被监控客户端安装zabbix-agent(直接yum安装的版本很低,很      多模板自带监控线不支持)


客户端:

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm  

[root@tomcat~]# rpm-ql zabbix-release

/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

/etc/yum.repos.d/zabbix.repo

/usr/share/doc/zabbix-release-3.0

/usr/share/doc/zabbix-release-3.0/GPL

 

利用zabbix原安装客户端:

yum install -yzabbix-agent

  [root@tomcat ~]# rpm -qa zabbix-agent

zabbix-agent-3.0.4-1.el6.x86_64

 

编辑客户端配置:

[root@tomcat~]# grep "Server" /etc/zabbix/zabbix_agentd.conf|grep -v"^#"

Server=172.16.1.15

ServerActive=172.16.1.15

 

/etc/init.d/zabbix-agentstart

[root@tomcat~]# netstat -lntup|grep 10050

tcp        0     0 0.0.0.0:10050              0.0.0.0:*                   LISTEN      19365/zabbix_agentd

tcp        0     0 :::10050                   :::*                        LISTEN      19365/zabbix_agentd

10、调整中文乱码问题


调整前:

调整中文后,大部分页面显示是没有问题的,不过在maps、screen等graghs时,会出现中文乱码。

如下图所示:

wKioL1e1K-Cy6n0DAABtlRN1uUw096.png

调整中:

出现该问题的原因是zabbix的web端没有中文字库,把中文字库加上即可。解决方法可以由下面几步完成;

1、复制中文字体

从windows下控制面板—》字体—》选择一种中文例如“微软雅黑”,复制出来的字体为msyh.ttf

将复制出来的字体文件通过rz上传至zabbix  web  的fonts目录,如/application/nginx/html/zabbix/fonts,需要注意的是后缀一定是.ttf(小写的),因为zabbix的字体配置文件输入的是不带后缀的字体名。

wKiom1e1K82QirHdAAAplKkI1vk019.png

2、修改defines.inc.php文件

修改zabbix  web端include/defines.inc.php;

[root@nginx fonts]# vim/application/nginx/html/zabbix/include/defines.inc.php

修改如下两处默认字体:【45行和93行】

调整后:

修改完成后,刷新页面,效果如下:

wKioL1e1LLPhpI_TAACDa3in-Ew471.png

11、常见错误解决

1zabbix日志报错信息【host [Zabbix server] not found

wKiom1e1LNmSz-iiAABBpfYJHr0521.png

这里的host改为被监控的主机的hostname即可。   Hostname=nginx

wKiom1e1LRegVi7MAAARNvXRmjE666.png


2zabbix邮件报警错误信息【 Support for SMTP authentication was not compiled in

zabbix的面板中配置好STMP之后,测试发送邮件时爆“Support for SMTPauthentication was not compiled in”这个错误。其实出现这种问题的原因是我们机器上的libcurl版本太低所致。zabbix的官方说明文档上我们可以知道:zabbix3.x要想使用SMTP,那么需要7.20.0及以上版本的curl并且zabbix服务端在编译安装时需要添加–with-libcurl模块,官方原文如下:

To make SMTP authentication options available, Zabbix servershould be compiled with the –with-libcurlcompilation option with cURL 7.20.0 or higher.

 

然后我查看curl版本:

# curl -V

curl 7.19.7(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3libidn/1.18 libssh2/1.4.2

Protocols:tftp ftp telnet dict ldap ldaps http file https ftps scp sftp

Features:GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

这个命令查看我机器上的curl版本,果然是版本太低!


因此,解决方案就很简单了:升级curl,然后再重新编译安装zabbix服务端  【数据库一定要重新初始化,否则还是报这个错】

 

升级libcurl

rpm -Uvhhttp://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-1-13.rhel6.noarch.rpm

yum install libcurl

 

升级后:

# curl -V

curl 7.50.1(x86_64-redhat-linux-gnu) libcurl/7.50.1 OpenSSL/1.0.1e zlib/1.2.3c-ares/1.11.0 libidn/1.18 libssh2/1.7.0 nghttp2/1.6.0

Protocols:dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scpsftp smb smbs smtp smtps telnet tftp

Features:AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libzHTTP2 UnixSockets Metalink


然后重新编译zabbix3

cdzabbix-3.0.3

./configure--enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp--with-libcurl --with-libxml2 --with-openipmi --with-ssh2

make

make install

 

然后重新从源码包拷贝网站到nginx

重新初始化zabbix库


问题解决了!!!