CentOS7搭建Zabbix4实现企业级监控系统
第一步 部署环境
基于LNMP之上搭建(LNMP一键安装包)
wget http://soft.×××er.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && LNMP_Auto="y" DBSelect="3" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ./install.sh lnmp
https://lnmp.org/auto.html
第二步 源码安装Zabbix
下载zabbix源码到/root/目录,
cd /root/ wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.2.4/zabbix-4.2.4.tar.gz
安装依赖程序
yum -y install net-snmp-devel libevent-devel
解压zabbix
tar -xf zabbix-4.2.4.tar.gz
服务端建立zabbix用户
groupadd zabbix useradd -g zabbix -M -s /sbin/nologin zabbix
服务端编译参数
cd /root/zabbix-4.2.4 ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent \ --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp \ --with-libcurl --with-libxml2
make && make install
第三步 创建zabbix的数据库
创建zabbixdb库
mysql -uroot -p (登陆数据库)
mysql>create database zabbixdb character set utf8; mysql>grant all privileges on zabbixdb.* to zabbix@localhost identified by 'zpasswd'; mysql>flush privileges; mysql>quit;
导入zabbix数据库
cd /root/zabbix-4.2.4 mysql -uzabbix -pzpasswd zabbixdb <./database/mysql/schema.sql mysql -uzabbix -pzpasswd zabbixdb <./database/mysql/images.sql mysql -uzabbix -pzpasswd zabbixdb <./database/mysql/data.sql history -c #清除历史命令
第四步 修改配置Zabbix文件
Zabbix 配置文件,把配置文件软链到/etc/zabbix目录下,方便维护。
ln -s /usr/local/zabbix/etc/ /etc/zabbix
修改配置文件中连接数据的用户名/密码
sed -i 's/^DBName=.*$/DBName=zabbixdb/g' /etc/zabbix/zabbix_server.conf sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /etc/zabbix/zabbix_server.conf sed -i 's/^.*DBPassword=.*$/DBPassword=zpasswd/g' /etc/zabbix/zabbix_server.conf
拷贝启动脚本
cp /root/zabbix-4.2.4/misc/init.d/fedora/core/zabbix_* /etc/init.d/ chmod +x /etc/init.d/zabbix_*
修改zabbix基本目录(根)
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
修改zabbix日志文件
sed -i 's/LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix\/zabbix_server.log/g' \ /etc/zabbix/zabbix_server.conf sed -i 's/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/var\/log\/zabbix\/zabbix_agentd.log/g' \ /etc/zabbix/zabbix_agentd.conf
创建zabbix日志文件
mkdir /var/log/zabbix touch /var/log/zabbix/zabbix_{server,agentd}.log chown -R zabbix:zabbix /var/log/zabbix/
在配置文件末尾行加上自定义脚本存放目录
mkdir /etc/zabbix/script sed -i '$a\AlertScriptsPath=\/etc\/zabbix\/script' /etc/zabbix/zabbix_server.conf
查看配置文件修改结果
grep -Ev "^$|^#" /etc/zabbix/zabbix_server.conf
### 提示 ###
LogFile=/var/log/zabbix/zabbix_server.log //日志文件目录 PidFile=/tmp/zabbix_server.pid //PID文件目录(默认) DBHost=localhost //数据库 DBName=zabbixdb //数据库名 DBUser=zabbix // 数据库用账户 DBPassword=zpasswd // 数据库密码 AlertScriptsPath=/etc/zabbix/script //自定义脚本存放目录
################
启动Zabbix
服务端添加启动项
chkconfig --add zabbix_server chkconfig zabbix_server on service zabbix_server start
服务端自身也需要监控,所以需要启动自己的agentd
chkconfig --add zabbix_agentd chkconfig zabbix_agentd on service zabbix_agentd start
第五步 添加Nginx配置文件
cat /usr/local/nginx/conf/vhost/zabbix.conf
server { listen 8099; server_name 92.168.20.10; index index.html index.htm index.php; root /data/www/zabbix; location ~ .*\.(php|php5)?$ { fastcgi_pass unix:/tmp/php-cgi.sock; #fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(html|htm|js|css)?$ { expires 8h; } location /5998153NginxStatus { stub_status on; access_log off; } error_log /home/wwwlogs/error.log; access_log /dev/null; #access_log /data/wwwlogs/access.log; }
拷贝Zabbix Web到/data/www/zabbix
cp -r /root/zabbix-4.2.4/frontends/php /data/www/zabbix
重启nginx
然后通过浏览器 进行WEB管理页面进行安装,
http://92.168.20.10:8099
Zabbix 管理页面是PHP语言,需要PHP服务的支持,安装过程中可能会出现一些错误。需要修改一些php参数。
第六步 PHP参数修改
注意:需要修改几个PHP的参数值
sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /usr/local/php/etc/php.ini sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /usr/local/php/etc/php.ini sed -i 's/max_input_time = 60/max_input_time = 300/g' /usr/local/php/etc/php.ini #sed -i 's/;date.timezone = /date.timezone = Asia\/Shanghai/g' /usr/local/php/etc/php.ini #sed -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g' /usr/local/php/etc/php.ini
修改之后
service php-fpm restart
如果有 PHP ldap Warning
#出现告警是因为ldap模块不存在,须要编译生成此模块并重新加载
[root@DE5-2673v3-1287 ~]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-*/ opcache.a opcache.so
#查看PHP版本
[root@DE5-2673v3-1287 ~]# php -v PHP 5.6.40 (cli) (built: Jul 15 2019 13:04:32) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies
#到源码包的解压目录下,没有保存源码文件的话 , 下载相同版本的php进行解压 , 进行源码编译ldap模块(其他模块如果缺失编译方法一样)
[root@DE5-2673v3-1287 ~]# cd /root/lnmp1.6-full/src/ #进入模块所在的源码位置 [root@DE5-2673v3-1287 src]# tar -xf php-5.6.40.tar.bz2 [root@DE5-2673v3-1287 src]# cd /root/lnmp1.6-full/src/php-5.6.40/ext/ldap [root@DE5-2673v3-1287 ldap]# ls config.m4 config.w32 CREDITS ldap.c ldap.dsp ldap.mak LDAP_Win32_HOWTO.txt php_ldap.h tests
#编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件
[root@DE5-2673v3-1287 ldap]# /usr/local/php/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226
[root@DE5-2673v3-1287 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap && make && make install
执行过程中可能会有如下报错
configure: error: Cannot find ldap.h
解决办法 :
yum -y install openldap-devel cp -frp /usr/lib64/libldap* /usr/lib/
[root@DE5-2673v3-1287 ldap]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ ldap.so opcache.a opcache.so [root@DE5-2673v3-1287 ~]# vim /usr/local/php/etc/php.ini #编辑php.ini,5版本的php添加extension=ldap.so
保存退出 , 重启PHP服务
http://92.168.20.10:8099
页面配置
Database type MySQL
Database server localhost
Database port 3306
Database name zabbixdb
Database user zabbix
Database password zpasswd
Zabbix serverlocalhost
Zabbix server port10051
Zabbix server name