zabbix入門知識

zabbix入門知識

zabbix中文手冊
https://www.zabbix.com/documentation/3.4/manual/php

1.zabbix介紹

Zabbix 是一個企業級的分佈式開源監控方案。
    Zabbix是一款可以監控各類網絡參數以及服務器健康性和完整性的軟件。
    Zabbix使用靈活的通知機制,提供了出色的報告和數據可視化功能
    Zabbix支持主動輪詢和被動捕獲。
    Zabbix基於Web的前端頁面進行訪問。
    Zabbix是免費的。
    特色:
        數據收集
        靈活的閥值定義
        高度可配置化的告警
        實時圖表繪製
        Web監控功能
        豐富的可視化選項
        歷史數據存儲
        配置簡單
        使用模板
        網絡發現
        簡潔的Web界面
        Zabbix API
        權限管理系統
        功能強大並易於擴展的監控代理
        二進制代碼
        爲複雜環境準備

2.zabbix系統架構圖



3.zabbix的組件

zabbix agent:部署在被監控主機上,負責收集本地數據併發往server端或porxy端。
    zabbix server:負責接收agent發送的報告信息的核心組件,全部配置信息、統計數據及操做數據都由其組織進行。
    zabbix database:用於存儲全部zabbix的配置信息、監控數據的數據庫。
    zabbix web:zabbix的web界面,經過web界面管理zabbix的配置以及查看zabbix相關的監控信息,能夠單獨部署在獨立的服務器上,是server的一部分,一般是在一臺物理機上,若使用使用SQLite則必須在一臺上。
    zabbix proxy:用於分佈式監控環境中,zabbix proxy某程度上至關於server端,完成局部區域內的信息收集,最終統一發往server端。可幫server分擔負載壓力。
    zabbix數據流:
        爲了建立一個監控項用於採集數據,必須先建立一個主機。轉換到Zabbix功能的其餘部分,你必須先有一個監控項來建立觸發器,你必須有一個觸發器來建立動做。 所以,若是你想收到X服務器CPU負載太高的告警,你必須先爲X服務器建立一個主機實體並關聯一個用於對CPU進行監控的監控項,而後若是CPU負載過高便會激活觸發器,接着會執行一個動做,給你發送告警郵件。雖然看起來有不少步驟,可是使用模板的話能夠會很簡單。同時,這個設計能夠建立一個很是靈活的配置。

4.zabbix支持的通信協議

理論上,zabbix可以監控幾乎全部與業務相關的硬件資源。可是,能監控的前提是能相互間穩定通訊。而zabbix支持的協議以下。
    agent:經過專用的代理程序進行監控,與常見的master/agent模型類型。若支持的話,優先選用agent。
    ssh、telnet:經過遠程控制協議進行通訊。
    SNMP:simple network management protocol,經過snmp協議進行監控,大部分網絡設備都支持這種協議,與常見的master/agent模型類型,通常是在這些設備中內置有snmp的agent。
    IPMI:經過IPMI接口進行監控,來監控對象的物理特徵,如電壓,溫度等。
    JMX:java management extensions,經過jmx監控jvm虛擬機。

5.zabbix的工做模式

被動(passive)模式和主動(active)模式
    工做模式是對於agent端來講的。
    當agent端將採集完的數據主動發往server端的模式爲主動模式。
    當agent端等待server端來垃圾數據的模式爲被動過模式。
    主動模式與被動模式在agent端並不衝突,能夠同時存在。
    agent端使用zabbix_sender工具測試可否向server端發數據,server端使用zabbix_get工具測試可否從agent端拉取數據。

6.zabbix的監控過程

zabbix agent部署在被監控的主機上,由agent採集數據並報告給負責監控的中心主機,中心主機就是master/agent中的master;
    負責監控的中心主機爲zabbix server,server將從agent端接收信息並存儲到zabbix database中;
    管理員是從zabbix web支持的web GUI上查看各類監控信息的,而zabbix web是有php編寫,因此依賴與LAMP環境;
    zabbix server和zabbix web都須要與zabbix database相互通訊來獲取數據。
    當監控規模很是龐大時,就須要用到分佈式監控,使用zabbix proxy做爲代理來接收agent的提交的數據信息,而後將數據統一發送給zabbix server處理,在局部proxy就至關於server。

7.zabbix經常使用術語

主機 (host):要監控的網絡設備,用IP或DNS名錶示
    主機組 (host group):主機的邏輯組;它包含主機和模板。一個主機組裏的主機和模板之間並無任何直接的關聯。一般在給不一樣用戶組的主機分配權限時候使用主機組。
    監控項 (item):要接收的主機的特定數據,一個度量數據,某個監控指標。
    鍵(key):想要獲取監控項對應的數據,就須要經過某個key去獲取,能夠把key固然調用命令的對應的命令別名。
    觸發器 (trigger):一個被用於定義問題閾值和「評估」監控項接收到的數據的邏輯表達式。當接收到的數據高於閾值時,觸發器從「OK」變成「Problem」狀態。當接收到的數據低於閾值時,觸發器保留/返回一個「OK」的狀態。
    事件 (event):單次發生的須要注意的事情,例如觸發器狀態改變或發現有監控代理自動註冊
    異常 (problem):一個處在「異常」狀態的觸發器
    動做 (action): 一個對事件作出反應的預約義的操做,由操做(例如發出通知)和條件(當時操做正在發生)組成
    升級 (escalation): 一個在動做內執行操做的自定義場景; 發送通知/執行遠程命令的序列
    媒介 (media):發送告警通知的手段;告警通知的途徑
    通知 (notification):利用已選擇的媒體途徑把跟事件相關的信息發送給用戶
    遠程命令 (remote command):一個預約義好的,知足一些條件的狀況下,能夠在被監控主機上自動執行的命令
    模版 (template):一組能夠被應用到一個或多個主機上的實體(監控項,觸發器,圖形,聚合圖形,應用,LLD,Web場景)的集合,模版的任務就是加快對主機監控任務的實施;也可使監控任務的批量修改更簡單。模版是直接關聯到每臺單獨的主機上。
    應用 (application):一組監控項組成的邏輯分組
    web 場景 (web scenario):利用一個或多個HTTP請求來檢查網站的可用性
    前端 (frontend):Zabbix提供的web界面
    Zabbix API:Zabbix API容許你使用JSON RPC協議來建立、更新和獲取Zabbix對象(如主機、監控項、圖形和其餘)信息或者執行任何其餘的自定義的任務
    Zabbix server:Zabbix軟件實現監控的核心程序,主要功能是與Zabbix proxies和Agents進行交互、觸發器計算、發送告警通知;並將數據集中保存等
    Zabbix agent:一個部署在監控對象上的,可以主動監控本地資源和應用的程序
    Zabbix proxy:一個幫助Zabbix Server收集數據,分擔Zabbix Server的負載的程序

8.zabbix安裝

1)配置倉庫html

wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm(這是個配置倉庫的安裝包,會自動倉庫)
    配置好倉庫後,使用yum install來進行安裝

2)zabbix server的安裝前端

yum install mariadb mariadb-libs mariadb-server zabbix-get zabbix-server-mysql.x86_64 ##(根據安裝的數據庫來選擇包)                                     
    初始化zabbix數據庫
        安裝mysql數據
        建立zabbix數據庫和用戶
            MariaDB [(none)]> create database zabbix charset 'utf8';
            MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'xm1234';  ##這裏設置的本地
            MariaDB [(none)]> flush privileges;
        初始化zabbix數據庫
            經過rpm -ql zabbix-server-mysql找到create.sql.gz。
            解壓獲得create.sql腳本
                gunzip crete.sql.gz
            進行初始化
                mysql -uroot -p -Dzabbix < create.sql
            查看初始狀況
                msyql -uroot -p
                MariaDB [(none)]> use zabbix
                MariaDB [zabbix]> show tables;
        根據須要配置/etc/zabbix-server.conf
            DBPassword=
        啓動服務
            systemctl start zabbix-server

3)zabbix proxy的安裝java

yum install zabbix-get zabbix-proxy-mysql.x86_64(根據安裝的數據庫來選擇包)
    初始化配置和server差很少

4)zabbix web的安裝mysql

yum install zabbix-web.noarch  zabbix-web-mysql ##依賴了不少包,包括httpd和php
    初始化
        建立lamp環境
            安裝httpd和php(應該是在安裝zabbix-web時,由依賴關係的緣由如下都已安裝,僅須要配置啓動)
                yum install httpd php(php-fpm)php-mysql  maradb mariadb-libs mariadb-server
            啓動httpd
                systemctl enable httpd
                systemctl start httpd
            啓動maradb
            配置啓動php
                兩種方法,選其一。
                    1)modules:
                        yum install php php-mysql
                        vim /etc/httpd/conf/httpd.conf
                            在文件尾部加兩行
                                AddType application/x-httpd-php .php
                                AddType application/x-httpd-php-source .phps
                            添加修改下面行
                                <IfModule dir_module>
                                    DirectoryIndex index.php index.html
                                </IfModule>
                        systemctl restart httpd
                    2)fastcgi:
                        yum install php-fpm php-mysql
                        vim /etc/httpd/conf/httpd.conf
                            在文件尾部加四行
                            AddType application/x-httpd-php .php
                            AddType application/x-httpd-php-source .phps
                            ProxyRequests Off 
                            ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
                            修改下面行
                            <IfModule dir_module>
                                DirectoryIndex index.php index.html
                            </IfModule>
                        systemctl restart httpd
                        systemctl start php-fpm

        配置/etc/httpd/conf.d/zabbix.conf
            vim  /etc/httpd/conf.d/zabbix.conf
                在文件頭部添加
                    <VirtualHost 192.168.213.175:80>
                    servername zabbix-server
                    documentroot /usr/share/zabbix
                在文件尾部添加
                    </VirtualHost>
                修改
                    php_value date.timezone Asia/Shanghai
        重啓httpd服務
    systemctl restart httpd

5)zabbix agent的安裝linux

agent 的運行
        Zabbix agent運行在被監控主機上。
        Zabbix agent在linux上以守護進程運行。
        Zabbix agent是是設計在非root帳戶下的。它會以其餘任何非root用戶啓動的進程同樣的方式運行。因此,您可使用任意非root用戶運行agent,且不會產生任何問題。
        若是您在’root’帳戶下運行,它將切換到硬編碼的「zabbix」用戶,該用戶必須存在於您的系統上。若是您只想以’root’方式運行proxy,您必須在proxy配額文件裏修改‘AllowRoot‘參數。
        Zabbix agent成功退出時退出碼爲0,異常則退出碼爲1。
    安裝
        yum install zabbix-agent zabbix-sender
    配置
        vim /etc/zabbix/zabbix_agentd.conf|
        ##### Passive checks related  ##被動監控相關配置
            Server=IP1, IP2, ...##容許那臺服務器拉取當前服務器的數據,用於實現基於ip的訪問控制,若多個ip可用逗號隔開。
            ListenPort=10050 ##server端訪問的監聽端口,默認爲10050
            ListenIP=0.0.0.0  ##本地監聽的地址,默認爲0.0.0.0,表示監聽本地全部地址
            StartAgents=3  ##用於指定預生成的agent進程數量
        ##### Active checks related  ##主動監控相關配置,agent端主動向server週期性發送數據;
            ServerActive=IP1[:port], IP2[:port], ... ##信息推送到那臺server服務器上,若多個ip可用逗號隔開。
            Hostname=Unique_HOSTNAME  ##指定當前主機名,用於server端的識別。
                必須與服務器配置的監控主機的主機名稱保持一致;
    啓動
        systemctl start zabbix-agent

9.zabbix web界面初始化

http://zabbix_web_ip/zabbix
    1)進入安裝界面,點擊next step
    2)進入check of pre-requisites,確認全部狀態都爲ok,點擊next step
    3)進入configure DB connection,配置數據庫類型,ip,端口,數據庫名,用戶密碼,點擊next step
        
        端口0表示使用默認端口3306
    4)進入zabbix server details,配置ip地址,端口,servername,添加name,這個name是你在/etc/httpd/conf.d/zabbix.conf中配置的servername,點擊next step。
    5)進入pre-installation summary,檢查,點next step
    6)進程如install,點擊finish
        
    7)進入登陸界面,默認username爲admin,password爲zabbix。
    8)登陸後,能夠修改英文爲中文。
        若出現部分字體不能顯示的狀況
            1》確保/usr/share/zabbix/include/locales.inc.php 中的
                'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true]
            2》上傳你喜歡的字體文件到/usr/share/zabbix/fonts,文件是以.ttf結尾的,不是也修改爲。
                編輯/usr/share/zabbix/include/defines.inc.php中的
                    define('ZBX_GRAPH_FONT_NAME',       'simkai'); // font file name
                    define('ZBX_FONT_NAME', 'simkai');
            確保simkai是你上傳的字體文件的文件名
相關文章
相關標籤/搜索