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
第二步 源码安装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
默认账号Admin
默认密码为zabbix
可以通过数据库中users表来查看,密码是经过MD5加密。