zabbix监控环境搭建指南---网上最最详细搭建过程
来源:互联网 发布:杂志排版软件 编辑:程序博客网 时间:2024/05/16 11:14
一、ZABBIX 安装
原创:Perry.Zhang
修改: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 <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+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教程。
- zabbix监控环境搭建指南---网上最最详细搭建过程
- 搭建Zabbix监控环境
- Zabbix-3.0环境搭建指南
- linux下zabbix监控环境搭建
- 搭建ZABBIX监控
- 搭建zabbix监控windows
- 在Linux环境中搭建zabbix监控环境
- 运维监控——zabbix环境的搭建配置
- zabbix通过mpm监控mysql的环境搭建
- zabbix监控mysql数据库(推荐这种方式:zabbix通过mpm监控mysql的环境搭建)
- Zabbix监控系统的搭建
- Android开发环境搭建详细指南
- 嵌入式QT环境搭建详细过程
- zabbix server环境的搭建
- 简单搭建Zabbix的环境
- Zabbix分布式监控系统的初步搭建
- Centos 7下搭建Zabbix监控软件
- Zabbix搭建笔记[4]--web监控配置
- SignalR实现服务器与客户端的实时通信
- 封装用于图片的放大与缩小的类BaseImgView——iOS学习连载34
- 图像旋转(功能)
- 吉祥数
- 北京西城区的日子
- zabbix监控环境搭建指南---网上最最详细搭建过程
- HDOJ1231 最大连续子序列(dp)
- MVC4 入门
- 使用Servlet获取用户日志
- Course Schedule
- 第10章 对象和类
- 反汇编一个简单的C程序
- 【Trie树】Poj2513题解
- 使用Dockerfile创建带Apache服务的Centos Docker镜像