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加密。