Zabbix-4.2.4安裝及配置php
此安裝基於centos7的LNMP環境下,如未安裝LNMP還可參考本人其餘隨筆html
第一步:上傳下載python
一、前往https://www.zabbix.com/download_sources下載4.2.4mysql
二、下載完成後上傳至服務器nginx
yum -y install lrzszweb
rzsql
選擇壓縮包,點擊肯定shell
三、解壓:數據庫
tar zxvf zabbix-4.2.4.tar.gz -C /root/vim
四、進入、建立用戶、用戶組
cd zabbix-4.2.4/
groupadd zabbix
useradd -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
第二步:數據庫建立zabbix庫
一、進入數據庫:
mysql -uroot -p
use mysql;
二、建立數據庫:
create database zabbix character set utf8 collate utf8_bin;
三、建立用戶:
create user zabbix@localhost identified by 'zabbix1';
四、導入數據:
source /root/zabbix-4.2.4/database/mysql/schema.sql
source /root/zabbix-4.2.4/database/mysql/images.sql
source /root/zabbix-4.2.4/database/mysql/data.sql
五、受權用戶:
grant all privileges on zabbix.* to zabbix@localhost;
六、刷新權限:
flush privileges;
七、查看是否建立成功:
show databases;
八、quit 退出
第三步:開始安裝
一、檢查環境:
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-libcurl --with-libxml2
報錯1:找不到libevent
安裝libevent libevent-devel
yum -y install libevent libevent-devel
安裝完畢後從新檢查環境,檢查完畢!
二、編譯安裝:
make && make install
第三步:zabbix_service配置
一、將zabbix服務放至nginx下的html目錄下,並改名爲zabbix
cp -R /root/zabbix-4.2.4/frontends/php /usr/local/nginx/html/zabbix
二、複製啓動腳本
cd /root/zabbix-4.2.4/misc/init.d/fedora/core
cp -a zabbix_server /etc/init.d/
cp -a zabbix_agent /etc/init.d/
三、修改zabbix_server啓動腳本
vim /etc/init.d/zabbix_server 修改路徑爲如圖所示
vim /etc/init.d/zabbix_agent
作與zabbix_server相同的修改
四、對zabbix_server.conf與zabbix_agent.conf作修改
vim /usr/local/zabbix/etc/zabbix_server.conf
將數據庫的主機地址、用戶名、密碼等填寫正確
DBSocket能夠註釋掉無論,如啓服務時報sock的錯,可進行修改成在即mysql的sock文件所在路徑,以後wq保存退出。
再來編輯zabbix_agent.conf
vim /usr/local/zabbix/etc/zabbix_agentd.conf
修改server、ServerActive和hostname
其中hostname要與本機主機名相同,主機名查看方法:shell中輸入hostname
五、啓動服務
service zabbix_server start
啓動服務報錯:沒有找到這個libmysqlclient.so.21這個函數庫
查找一下這個庫在哪裏:
locate libmysqlclient.so.21
將這個路徑添加到 /etc/ld.so.conf文件中:
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
更新函數庫:
ldconfig
6、從新進行啓動服務
service zabbix_server start
service zabbix_agent start
netstat -tunlp (查看是否啓動成功)
添加開機自啓
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig --level 2345 zabbix_server on
chkconfig --level 2345 zabbix_agentd on
chkconfig --list
ok,設置完畢後,打開瀏覽器,進入zabbix的安裝界面
瀏覽器輸入:
[本機ip]/zabbix 而後回車
進入後進行web頁安裝:
第一步:Next
第二步:
配置錯誤的參數:
根據它的提示修改即可,後邊也給出了推薦值,將配置文件中的選項改爲其推薦值便可
vim /usr/local/php/etc/php.ini
一、
二、
三、
修改後發現仍是不起做用,覺得本身改錯了,反覆覈對沒有問題,終於找到了答案。。
執行php -i | grep 'php.ini'
查看你所執行的php.ini文件是哪一個路徑下的php.ini
發現果真修改錯了,將php.ini文件移動到/usr.local.php/lib/下:
cd /usr/local/php/etc/
mv php.ini ../lib/
重啓nginx和php:
service php-fpm restart
service nginx restart
從新打開網頁,所有成綠色,開始Next
第三步:輸入以前建立的mysql帳號密碼,Next,發現報錯(一共報錯兩個,第二個未截圖)
第一個:Error connecting to database: No nush file or directory
第二個:The server requested authentication method unknown to the client
第三步的這個報錯困擾了我一天,百度一天都沒有結果,在我都快要放棄從新安裝的時候,但願的曙光來臨了!
終於查到了一個資料,原來,是因爲新版本mysql帳號密碼解鎖的機制不一致致使的,新版本中mysql解鎖機制爲caching_sha2_password,而舊版本中是mysql_native_password,影響了服務器與和客戶端的兼容性問題,因此咱們先將驗證方式更改成之前的mysql_native_password便可。
解決方法:
一、刪除以前建立的用戶:
delete from user where user='zabbix' and host='localhost';
二、進入mysql的配置文件
vim /etc/my.cnf,加入下行:
default_authentication_plugin=mysql_native_password
三、重啓mysql服務,再從新進入mysql建立zabbix用戶
mysql -uroot -p 輸入密碼
mysql中操做:
use mysql;
create user zabbix@localhost identified by 'zabbix1'; 建立用戶
grant all privileges on zabbix.* to zabbix@localhost; 受權
四、設置zabbix用戶和root用戶能夠遠程鏈接
update user set host='%' where user='root';
update user set host='%' where user='zabbix';
flush privileges; 刷新權限
select host, user, authentication_string, plugin from user; 查看是否設置成功
這樣就表明成功了,執行quit 退出
五、mysql從新建立完以後還要注意修改一下zabbix_server.conf
vim /usr/local/zabbix/etc/zabbix_server.conf
將這幾個選項相對的填寫正確,其中DBSocket的路徑須要修改如下填寫本身的,其實DBSocket並沒有大礙,前幾個都設置好後,若是可以正常Next,就不用設置DBSocket。
再將默認路徑下的zabbix中conf目錄及如下的文件權限設定爲777
chmod -R 777 conf
六、最後再重啓如下mysql和php-fpm。
再從新進入web頁測試,將此步驟中中的database host更改成127.0.0.1
點擊Next step,ok成功
第四步:額。。忘記截圖了,不過不重要,只是將本身的服務名字寫上去就好,我填的zabbix_server
第五步:完成安裝
點擊Finish
默認帳戶Admin
密碼:zabbix 進行登陸
第六步:進行漢化
一、進入html/zabbix/include/locales.inc.php文件中,後邊爲ture就爲支持
二、點擊右上角小人,選擇中文,點擊Update。完後漢化
三、更改後,若是發現有的地方是亂碼,或者是沒更改過來,可進行如下操做:
隨便選擇一個本身喜歡的字體
vim /usr/local/nginx/html/zabbix/includedefines.inc.php
查看此保存字體的目錄在哪
而後在windows下選擇一個本身喜歡的字體傳到此目錄下
將文件的ZBX_GRAPH_FONT_NAME更改成你上傳的字體名字,保存,重啓zabbix便可
第七步:添加監控項、郵件告警等
http://www.javashuo.com/article/p-yzianseo-go.html
一、添加主機
二、配置郵件告警,這裏以VSFTP服務爲例
yum install -y vsftpd vim /etc/vsftpd/vsftpd.conf listen=YES # 修改該條 listen_ipv6=YES # 刪除該條 systemctl start vsftpd
編寫郵件告警腳本:
vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py
將如下內容複製:(我用的qq郵箱,如用其餘郵箱作發件人,請根據註釋修改)
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import smtplib
from email.mime.text import MIMEText
import sys
# configure your own parameters here
#下面郵件地址的smtp地址 mail_host = 'smtp.163.com'
#用來發郵件的郵箱,在發件人擡頭顯示(否則你的郵件會被當成是垃圾郵件)
mail_user = '****@qq.com'
# 客戶端受權碼
mail_auth = '******'
# 發送方顯示的名稱
send_name = mail_user
# 接收方顯示的名稱
recv_name = mail_user
def excute(to, title, content):
msg = MIMEText(content, 'plain', 'utf-8')
msg['From'] = send_name msg['To'] = recv_name
msg['Subject'] = title server = smtplib.SMTP(mail_host, 25)
server.login(mail_user,mail_auth)
server.sendmail(mail_user,to,msg.as_string())
server.quit()
if __name__ == '__main__':
excute(sys.argv[1], sys.argv[2], sys.argv[3])
# $1 $2 $3
而後賦予執行權限chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py
三、建立報警媒介及動做
添加完成:
選擇
而後點擊添加按鈕,其餘兩個模塊也修改成與以上相同的
添加完成
四、將vsftp服務停掉,測試是否能夠收到郵件了
此項說明郵件已送達,下一步打開郵箱看一下
ok,收到郵件,nice,再恢復服務看能不能收到郵件
也收到了 ok!