准備工作
1、lnmp或lamp環境,本機環境:CentOS 7.2 64位,nginx1.10.2 php5.6.26 mysql5.7.15
2、軟件Zabbix
wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.1/zabbix-3.2.1.tar.gz
安裝部署:
一、創建、導入zabbix數據庫
cd /usr/loca/src #進入軟件包下載目錄
wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.1/zabbix-3.2.1.tar.gz
tar zxvf zabbix-3.2.1.tar.gz #解壓
cd zabbix-3.2.1/database/mysql/ #進入mysql數據庫創建腳本目錄
ll #列出文件,可以看到有schema.sql、images.sql、data.sql這三個文件
mysql -h localhost -uroot -p #輸入密碼,進入MySQL控制台
create database zabbix character set utf8; #創建數據庫zabbix,並且數據庫編碼使用utf8
create user zabbix identified by '123456'; #新建賬戶zabbix,密碼123456
grant all on zabbix.* to 'zabbix'@'localhost' identified by '123456' with grant option; #新建賬戶zabbix,密碼123456
flush privileges; #刷新系統授權表
use zabbix; #進入數據庫
source /usr/local/src/zabbix-3.2.1/database/mysql/schema.sql #導入腳本文件到zabbix數據庫
source /usr/local/src/zabbix-3.2.1/database/mysql/images.sql #導入腳本文件到zabbix數據庫
source /usr/local/src/zabbix-3.2.1/database/mysql/data.sql #導入腳本文件到zabbix數據庫
注意:請按照以上順序進行導入,否則會出錯。
exit; #退出
二、安裝zabbix
1、添加用戶
groupadd zabbix #創建用戶組zabbix
useradd zabbix -g zabbix -s /bin/false #創建用戶zabbix,並且把用戶zabbix加入到用戶組zabbix中
2、安裝依賴包
#CentOS使用yum命令安裝
yum install net-snmp-devel curl curl-devel mysql-devel
備注:以上軟件包如果在安裝Web環境LAMP或者LNMP時已經安裝過,此步驟可忽略
3、安裝zabbix
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2 #添加軟連接
/sbin/ldconfig #使配置立即生效
cd /usr/local/src/zabbix-3.2.1 #進入安裝目錄
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql #配置
報錯:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解決:yum install net-snmp-devel
說明:若使用--with-mysql=/usr/bin/mysql_config
find / -name mysql_config 查找位置,如果沒有mysql_config,需要安裝yum install mysql-devel
make #編譯
make install #安裝
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/ #添加系統軟連接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/ #添加系統軟連接
4、添加zabbix服務對應的端口
vi /etc/services #編輯,在最后添加以下代碼
#zabbix
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
:x #保存退出
5、修改zabbix配置文件
cd /usr/local/zabbix/etc
vi /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log #日志保存位置
PidFile=/tmp/zabbix_server.pid #進程PID
DBName=zabbix #數據庫名稱
DBUser=zabbix #數據庫用戶名
DBPassword=123456 #數據庫密碼
ListenIP=127.0.0.1 #數據庫ip地址(寫localhost登陸后會有錯誤信息)
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix運行腳本存放目錄
:x #保存退出
vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1 #允許執行遠程命令
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1 #啟用自定義key
:x #保存退出
6、添加開機啟動腳本
cp /usr/local/src/zabbix-3.2.1/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服務端
cp /usr/local/src/zabbix-3.2.1/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客戶端
chmod +x /etc/rc.d/init.d/zabbix_server #添加腳本執行權限
chmod +x /etc/rc.d/init.d/zabbix_agentd #添加腳本執行權限
chkconfig zabbix_server on #添加開機啟動
chkconfig zabbix_agentd on #添加開機啟動
7、修改zabbix開機啟動腳本中的zabbix安裝目錄
vi /etc/rc.d/init.d/zabbix_server #編輯服務端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
:x #保存退出
vi /etc/rc.d/init.d/zabbix_agentd #編輯客戶端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安裝目錄
:x #保存退出
三、配置web站點
cd /usr/local/src/zabbix-3.2.1
cp -r /usr/local/src/zabbix-3.2.1/frontends/php /usr/local/nginx/html/zabbix
chown -R www:www /usr/local/nginx/html/zabbix
chmod -R 755 /usr/local/nginx/html/zabbix
備注:/usr/local/nginx/html為Nginx默認站點目錄 www為Nginx運行賬戶
service zabbix_server start #啟動zabbix服務端 (systemctl start zabbix_server.service)
啟動警告:
Starting zabbix_server (via systemctl): Warning: zabbix_server.service changed on disk. Run 'systemctl daemon-reload' to reload units. [ 確定 ]
解決:systemctl daemon-reload
service zabbix_agentd start #啟動zabbix客戶端 (systemctl start zabbix_agentd.service)
四、修改php配置文件參數
1、vi /etc/php.ini #編輯修改
post_max_size =16M
max_execution_time =300
max_input_time =300
:x #保存退出
2、vi /usr/local/php/etc/php-fpm.conf #編輯修改
request_terminate_timeout = 300
:x #保存退出
service php-fpm reload #重啟php-fpm
五、安裝web
在瀏覽器中打開:ip/zabbix
錯誤1:
頁面報錯403
原因分析:查看nginx錯誤日志,是因為modsecurity阻攔next step了,詳細查看modsecurity日志(/var/log/modsec_audit.log)確實是這樣
解決:修改站點的配置文件,暫停modsecurity,重啟nginx
錯誤2:
PHP option "always_populate_raw_post_data" must be set to "-1"
解決:vi /usr/local/nginx/html/zabbix/include/classes/setup/CFrontendSetup.php
添加 : $current = -1;
結果如下:
public function checkPhpAlwaysPopulateRawPostData() {
$current = ini_get('always_populate_raw_post_data');
$current = -1;
return [
'name' => _('PHP always_populate_raw_post_data'),
'current' => ($current != -1) ? _('on') : _('off'),
'required' => _('off'),
'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
'error' => _('PHP always_populate_raw_post_data must be set to -1.')
];
}
檢查系統環境設置,必須全部都為ok,才能繼續
數據庫:
mysql,localhost,3306,zabbix,zabbix,123456
Zabbix server detail 頁面保持默認
finish后登陸
賬號:admin
密碼:zabbix
有報錯:
zabbix監控報錯zabbix server is not running: the information displayed may not be current
解決方法:
查看zabbix_server日志:/tmp/zabbix_server.log有這樣一句話:
listener failed: incorrect IPv4 address [localhost]
修改配置文件:vi /usr/local/zabbix/etc/zabbix_server.conf
ListenIP=127.0.0.1
保存,重啟即可
修改web界面為中文
vi /usr/local/nginx/html/zabbix/include/locales.inc.php #編輯修改
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false), 修改為
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
:x #保存退出
2、替換監控圖像上系統默認的字體 #默認字體不支持中文,如果不替換,圖像上會顯示亂碼
在Windows系統中的C:\Windows\Fonts目錄中復制出一個中文字體文件,例如msyh.ttf
把字體文件msyh.ttf上傳到zabbix站點根目錄下fonts文件夾中
例如:/usr/local/nginx/html/zabbix/fonts
備份默認的字體文件:DejaVusSans.ttf-bak
修改msyh.ttf名稱為DejaVusSans.ttf
頁面右上角有個人頭一樣的圖標,點擊設置
最后,修改配置信息,把默認語言修改為中文,update即可
至此,Zabbix3.2.1安裝圖解教程完成。
再切換中文時的頁面下方報錯:
scandir() has been disabled for security reasons [profile.php:199 → CView->render() → include() → getSounds() → scandir() in include/sounds.inc.php:24]
原因分析:php.ini中禁用scandir()這個函數了
解決:修改/usr/local/php/etc/php.ini ,去掉scandir保存並重起php-fpm即可。