ITPub博客

首页 > 应用开发 > IT综合 > zabbix监控环境搭建指南--史上最最详细搭建过程

zabbix监控环境搭建指南--史上最最详细搭建过程

原创 IT综合 作者:bestpaydata 时间:2015-10-15 09:26:32 0 删除 编辑

一、ZABBIX安装

原创:Perry.Zhang  
修改:Jane.Hoo
发表:Jane.Hoo

本文未经许可严禁转载。

注:涉及到的可自定义的部分均使用变量表示。如zabbix安装路径为$ZABBIX_HOME。

1.LNMP环境搭建

1.1.Nginx安装

1.1.1.环境依赖

1)   支持rewrite功能必须安装pcre 。perl 兼容的正则表达式库。

# yum install pcre*

[root@zabbix ~]# rpm -qa|grep pcre*

pcre-static-7.8-6.el6.x86_64

pcre-7.8-6.el6.x86_64

pcre-devel-7.8-6.el6.x86_64

2)   如需要SSL支持则还需要安装openssl包。

# yum install openssl*

[root@zabbix ~]# rpm -qa|grep openssl

openssl-static-1.0.1e-30.el6.11.x86_64

openssl098e-0.9.8e-18.el6_5.2.x86_64

openssl-1.0.1e-30.el6.11.x86_64

openssl-devel-1.0.1e-30.el6.11.x86_64

openssl-perl-1.0.1e-30.el6.11.x86_64

1.1.2.下载源码包

(本文使用1.9.3版本)

# wgethttp://nginx.org/download/nginx-1.9.3.tar.gz

1.1.3.解压与编译安装

$NGINX_HOME=/data/nginx

# tar -zxvf nginx-1.9.3.tar.gz

# ./configure--prefix=$NGINX_HOME \

--with-http_ssl_module--with-http_spdy_module \

--with-http_stub_status_module\

--with-pcre

# make&& make install

#ln –s $NGINX_HOME  /usr/local/nginx


1.1.4.修改配置文件

         详情参见nginx.conf和sites-enabled/$YOUR_VHOST.conf, $NGINX_HOME/sites-enabled是自定义的目录,用来存放虚机配置。

1.1.5.检测

1)  在修改完nginx的配置文件后,应该先使用# $NGINX_HOME/sbin/nginx –t 验证配置文件是否没有报错

2)  如果配置文件修改无误的话,应使用# $NGINX_HOME/sbin/nginx –S reload命令热启动,重新加载新的配置文件即可,无需重启服务。

1.1.6.配置开机启动

         # vim /etc/rc.local

         加入:$NGINX_HOME/sbin/nginx

启动服务:

$NGINX_HOME/sbin/nginx


1.2.PHP安装

1.2.1.环境依赖

# yuminstall gcc make gd-devellibjpeg-turbo-devel libpng-devel libxml2-devel  bzip2-devellibcurl-devel–y

注意:gd-devel是zabbix运行环境非必需软件,但是其它复杂php程序运行的必需软件


1.2.2.下载源码包

(本文使用5.5.27版本)

         #wget http://cn2.php.net/distributions/php-5.5.27.tar.gz

1.2.3.解压与编译安装

# tar zxvf php-5.5.27.tar.gz

        $PHP_HOME=/data/php

# ./configure--prefix=$PHP_HOME\

--enable-fpm  \

--with-fpm-user=daemon\

--with-fpm-group=daemon\

--with-config-file-path=/usr/local/php/etc\

--with-mysql=mysqlnd\

--with-mysqli=mysqlnd  \

--with-pdo-mysql=mysqlnd\

--with-iconv\

--with-iconv-dir  \

--with-freetype-dir  \

--with-jpeg-dir  \

--with-png-dir  \

--with-gd  \

--with-zlib  \

--with-libxml-dir  \

--with-curl  \

--with-curlwrappers  \

--with-mhash  \

--with-xmlrpc  \

--with-mcrypt\

--with-openssl  \

--enable-xml\

--disable-rpath  \

--enable-safe-mode  \

--enable-bcmath\

--enable-shmop  \

--enable-sysvsem  \

--enable-inline-optimization  \

--enable-mbregex  \

--enable-mbstring\

--enable-gd-native-ttf  \

--enable-ftp  \

--enable-pcntl  \

--enable-sockets  \

--enable-zip\

--enable-soap  \

--disable-debug  \

--disable-ipv6\

--with-gettext\

--enable-calendar\

--enable-dom

# make && make install

#ln –s  $PHP_HOME/usr/local/php

注:

1) 特别需要注意libmcrypt包。由于CentOS没有版权所以通用的官方源里都没有这个包。推荐大家使用atomic的第三方源,或者使用源码包安装(没有编译安装过的不建议)。

2) 第三方源地址:wget http://www.atomicorp.com/installers/atomic(是shell脚本,应该将其放在yum.repos.d下)

# sh ./atomic(执行脚本获取最新源)

3) 其他缺少依赖包的报错请自行处理,直接通过yum安装相应的devel包即可。

4) 这里编译的PHP使用的是fpm的启动类型,而没有选择fastcgi的形式。二者的区别可以百度。

1.2.4.安装完成验证

# php –version

         如环境变量中没有,则执行下面的操作:

1)  # vim /etc/profile

2)  加入:

export PHP_HOME=/usr/local/php

export PATH=$PATH:$PHP_HOME/bin

3)  . /etc/profile

验证:

# php --version(显示版本信息正确时安装完成)


1.2.5.PHP启动环境配置

# cd $PHP_SRC

拷贝源码包中的配置文件到安装目录:

# cp -rf sapi/fpm/php-fpm.conf /usr/local/php/etc/

拷贝启动文件到启动目录:

# cp -rf sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

拷贝生产环境配置文件到安装目录:

# cp -rf php.ini-production /usr/local/php/etc/php.ini


1.2.6.加入到system V服务控制

# chkconfig --add php-fpm

修改启动目录下的启动文件的执行权限为755:

# chmod 755 /etc/init.d/php-fpm

配置开机启动:

# vim/etc/rc.local

加入:/etc/init.d/php-fpm  start


1.2.7.Php-fpm.conf优化

Php-fpm.conf:

error_log = /usr/local/php/var/log/php-fpm.log

log_level = notice

emergency_restart_threshold = 10

emergency_restart_interval = 1m

process_control_timeout = 5

daemonize = yes

listen.owner = daemon

listen.group = daemon

listen.mode = 0666

pm = dynamic

pm.max_children = 256

pm.min_spare_servers = 128

pm.max_spare_servers = 256

pm.max_requests = 1024(*)

request_terminate_timeout = 600s(*)

request_slowlog_timeout = 300s

rlimit_files = 65536

rlimit_core = 65536

注意:

在PHP与NGINX整合时,VHOST的fastcgi_pass不要使用本地回环地址,因为TCP协议的传输速度很慢,因此建议使用unixsocket协议做程序间信息传输。

如果在nginx与php结合时出现形如connect() to unix:/dev/shm/php.socket failed找不到socket文件的错误时,请按以下步骤修复:

1)修改nginx中vhost配置文件,将对127.0.0.1:9000的监听转换为使用socket协议监听:

如原为:fastcgi_pass    127.0.0.1:9000;

改为:fastcgi_pass    /dev/shm/php.socket;

2)手动创建/dev/shm/php.socket文件:

# touch/dev/shm/php.socket

3)修改socket文件权限(修改的用户必须与php-fpm.conf文件中的user和group一致):

# chown daemon:daemon/dev/shm/php.socket

# chmod 777 /dev/shm/php.socket

4)修改php-fpm.conf文件中监听对象:

原为:listen = 127.0.0.1:9000

改为:listen=/dev/shm/php.socket

5)重启服务:

# nginx –s reload

# /etc/init.d/php-fpmrestart


1.2.8.Php.ini优化

max_execution_time = 300                 
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone PRC

1.3.PHP与NGINX整合:

NGINX详情参见每个vhost的配置文件

PHP详情如前所述。


1.4.MYSQL安装:

二进制包或源码安装方式,本文不赘述。


2.zabbix server环境搭建

2.1.下载安装包

(本文采用zabbix 2.4.5)

# wget

http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz


2.2.解压与编译安装

$ZABBIX_HOME=/data/zabbix

# ./configure --prefix=$ZABBIX_HOME/ \

--enable-server \      //开启server端,做zabbixserver的机器编译时必须加入

--enable-agent \ //开启agent端,被监控的机器编译时必须加入,server端也应加入

--enable-proxy \ //开启proxy端,打算使用zabbixproxy功能的机器编译时必须加入

--with-mysql=/usr/local/mysql/bin/mysql_config \       //整合mysql。编译时报找不到mysql_config时,应当加入源码安装路径中的绝对路径

--with-net-snmp \     //整合邮件发送模块。编译时报找不到net-snmp-config时,应当加入绝对路径

--with-libcurl \    //整合curl模块

--with-libxml2              //整合libxml2模块

#make && make install

#ln –s $ZABBIX_HOME /usr/local/zabbix

2.3.安装辅助包fping

下载zabbix源,无需源码安装:

# yum install fping


2.4.创建ZABBIX所在用户与组

# groupadd zabbix

# useradd zabbix


2.5.初始化ZABBIX数据库

注:

1)只有server 和 proxy需要使用数据库。Proxy只需要导入一个schema.sql文件,而server在导入schema.sql外还需导入images.sql和data.sql.

2)创建数据库时,如果没有在配置文件中默认定义库字符集为utf8的话,那么需要手动指定,否则会出现中文乱码。

3)上述三个文件的路径为源码包中的database/mysql中。

4)三个文件的导入顺序,schema.sql必须最先导入。


mysql>create database zabbix default charset utf8;


# mysql –u$USER –p$PASSWD zabbix < schema.sql

# mysql –u$USER –p$PASSWD zabbix

# mysql –u$USER –p$PASSWD zabbix


2.6.创建ZABBIX的MYSQL用户

mysql>grant all privileges on zabbix.* to zabbix@localhostidentified by 'zabbix';

mysql > flush privileges;


2.7.优化ZABBIX_SERVER配置文件

注:文件路径在源码包下。

# cp $ZABBIX_SRC/config/zabbix_server.conf $ZABBIX_HOME/etc/

# mkdir -p $ZABBIX_HOME/alertscripts

# mkdir -p $ZABBIX_HOME/externalscripts

# mkdir -p $ZABBIX_HOME/log


# vim $ZABBIX_HOME/etc/zabbix_server.conf

ListenPort=10051

LogFile=$ZABBIX_HOME/log/zabbix_server.log

LogFileSize=1024

DebugLevel=3   

PidFile=$ZABBIX_HOME/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

DBSocket=/tmp/mysql.sock

DBPort=3306

StartPollers=10

StartPollersUnreachable=10

StartTrappers=10

StartPingers=5

ListenIP=0.0.0.0

HousekeepingFrequency=1

CacheSize=1024M

StartDBSyncers=10

HistoryCacheSize=1024M

TrendCacheSize=512M

ValueCacheSize=32M

Timeout=20

AlertScriptsPath=$ZABBIX_HOME/alertscripts

ExternalScripts=$ZABBIX_HOME/externalscripts

LogSlowQueries=3000

注:以上参数都已优化,且在实际生产环境测试检验。

注:PROXY的配置没有列在本文的讨论范围内。


2.8.配置ZABBIX SERVER服务

配置自启动:

# cp$ZABBIX_SRC/misc/init.d/fedora/core5/zabbix_* /etc/init.d/

注:CentOS和RedHat均使用fedora下的脚本。

# chmod+x /etc/init.d/zabbix_*

# chown-R zabbix:zabbix $ZABBIX_HOME/

# vim/etc/init.d/zabbix_server

修改ZABBIX_BIN="$ZABBIX_HOME/sbin/zabbix_server"


2.9.防火墙规则配置

如果开启防火墙,则需要增加针对zabbix_server的规则:

# iptables-A INPUT -p tcp -m tcp --dport 10050:10051 -j ACCEPT

# iptables-A INPUT -p udp -m udp --dport 10050:10051 -j ACCEPT

#service iptables save


2.10.启动ZABBIX_SERVER

# /etc/init.d/zabbix_serverstart

若无报错则配置ZABBIX SERVER服务成功。


配置开机自启动[建议]:

# vim/etc/rc.local

/etc/init.d/zabbix_serverstart

# chkconfig--addzabbix_server

#chkconfig --level 3 5 zabbix_server on


3.配置ZABBIX WEB

1.    前面已经配置并启动了nginx服务器。

2.    Zabbix web工程全部拷贝到之前配置的vhost指定的路径中。

如:

vhost指定的工程路径为:root  $ZABBIX_HOME/frontends;

则应执行:

# cp –r $ZABBIX_SRC/frontends/php/* $ZABBIX_HOME/frontends

      注:

1)        在上述安装配置结束后,请务必保证zabbix的安装路径的属主为zabbix:zabbix

nginx的安装路径的属主为daemon:daemon

2)        修改完nginx和zabbix的配置后,记得重启服务(nginx为热加载配置文件,无需重启服务)。


3.    登录之前配置的虚拟主机域名: test.zabbix.com

出现首次安装界面则安装成功。



 



如果出现配置错误会如下图所示:

这里的错误是php.ini中的max_input_time参数设置过小,推荐值为300.

修改后重启PHP-FPM:# /etc/init.d/php-fpmrestart

修复后报错消失,如无其他报错则执行下一步。

 


Next后进入信息检查页

无误的话点击next。

如果出现$ZABBIX_HOME/frontends/conf/zabbix.conf.php"created: Failed的报错的话,则需要给你存放zabbix前端代码的文件夹更高的权限。这里我给了777.

# chmod –R 777 $ZABBIX_HOME/frontends/

 



安装成功。进入下图的登录界面。

默认的用户密码为admin/zabbix


 

欢迎使用~

4.安装ZABBIX AGENT端

1.      下载与SERVER端相同。

2.      解压与编译安装:

如果是SERVER服务器的话,那么我们在上面的安装过程中已经介绍了如何编译。可以跳过此步。

独立的需要被监控的机器上需要如下过程安装ZABBIX AGENT端:

# ./configure --prefix=$ZABBIX_HOME --enable-agent

# make && make install

3.    优化ZABBIX_AGENTD的配置文件:

# vim $ZABBIX_HOME/etc/zabbix_agentd.conf

LogFile=$ZABBIX_HOME/log/zabbix_agentd.log

LogFileSize=1024

DebugLevel=3

PidFile=$ZABBIX_HOME/zabbix_agentd.pid

Server=127.0.0.1    

ServerActive=127.0.0.1

注:Server和ServerActive指定的都是SERVER端的地址。不同的是Serve是被动而ServerActive是主动。即Server=127.0.0.1允许127.0.0.1这个IP来取数据,而ServerActive=127.0.0.1则表示客户端主动提交数据给这个IP。如果SERVER端和AGENT端不在同一台机器(如监控机),则需要将该机器上zabbix_agentd.conf文件的这两个值设置为SERVER的IP地址。

ListenPort=10050

UnsafeUserParameters=1

EnableRemoteCommands=1

Timeout=10

Hostname=$YOUR_HOST


4.    拷贝启动脚本到init.d:

# cp $ZABBIX_SRC/misc/init.d/fedora/core5/zabbix_agentd \

/etc/init.d/zabbix_agentd


5.    启动ZABBIX_AGENTD:

# /etc/init.d/zabbix_agentd start

注:提示找不到~~/sbin/zabbix_agentd文件时,修改/etc/init.d/zabbix_agentd脚本中的$ZABBIX_BIN变量为$ZABBIX_HOME/sbin/zabbix_agentd


6.    加入自启动:

# vim /etc/init.d/rc.local

/etc/init.d/zabbix_agentd start


7.    检查web页面中zabbix_agent是否启动成功:


如果所监控的机器的agent端图标一直没有点亮,则需要查看它的日志。

日志路径:$ZABBIX_HOME/log/zabbix_agentd.log

错误类似:


说明zabbix里面监控的主机名和在配置文件里面的保存的主机名不一样或默认没有开启监控。

开启监控的方法如下:

在configuration->Hosts面板中Status,启用monitored, 才能监控server。


 

正确监控后,被监控主机的 avalibility 会变成绿色。

开启监控也可以直接在主机面板下方开启,如下:


安装教程到此为止。后续会继续SOP教程。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30109892/viewspace-1814209/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-01-19

  • 博文量
    126
  • 访问量
    992115