CentOS7搭建Zabbix4實現企業級監控系統php
第一步 部署環境css
基於LNMP之上搭建(LNMP一鍵安裝包)html
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.htmlmysql
第二步 源碼安裝Zabbixnginx
下載zabbix源碼到/root/目錄,sql
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
解壓zabbixvim
tar -xf zabbix-4.2.4.tar.gz
服務端創建zabbix用戶瀏覽器
groupadd zabbix useradd -g zabbix -M -s /sbin/nologin zabbix
服務端編譯參數bash
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
能夠經過數據庫中users表來查看,密碼是通過MD5加密。