liuyuehua 发表于 2015-11-23 12:48:55

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

一、ZABBIX 安装
  原创:Perry.Zhang   
  修改:Jane.Hoo
  本文未经许可严禁转载。
  注:涉及到的可自定义的部分均使用变量表示。如zabbix安装路径为$ZABBIX_HOME。
1.LNMP环境搭建
1.1.Nginx安装
1.1.1.环境依赖
  1)   支持rewrite功能必须安装pcre 。perl兼容的正则表达式库。
  # yum install pcre*
  # 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*
  # 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-develbzip2-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-fpmstart
  
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 <images.sql
  # mysql –u$USER –p$PASSWD zabbix <data.sql
  
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&#43;x /etc/init.d/zabbix_*
  # chown-R zabbix:zabbix $ZABBIX_HOME/
  # vim/etc/init.d/zabbix_server
  修改ZABBIX_BIN=&quot;$ZABBIX_HOME/sbin/zabbix_server&quot;
  
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&quot;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教程。
页: [1]
查看完整版本: zabbix监控环境搭建指南---网上最最详细搭建过程