centos7編譯安裝Zabbix-4.2.4及設置郵件告警教程(超詳細每步都有截圖)


Zabbix-4.2.4安裝及配置

此安裝基於centos7LNMP環境下,如未安裝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!

 

 如有轉載請標明出處 謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM