久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Zabbix的編譯安裝并發送通知郵件

1.寫在前面

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

2.系統環境

Zabbix的編譯安裝并發送通知郵件

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

3.搭建web服務

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

  • 添加nginx用戶

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

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

Zabbix的編譯安裝并發送通知郵件

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

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

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

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

4. 搭建mysql服務

zabbix的server和proxy是需要連接數據庫的,zabbix支持多種類型的數據庫,本文只涉及到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中
  • 創建軟鏈接
    為后續使用方便,如在腳本中引用路徑時更方便,這里還是給它設置一個軟鏈接:
    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數據庫
    在解壓后的mysql目錄中有一個scripts目錄其中有一個mysql_install_db的文件,執行它,并指定用戶為mysql,數據目錄使用其默認的路徑/usr/local/mysql/data,操作如下:

Zabbix的編譯安裝并發送通知郵件
  • 設置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目錄下,因為我沒有設置非常規的basedir和datadir,所以這里可以不用對其進行修改:
    cp support-files/my-small.cnf /etc/my.cnf ? ? #更名為my.ncf
  • 啟動mysql服務
    service mysqld start ? lsof -i :3306 ? #檢查mysql是否啟動成功
  • 設置mysql root賬戶密碼
    mysqladmin -uroot -p<password>

    然后在使用root用戶登錄。

5.搭建php-fpm環境

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

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

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

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

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

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

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

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

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

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

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

      Zabbix的編譯安裝并發送通知郵件

      php info頁面

6.搭建zabbix server

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

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

Zabbix的編譯安裝并發送通知郵件

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

7.建立給zabbix使用的數據庫

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

  • 創建給zabbix使用的數據庫zabbix

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

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

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

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

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

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

Zabbix的編譯安裝并發送通知郵件

8.安裝zabbix web程序

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

Zabbix的編譯安裝并發送通知郵件

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

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

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

      Zabbix的編譯安裝并發送通知郵件

 

  • 打開zabbix web完成配置過程

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

  • zabbix 3.2.4 web需求php的環境如下:

    Zabbix的編譯安裝并發送通知郵件

    Zabbix的編譯安裝并發送通知郵件

php環境檢測通過的結果如下圖所示:

Zabbix的編譯安裝并發送通知郵件

zabbix web php環境檢測通過圖1

Zabbix的編譯安裝并發送通知郵件

zabbix web php環境檢測通過圖2

  • 配置zabbix web連接的數據庫
    數據庫為本機名為zabbix的mysql數據庫,賬戶名和密碼輸入此前創建zabbix數據庫時配置授權的賬戶和密碼。

Zabbix的編譯安裝并發送通知郵件

zabbix web DB配置

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

Zabbix的編譯安裝并發送通知郵件

zabbix server詳細信息

  • zabbix web安裝信息匯總

Zabbix的編譯安裝并發送通知郵件

zabbix web安裝信息匯總

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

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

zabbix web安裝成功提示信息

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

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

9.被監控端安裝zabbix agent

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

Zabbix的編譯安裝并發送通知郵件

在被監控的Linunx server上,只需要安裝zabbix agent,在configure時使用如下參數即可:

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

10.zabbix server上配置監控內容

在zabbix server上配置剛安裝了zabbix agent的主機,并設置要監控的內容。

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

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

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

Zabbix的編譯安裝并發送通知郵件

給主機應用監控模板1

Zabbix的編譯安裝并發送通知郵件

選擇相應的監控模板

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

zabbix server已可監控到server3

11.配置zabbix server發送通知郵件

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

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

Zabbix的編譯安裝并發送通知郵件

zabbix自定義media type

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

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

Zabbix的編譯安裝并發送通知郵件

給用戶關聯相應的Media-1

Zabbix的編譯安裝并發送通知郵件

給用戶關聯相應的Media-2

Zabbix的編譯安裝并發送通知郵件

給用戶關聯相應的Media-3

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

Zabbix的編譯安裝并發送通知郵件

定義action名稱及觸發條件

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

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

Zabbix的編譯安裝并發送通知郵件

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

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

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

Zabbix的編譯安裝并發送通知郵件

zabbix通知郵件

12.小結

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

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 左贡县| 洪洞县| 石棉县| 万源市| 辛集市| 清徐县| 海门市| 崇仁县| 夏河县| 措美县| 桦甸市| 任丘市| 会东县| 镇宁| 滕州市| 荆州市| 大关县| 桑日县| 台东县| 云林县| 临汾市| 稷山县| 甘德县| 缙云县| 嘉黎县| 商河县| 玉田县| 永宁县| 阳谷县| 太保市| 临夏县| 辽中县| 枣庄市| 云南省| 马鞍山市| 郸城县| 衢州市| 开封县| 舒城县| 长治市| 湄潭县|