準備工做php
一、lnmp或lamp環境,本機環境:CentOS 7.2 64位,nginx1.10.2 php5.6.26 mysql5.7.15html
二、軟件Zabbixmysql
wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.1/zabbix-3.2.1.tar.gznginx
安裝部署:web
1、建立、導入zabbix數據庫sql
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 #解壓app
cd zabbix-3.2.1/database/mysql/ #進入mysql數據庫建立腳本目錄frontend
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; #退出
2、安裝zabbix
一、添加用戶
groupadd zabbix #建立用戶組zabbix
useradd zabbix -g zabbix -s /bin/false #建立用戶zabbix,而且把用戶zabbix加入到用戶組zabbix中
二、安裝依賴包
#CentOS使用yum命令安裝
yum install net-snmp-devel curl curl-devel mysql-devel
備註:以上軟件包若是在安裝Web環境LAMP或者LNMP時已經安裝過,此步驟可忽略
三、安裝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/ #添加系統軟鏈接
四、添加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 #保存退出
五、修改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 #保存退出
六、添加開機啓動腳本
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 #添加開機啓動
七、修改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 #保存退出
3、配置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)
4、修改php配置文件參數
一、vi /etc/php.ini #編輯修改
post_max_size =16M
max_execution_time =300
max_input_time =300
:x #保存退出
二、vi /usr/local/php/etc/php-fpm.conf #編輯修改
request_terminate_timeout = 300
:x #保存退出
service php-fpm reload #重啓php-fpm
5、安裝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 #保存退出
二、替換監控圖像上系統默認的字體 #默認字體不支持中文,若是不替換,圖像上會顯示亂碼
在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便可。