亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Zabbix的編譯安裝并發(fā)送通知郵件

1.寫在前面

本文主要介紹的是zabbix的編譯安裝過程,包含它的基礎(chǔ)環(huán)境LNMP,雖然zabbix官方一般推薦的環(huán)境是LAMP。以及實現(xiàn)簡單的監(jiān)控任務,在發(fā)現(xiàn)問題時能夠發(fā)送通知郵件。

2.系統(tǒng)環(huán)境

Zabbix的編譯安裝并發(fā)送通知郵件

提前安裝好如下兩個包組:yum groupinstall ?"Development Tools" "Server ?Platform Development"。

3.搭建web服務

zabbix作為監(jiān)控系統(tǒng)需要有圖形化的頁面呈現(xiàn)給運維人員,它使用web+php的方式來實現(xiàn)。這里首先搭建其需要的web服務。我使用的是nginx-1.10.3的源碼包編譯安裝的方式。相應步驟如下:

  • 添加nginx用戶

Zabbix的編譯安裝并發(fā)送通知郵件
  • 編譯安裝nginx
    將前面提到的nginx-1.10.3.tar.gz包解壓以后,cd到nginx-1.10.3目錄中,然后使用如下參數(shù)進行configure

Zabbix的編譯安裝并發(fā)送通知郵件
  • 創(chuàng)建軟鏈接至nginx
    默認情況下nginx編譯安裝的路徑(prefix) 是在/usr/local/nginx,所以創(chuàng)建一個軟鏈接,使用起來更方便:
    ln -s /usr/local/nginx-1.10.3/ /usr/local/nginx
  • 將源碼安裝的nginx執(zhí)行程序放到PATH環(huán)境變量中

Zabbix的編譯安裝并發(fā)送通知郵件

在Linux中,通過源碼安裝的各類軟件包的執(zhí)行程序都可以都通過這種方式放入PATH環(huán)境變量中方便使用,且相應的文件不需要賦予執(zhí)行權(quán)限。

  • 更改nginx文件夾屬主為nginx
    chown -R nginx.nginx /usr/local/nginx-1.10.3
  • 驗證web service

Zabbix的編譯安裝并發(fā)送通知郵件
  • 設(shè)置nginx開機自啟
    這里我選擇的是直接將nginx執(zhí)行程序添加到rc.local腳本中:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 至此web service的搭建工作完成。下面繼續(xù)mysql的搭建。

4. 搭建mysql服務

zabbix的server和proxy是需要連接數(shù)據(jù)庫的,zabbix支持多種類型的數(shù)據(jù)庫,本文只涉及到mysql。

  • 添加mysql用戶
    useradd -s /sbin/nologin -M mysql
  • 解壓mysql 二進制包到目標文件夾
    因為我使用的是名為mysql-5.5.53-Linux2.6-x86_64.tar.gz的壓縮包,此包實際是一個mysql的二進制包,相當于從相應平臺安裝編譯好后打包出來的,直接解壓以后可以使用,而無需再configure和make&&make install了。操作指令:
    tar xf mysql-5.5.53-Linux2.6-x86_64.tar.gz -C /usr/local ? 
    #解壓出來的文件會自動放置于/usr/local/mysql-5.5.53-Linux2.6-x86_64中
  • 創(chuàng)建軟鏈接
    為后續(xù)使用方便,如在腳本中引用路徑時更方便,這里還是給它設(shè)置一個軟鏈接:
    ln -s /usr/local/mysql-5.5.53-Linux2.6-x86_64/ /usr/local/mysql
  • 更改mysql文件夾屬主為mysql
    chown -R mysql.mysql /usr/local/mysql/
  • 初始化mysql數(shù)據(jù)庫
    在解壓后的mysql目錄中有一個scripts目錄其中有一個mysql_install_db的文件,執(zhí)行它,并指定用戶為mysql,數(shù)據(jù)目錄使用其默認的路徑/usr/local/mysql/data,操作如下:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 設(shè)置mysql開機自啟
    mysql目錄中有一個support-files目錄,其中有一個mysql.server文件,將其復制到/etc/init.d/下,并更名為mysqld
    cp support-files/mysql.server /etc/init.d/mysqld 
    chkconfig --add mysqldchkconfig mysqld on
  • 提供mysql的配置文件
    同樣是在support-files目錄中有多種不同類型的mysql配置文件,本文我使用的是my-small.cnf,將其復制到/etc目錄下,因為我沒有設(shè)置非常規(guī)的basedir和datadir,所以這里可以不用對其進行修改:
    cp support-files/my-small.cnf /etc/my.cnf ? ? #更名為my.ncf
  • 啟動mysql服務
    service mysqld start ? lsof -i :3306 ? #檢查mysql是否啟動成功
  • 設(shè)置mysql root賬戶密碼
    mysqladmin -uroot -p<password>

    然后在使用root用戶登錄。

5.搭建php-fpm環(huán)境

  • configure php
    在將前面提到的php-5.5.38.tar.gz包解壓以后,cdphp-5.5.38目錄中,執(zhí)行以下configure指令:

Zabbix的編譯安裝并發(fā)送通知郵件
  • configure完成以后,會提示進行make test,這是一個非常耗時間的過程,最后的結(jié)果有可能有一些警告,但不一定會有很大的影響,可以忽略。我在操作過程中遇到如下提示,沒有去深究它,后面編譯安裝正常完成,沒有錯誤提示,使用也還未發(fā)現(xiàn)問題。

Zabbix的編譯安裝并發(fā)送通知郵件
  • configure過程中如果碰到的有錯誤提示,請根據(jù)提示信息予以解決,查看是否上述指定的包并未安裝所致。
  • 安裝php-fpm
    makemake install
  • 設(shè)置php的軟鏈接
    ln -s /usr/local/php-5.5.38/ /usr/local/php
  • 將php的執(zhí)行程序放入PATH變量中

Zabbix的編譯安裝并發(fā)送通知郵件
  • 提供php的配置文件
    php的源碼包中提供的有php的配置文件,在解壓后的目錄中將其復制到我們在configure時指定的位置并更名為php.ini,如:--with-config-file-path=/usr/local/php-5.5.38/etc。

Zabbix的編譯安裝并發(fā)送通知郵件
  • 提供php-fpm的配置文件
    php-fpm的配置文件在執(zhí)行make install時已安裝好了,只需要將其改名即可:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 啟動php-fpm

Zabbix的編譯安裝并發(fā)送通知郵件
  • 設(shè)置php-fpm開機自啟
    在編譯后的php源碼包中其實就提供了php-fpm服務腳本:./sapi/fpm/init.d.php-fpm,我們只需要將其復制到/etc/init.d/目錄下,并更名即可。操作如下:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 將php-fpm與nginx結(jié)合
    php-fpm可以正常啟動以后,需要配置web service可以訪問php-fpm服務,因為我這里使用的nginx提供web service,所以修改其配置 文件/etc/usr/local/nginx/conf/nginx.conf如下:

Zabbix的編譯安裝并發(fā)送通知郵件
    • 可以直接將原nginx.conf文件中與php-fpm相關(guān)的部分的注釋直接去掉,并修改成如上所示內(nèi)容。
    • 測試nginx是否可正常使用php-fpm
      • 要進行此測試,還需要修改nginx.conf中的根location,在其首頁中添加index.php,內(nèi)容如下:

Zabbix的編譯安裝并發(fā)送通知郵件
      • nginxhtml文件夾中使用如下指令,建立index.php文件:
        echo "<?php phpinfo(); ?>" > index.php
      • 重啟nginx程序和php-fpm服務

Zabbix的編譯安裝并發(fā)送通知郵件
    • 瀏覽器中輸入這臺server的ip后回車
      正常情況下,可以顯示phpinfo的詳細信息了,如下所示:

      Zabbix的編譯安裝并發(fā)送通知郵件

      php info頁面

6.搭建zabbix server

  • 創(chuàng)建zabbix用戶
    useradd -s /sbin/nologin -M zabbix
  • configure zabbix
    將前面提到的zabbix-3.2.4.tar.gz包解壓以后,cd到解壓后的目錄(zabbix-3.2.4)后執(zhí)行如下指令:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 因為zabbix server也需要被監(jiān)控,所以其也需要agent。
    configure時使用了--with-net-snmp --with-libcurl --with-libxml2所以需要先在系統(tǒng)中使用yum安裝net-snmp-devel、libcurl-devel、libxml2-devel包,使用yum安裝會自動解決依賴關(guān)系將net-snmp、libcurl、libxml2一并安裝上。
    正常完成configure后,會顯示如下匯總信息:

Zabbix的編譯安裝并發(fā)送通知郵件

Zabbix的編譯安裝并發(fā)送通知郵件
  • 安裝zabbix
    根據(jù)configure完成后的提示執(zhí)行make install即可,無需執(zhí)行make然后再make install。

7.建立給zabbix使用的數(shù)據(jù)庫

zabbix要實現(xiàn)將其相關(guān)的配置信息,監(jiān)控的信息都存儲于后臺的數(shù)據(jù)庫中,自然需要建立相應的數(shù)據(jù)庫,并配置相應的賬號。zabbix支持多種類型的數(shù)據(jù)庫,這里只以mysql為例,且是在zabbix server上的mysql上需要做的。

  • 創(chuàng)建給zabbix使用的數(shù)據(jù)庫zabbix

Zabbix的編譯安裝并發(fā)送通知郵件
  • 初始化zabbix數(shù)據(jù)庫
    在zabbix的源碼解壓目錄中有一個database目錄,其中有針對不同類型數(shù)據(jù)庫要使用的初始化sql語句,在這里需要選擇mysql目錄中的語句:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 修改zabbix server配置文件
    源碼安裝的zabbix,其配置文件默認位于其安裝目錄的etc目錄中,即:/usr/local/zabbix/etc下,server的為zabbix_server.conf,此時修改其連接數(shù)據(jù)庫的相關(guān)信息即可,默認連接的數(shù)據(jù)庫即為本機的數(shù)據(jù)庫,數(shù)據(jù)庫即為zabbix,密碼為空,所以將密碼設(shè)置為前面創(chuàng)建的密碼即可。
    DBPassword=<password>
  • 修改zabbix agent的配置文件
    文件位置和server的一樣,需要修改的地方有如下幾處:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 設(shè)置zabbix server和agent開機自啟動
    zabbix原生也提供了用于實現(xiàn)開機自啟動的服務腳本,它們在3.2.4版本中位于解壓后的目錄/root/softwares/zabbix-3.2.4/misc/init.d,這個目錄下有針對不同類型系統(tǒng)的腳本,這里我選擇的是fedora這一目錄中的腳本,腳本位置及名稱如下:

Zabbix的編譯安裝并發(fā)送通知郵件

很明顯分別有針對server和agent的腳本,把它們復制到/etc/init.d/目錄下:

Zabbix的編譯安裝并發(fā)送通知郵件

打開這兩個文件(zabbix_agentd和zabbix_server)查看其內(nèi)容,根據(jù)實際情況進行修改,一般需要更改的只是如下內(nèi)容:

Zabbix的編譯安裝并發(fā)送通知郵件

將這兩個服務安裝添加到自啟動中:

Zabbix的編譯安裝并發(fā)送通知郵件
  • 啟動zabbix server和agent程序

Zabbix的編譯安裝并發(fā)送通知郵件

8.安裝zabbix web程序

zabbix對于監(jiān)控的結(jié)果可以通過web頁面來進行展示和查看,它需要安裝一個使用php程序來運行的web站點,根據(jù)zabbix的官方要求,還有如下php的參數(shù)需要提前修改:

Zabbix的編譯安裝并發(fā)送通知郵件

上述修改都在php.ini文件中完成。在本文的環(huán)境中它位于/usr/local/php/etc/php.ini。另外需要補充一下,zabbix3.2.4它要求的php版本最低為5.4。 修改完php.ini文件后,重啟php-fpm服務service php-fpm restart

安裝zabbix web程序操作步驟如下:

    • 創(chuàng)建web站點
      在web service的根目錄下給zabbix單獨創(chuàng)建一個根目錄,用于存放zabbix的php程序文件,然后再將源碼解壓目錄中名為frontends/php目錄中的全部內(nèi)容復制過來。

      Zabbix的編譯安裝并發(fā)送通知郵件

 

  • 打開zabbix web完成配置過程

    瀏覽器中輸入http://server_ip/zabbix打開zabbix的web界面,初次打開會顯示歡迎界面,此時web程序的安裝還沒有完成,并不需要登錄web站點的用戶名和密碼,然后點擊Next step可以看到它會進行一個php環(huán)境參數(shù)的檢測,需要它們?nèi)匡@示為OK在繼續(xù)進行下一步,從此步也可以看到很多之前php configure時所enable和with的選項參數(shù),它們都是運行zabbix web程序所要求的。

  • zabbix 3.2.4 web需求php的環(huán)境如下:

    Zabbix的編譯安裝并發(fā)送通知郵件

    Zabbix的編譯安裝并發(fā)送通知郵件

php環(huán)境檢測通過的結(jié)果如下圖所示:

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix web php環(huán)境檢測通過圖1

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix web php環(huán)境檢測通過圖2

  • 配置zabbix web連接的數(shù)據(jù)庫
    數(shù)據(jù)庫為本機名為zabbix的mysql數(shù)據(jù)庫,賬戶名和密碼輸入此前創(chuàng)建zabbix數(shù)據(jù)庫時配置授權(quán)的賬戶和密碼。

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix web DB配置

  • 配置zabbix server信息
    這里在Name處可以填上本機的主機名,其它保持默認即可。

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix server詳細信息

  • zabbix web安裝信息匯總

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix web安裝信息匯總

  • 生成zabbix web的配置文件并導入站點配置目錄中
    zabbix web安裝程序會自動生成一個名為zabbix.conf.php的配置文件,并嘗試自動將其放入zabbix站點配置目錄中,但由于權(quán)限問題,會創(chuàng)建失敗,此時只需要通過瀏覽器下載,然后手動入到指定目錄即可,web安裝程序會有相關(guān)提示,如下圖所示:

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix web conf install
文件導入完成后,點擊Finish,會出現(xiàn)以下信息,即表示zabbix web安裝成功。

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix web安裝成功提示信息

  • 登錄zabbix web界面
    在瀏覽器中輸入http://server_ip/zabbix即可打開zabbix的登錄界面,輸入如下默認賬戶和密碼即可登錄:
    user name:Admin
    password:zabbix
    此用戶為zabbix web系統(tǒng)中super user,擁有最高權(quán)限,用戶名注意字母大小寫。

初始情況下,只配置了讓zabbix server監(jiān)控它自己,下面繼續(xù)配置一臺Linux server,讓zabbix server可以監(jiān)控它,并可以發(fā)送監(jiān)控通知郵件。

9.被監(jiān)控端安裝zabbix agent

安裝過程還是使用源碼編譯安裝的方式,先創(chuàng)建zabbix用戶。

Zabbix的編譯安裝并發(fā)送通知郵件

在被監(jiān)控的Linunx server上,只需要安裝zabbix agent,在configure時使用如下參數(shù)即可:

Zabbix的編譯安裝并發(fā)送通知郵件

configure完成以后,注意觀察匯總信息是否有錯誤提示,是否只啟用了agent,有問題根據(jù)實際情況去排查并解決。如果沒有錯誤,則根據(jù)提示信息執(zhí)行make install完成安裝過程。
被監(jiān)控端設(shè)置軟鏈接,添加zabbix執(zhí)行程序路徑至PATH變量,修改zabbix_agentd.conf文件以及zabbix_agentd服務開機自啟的過程參考前文相關(guān)內(nèi)容即可,此處不在贅述。
最后啟動被監(jiān)控端的zabbix_agentd服務。

Zabbix的編譯安裝并發(fā)送通知郵件

10.zabbix server上配置監(jiān)控內(nèi)容

在zabbix server上配置剛安裝了zabbix agent的主機,并設(shè)置要監(jiān)控的內(nèi)容。

  • 添加要監(jiān)控的主機
    在zabbix web上添加要監(jiān)控的主機,選擇Configuration---->Hosts--->Create host,在如下界面中填寫相應信息:

    Zabbix的編譯安裝并發(fā)送通知郵件zabbix web添加主機1

根據(jù)實際情況填寫主機名,選擇主機分組,主機ip,對于主機分組此處我選擇Linux servers作為示例。
然后可以選擇Host旁的Templates,zabbix內(nèi)置了很多種不同的模板,它包含的有監(jiān)控條目item,告警觸發(fā)器trigger,圖形展示Graphs,屏幕Screens等。以下為給主機應用模板的操作過程:

Zabbix的編譯安裝并發(fā)送通知郵件

給主機應用監(jiān)控模板1

Zabbix的編譯安裝并發(fā)送通知郵件

選擇相應的監(jiān)控模板

Zabbix的編譯安裝并發(fā)送通知郵件

確認主機是否應用了監(jiān)控模板
示例中的server3上我啟用的有web服務,所以這里選擇了zabbix內(nèi)置的Template App HTTP Serivice這一模板對http服務進行監(jiān)控。 等待片刻,ZBX會顯示成綠色即表示zabbix server能和server3上的zabbix agent正常通信了,如下所示:

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix server已可監(jiān)控到server3

11.配置zabbix server發(fā)送通知郵件

zabbix server默認支持多種發(fā)送通知的方式,其中就包含的有名為Email的方式,但經(jīng)過多次嘗試都未能實現(xiàn)讓zabbix server發(fā)送通知郵件,所以這里使用zabbix調(diào)用外部腳本且借助公網(wǎng)smtp服務器的方式來發(fā)送通知郵件。詳細過程如下:

  • 配置Media Type
    zabbix支持自定義Media Type,這里我創(chuàng)建一個名為user mail的Media Type,并指定它是需要使用Scripts的方式。在Administration下選擇Media Types,然后選擇Create media type,創(chuàng)建內(nèi)容如下:

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix自定義media type

  • 建立通知郵件腳本
    默認情況下通知郵件腳本應該存放在/usr/local/zabbix/share/zabbix/alertscripts,直接在這個路徑下建立相應的腳本即可,如果腳本不是存放在此處,需要修改zabbix_server.conf文件中此處# AlertScriptsPath=${datadir}/zabbix/alertscripts取消掉注釋并寫上腳本完整的存放路徑。mail.sh的內(nèi)容如下:

    Zabbix的編譯安裝并發(fā)送通知郵件
  • 定義收件人郵件地址
    在zabbix中每個用戶可以關(guān)聯(lián)多個Media type,在這里我給Admin這一用戶關(guān)聯(lián)上前面已經(jīng)定義好的名為user mail的Media type,并填上其郵件地址,即zabbix發(fā)送郵件通知時的收件人郵件地址。在zabbix web上依次選擇Administration,Users,Admin,Media標簽,然后點擊Add,給這一用戶定義一個media,此處選擇user mail,如下所示:

Zabbix的編譯安裝并發(fā)送通知郵件

給用戶關(guān)聯(lián)相應的Media-1

Zabbix的編譯安裝并發(fā)送通知郵件

給用戶關(guān)聯(lián)相應的Media-2

Zabbix的編譯安裝并發(fā)送通知郵件

給用戶關(guān)聯(lián)相應的Media-3

  • 設(shè)置發(fā)送通知的action
    zabbix中只有設(shè)置 了action,它才知道應該如何發(fā)送通知,如在什么條件下發(fā)送,通知通過哪個media type發(fā)送,發(fā)送給哪些人,發(fā)送的頻率是怎么樣的,發(fā)送的通知主題和正文是怎樣的,當故障恢復以后如何發(fā)送通知等。 這些必須在action中定義好。以下為配置示例,當被監(jiān)控端不是在工程態(tài)(維護狀態(tài))中,發(fā)生了Problem事件,即將相關(guān)信息發(fā)送給zabbix administraotrs組內(nèi)的所有用戶且通過上面自定義的user mail這一media發(fā)送。
    大致過程如下:依次選擇Configuration,ActionsCreate action,然后按照下圖所示過程進行操作:

Zabbix的編譯安裝并發(fā)送通知郵件

定義action名稱及觸發(fā)條件

Zabbix的編譯安裝并發(fā)送通知郵件

定義故障時action的具體行為-1

Zabbix的編譯安裝并發(fā)送通知郵件

定義故障時action的具體行為-2

Zabbix的編譯安裝并發(fā)送通知郵件

定義故障恢復后action的具體行為

Zabbix的編譯安裝并發(fā)送通知郵件

查看剛定義的action
從上述過程也可以看到其實這些action定義的是由Trigger來觸發(fā)的,因為前面我是直接給主機應用了zabbix內(nèi)置的http service的模板,它里面已經(jīng)關(guān)聯(lián)的有相應的trigger了,所以當http service發(fā)生變化,會自動觸發(fā)相應的trigger,而后又觸發(fā)zabbix 執(zhí)行相應的action。這是zabbix發(fā)送通知的一個大致的過程。

  • 定義zabbix發(fā)送通知郵件使用的賬戶
    zabbix server本機非合法的smtp服務器,由它直接發(fā)送郵件給公網(wǎng)郵箱,會有很多問題,不一定成功。所以這里依然選擇使用公網(wǎng)的163 smtp服務器來發(fā)送zabbix的通知郵件。因為不需要用到本機的smtp服務,所以可以選擇將smtp服務停止,并確保本機有mail程序可用,它由mailx軟件包提供。在上面定義通知郵件腳本時就已經(jīng)用到了mail指令。
    本機服務賬戶配置方法,在/etc/mail.rc中增加如下內(nèi)容:

    Zabbix的編譯安裝并發(fā)送通知郵件
  • 制造告警測試是否正常收到通知郵件
    將server3的web service停掉,將近3分鐘查看郵件客戶端,收到了zabbix發(fā)送的通知郵件。這個從故障發(fā)生到zabbix發(fā)送通知消息的時長,取決于監(jiān)控的item配置的檢測時長和trigger判斷條件,默認的http service的檢測時長為1分鐘,其判斷條件為最大連續(xù)檢測到3次失敗即認為http service down,觸發(fā)相應的trigger,并與相應的action聯(lián)動,從而發(fā)送通知郵件。zabbix發(fā)送的通知郵件內(nèi)容大致如下:

Zabbix的編譯安裝并發(fā)送通知郵件

zabbix通知郵件

12.小結(jié)

以上即為zabbix實現(xiàn)監(jiān)控Linux服務器并發(fā)送通知郵件的實現(xiàn)過程小記。只是zabbix的基礎(chǔ)入門,還有很多內(nèi)容需要在不斷的使用中熟悉,也可以參考官網(wǎng)手冊,會有很多收獲。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構(gòu)!