Zabbix-4.2.4安裝及配置
此安裝基於centos7的LNMP環境下,如未安裝LNMP還可參考本人其他隨筆
第一步:上傳下載
1、前往https://www.zabbix.com/download_sources下載4.2.4
2、下載完成后上傳至服務器
yum -y install lrzsz
rz
選擇壓縮包,點擊確定
3、解壓:
tar zxvf zabbix-4.2.4.tar.gz -C /root/
4、進入、創建用戶、用戶組
cd zabbix-4.2.4/
groupadd zabbix
useradd -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
第二步:數據庫創建zabbix庫
1、進入數據庫:
mysql -uroot -p
use mysql;
2、創建數據庫:
create database zabbix character set utf8 collate utf8_bin;
3、創建用戶:
create user zabbix@localhost identified by 'zabbix1';
4、導入數據:
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
5、授權用戶:
grant all privileges on zabbix.* to zabbix@localhost;
6、刷新權限:
flush privileges;
7、查看是否創建成功:
show databases;
8、quit 退出
第三步:開始安裝
1、檢查環境:
./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
安裝完畢后重新檢查環境,檢查完畢!
2、編譯安裝:
make && make install
第三步:zabbix_service配置
1、將zabbix服務放至nginx下的html目錄下,並更名為zabbix
cp -R /root/zabbix-4.2.4/frontends/php /usr/local/nginx/html/zabbix
2、復制啟動腳本
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/
3、修改zabbix_server啟動腳本
vim /etc/init.d/zabbix_server 修改路徑為如圖所示
vim /etc/init.d/zabbix_agent
做與zabbix_server相同的修改
4、對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
5、啟動服務
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
1、
2、
3、
修改后發現還是不起作用,以為自己改錯了,反復核對沒有問題,終於找到了答案。。
執行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即可。
解決方法:
1、刪除之前創建的用戶:
delete from user where user='zabbix' and host='localhost';
2、進入mysql的配置文件
vim /etc/my.cnf,加入下行:
default_authentication_plugin=mysql_native_password
3、重啟mysql服務,再重新進入mysql創建zabbix用戶
mysql -uroot -p 輸入密碼
mysql中操作:
use mysql;
create user zabbix@localhost identified by 'zabbix1'; 創建用戶
grant all privileges on zabbix.* to zabbix@localhost; 授權
4、設置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 退出
5、mysql重新創建完之后還要注意修改一下zabbix_server.conf
vim /usr/local/zabbix/etc/zabbix_server.conf
將這幾個選項相對的填寫正確,其中DBSocket的路徑需要修改以下填寫自己的,其實DBSocket並無大礙,前幾個都設置好后,如果能夠正常Next,就不用設置DBSocket。
再將默認路徑下的zabbix中conf目錄及以下的文件權限設定為777
chmod -R 777 conf
6、最后再重啟以下mysql和php-fpm。
再重新進入web頁測試,將此步驟中中的database host更改為127.0.0.1
點擊Next step,ok成功
第四步:額。。忘記截圖了,不過不重要,只是將自己的服務名字寫上去就好,我填的zabbix_server
第五步:完成安裝
點擊Finish
默認賬戶Admin
密碼:zabbix 進行登錄
第六步:進行漢化
1、進入html/zabbix/include/locales.inc.php文件中,后邊為ture就為支持
2、點擊右上角小人,選擇中文,點擊Update。完后漢化
3、更改后,如果發現有的地方是亂碼,或者是沒更改過來,可進行以下操作:
隨便選擇一個自己喜歡的字體
vim /usr/local/nginx/html/zabbix/includedefines.inc.php
查看此保存字體的目錄在哪
然后在windows下選擇一個自己喜歡的字體傳到此目錄下
將文件的ZBX_GRAPH_FONT_NAME更改為你上傳的字體名字,保存,重啟zabbix即可
第七步:添加監控項、郵件告警等
1、添加主機
2、配置郵件告警,這里以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
3、創建報警媒介及動作
添加完成:
選擇
然后點擊添加按鈕,其他兩個模塊也修改為與以上相同的
添加完成
4、將vsftp服務停掉,測試是否可以收到郵件了
此項說明郵件已送達,下一步打開郵箱看一下
ok,收到郵件,nice,再恢復服務看能不能收到郵件
也收到了 ok!
如有轉載請標明出處 謝謝