Zabbix 簡介與yum安裝

十五十六發表於2018-10-04

簡介

Zabbix 是由Alexei Vladishev建立,目前由Zabbix SIA在持續開發和支援。
Zabbix 是一個企業級的分散式開源監控方案。
Zabbix是一款能夠監控各種網路引數以及伺服器健康性和完整性的軟體。Zabbix使用靈活的通知機制,允許使用者為幾乎任何事件配置基於郵件的告警。這樣可以快速反饋伺服器的問題。基於已儲存的資料,Zabbix提供了出色的報告和資料視覺化功能。這些功能使得Zabbix成為容量規劃的理想方案。
Zabbix支援主動輪詢和被動捕獲。Zabbix所有的報告、統計資訊和配置引數都可以通過基於Web的前端頁面進行訪問。基於Web的前端頁面可以確保您從任何方面評估您的網路狀態和伺服器的健康性。適當的配置後,Zabbix可以在IT基礎架構監控方面扮演重要的角色。對於只有少量伺服器的小型組織和擁有大量伺服器的大型公司也同樣如此

監控系統基本元件

  • 取樣的方式:lpml,agent,snmp,jmx等
  • 儲存的位置:rrd,sql,NoSQL等
  • 展示的平臺:web gui,app等
  • 報警:傳送通知等

zabbix常見元件

  • zabbix-server :服務端守護程式
  • zabbix-database:儲存系統
  • zabbix-web:web介面
  • zabbix-agent:agent守護程式
  • zabbix-proxy:代理伺服器
  • zabbix-get:命令列工具,測試向agent端發起資料採集請求
  • zabbix-sender:命令列工具,測試向server端傳送資料
  • zabbix_java_gateway:java閘道器,用來檢測java相關狀態

常用的術語

  • 主機 (host): 一臺你想監控的網路裝置,用IP或域名錶示

  • 主機組 (host group):主機的邏輯組;它包含主機和模板。一個主機組裡的主機和模板之間並沒有任何直接的關聯。通常在給不同使用者組的主機分配許可權時候使用主機組。

  • 監控項 (item):你想要接收的主機的特定資料,一個度量資料。

  • 觸發器 (trigger):一個被用於定義問題閾值和“評估”監控項接收到的資料的邏輯表示式,當接收到的資料高於閾值時,觸發器從“OK”變成“Problem”狀態。當接收到的資料低於閾值時,觸發器保留/返回一個“OK”的狀態。

  • 事件 (event):單次發生的需要注意的事情,例如觸發器狀態改變或發現有監控代理自動註冊

  • 動作 (action): 一個對事件做出反應的預定義的操作。一個動作由操作(例如發出通知)和條件(當時操作正在發生)組成
    升級 (escalation):一個在動作內執行操作的自定義場景; 傳送通知/執行遠端命令的序列

  • 媒介 (media):傳送告警通知的手段;告警通知的途徑

  • 通知 (notification):利用已選擇的媒體途徑把跟事件相關的資訊傳送給使用者

  • 模版 (template):一組可以被應用到一個或多個主機上的實體(監控項,觸發器,圖形,聚合圖形,應用,LLD,Web場景)的集合,模版的任務就是加快對主機監控任務的實施;也可以使監控任務的批量修改更簡單。模版是直接關聯到每臺單獨的主機上。

  • 應用 (application):一組監控項組成的邏輯分組

常見的工作模式

在這裡插入圖片描述

  • Zabbix Web
    為了從任何地方和任何平臺都可以輕鬆的訪問Zabbix, 我們提供基於Web的Zabbix介面。該介面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server執行在同一臺物理機器上。
  • Zabbix server
    Zabbix server 是agent程式報告系統可用性、系統完整性和統計資料的核心元件,是所有配置資訊、統計資訊和運算元據的核心儲存器。
  • DataBase 資料庫儲存
    所有配置資訊和Zabbix收集到的資料都被儲存在資料庫中。
  • Zabbix proxy
    Zabbix proxy 可以替Zabbix Server收集效能和可用性資料。Proxy代理伺服器是Zabbix軟體可選擇部署的一部分;當然,Proxy代理伺服器可以幫助單臺Zabbix Server分擔負載壓力。
  • Zabbix agent
    Zabbix agents監控代理 部署在監控目標上,能夠主動監控本地資源和應用程式,並將收集到的資料包告給Zabbix Server。

工作模式

Zabbix工作模式是相對於zabbix agent來說的

  • 被動模式:被動模式就是由zabbix server向zabbix agent發出指令獲取資料, 即zabbix agent被動的去獲取資料並返回給zabbix server, zabbix server週期性的向 agent 索取資料, 這總模式的最大問題就是會加大zabbix server的工作量, 在數百臺伺服器的環境下zabbix server不能及時獲取到最新資料, 但這也是預設的工作方式。
  • 主動模式是有zabbix agent主動採集資料並返回給zabbix server, 不再需要zabbix serve進行干預, 因此主動模式在一定程度上可減輕zabbix server的壓力

工作過程

agent負責收集資料併傳送給proxy或者server,如果傳送給proxy,proxy會將收集到的資料再傳送給server,server將收集的資料存放到資料庫中,當使用者開啟web頁面,從資料庫獲取資料展示給使用者。如果agent直接傳送給server,那serve直接將收集的資料存放到資料庫中。當使用者開啟web頁面,從資料庫獲取資料展示給使用者

其中Zabbix server,Zabbix web ,DataBase都不是必須在同一臺主機上。

Zabbix不僅支援基於agent收集資料,同時也支援SNMP(包括主動輪訓和被動獲取),IPMI,JMX,VMware監控

使用yum安裝

在這個頁面可以找到對應的rpm包和具體安裝過程
https://www.zabbix.com/download?zabbix=3.0&os_distribution=centos&os_version=7&db=MySQL

環境:Zabbix3.0,MySql,CentOS7

第一步:安裝一些依賴包

yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml mariadb mariadb-server -y

第二步:安裝原始碼庫配置部署包(從上面的網址得到的url)

rpm -i https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

第三步:安裝zabbix agent和zabbix server

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

第四步:建立資料庫

systemctl stop firewalld
setenforce 0
systemctl start mariadb #啟動資料庫
ln -sv /var/lib/mysql/mysql.sock  /tmp/mysql.sock
mysql -uroot   #進入mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
MariaDB [(none)]> quit;

匯入表結構

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -ppassword zabbix

第五步:配置php時區
如果只記得Shanghai忘了亞洲怎麼拼可以用這種方式找

find / -name "Shanghai"

在這裡插入圖片描述
修改的方式有2種,第一種修改/etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

第二種方法修改/etc/php.ini

date.timezone = Asia/Shanghai

第六步:修改配置檔案/etc/zabbix/zabbix_server.conf

############ GENERAL PARAMETERS #################
ListenPort=10051 ##監聽的埠
LogType=file       ##日誌的記錄的型別,這裡表示記錄在檔案中
LogFile=/var/log/zabbix/zabbix_server.log #日誌路徑
LogFileSize=0   #日誌大小,超過則會進行切割,0表示不切割
PidFile=/var/run/zabbix/zabbix_server.pid #pid檔案路徑
DBHost=localhost #資料庫位置  必填
DBName=zabbix #資料庫名稱   必填
DBUser=zabbix  #連線資料庫的使用者名稱   必填
DBPassword=passord  #連線資料庫對應的密碼  必填
DBSocket=/tmp/mysql.sock #socket檔案路徑  
DBPort=3306  #資料庫開放的埠 必填
############ ADVANCED PARAMETERS ################
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######

第七步:啟動zabbix server和httpd

 systemctl  start httpd zabbix-server

第八步:在網頁端配置zabbix
訪問http://192.168.253.128/zabbix #這裡的ip根據你的zabbix server伺服器地址變化

在這裡插入圖片描述
檢查基本配置
在這裡插入圖片描述

配置資料庫
在這裡插入圖片描述

如果要配置zabbix 的web與server分離需要在這個頁面設定,這裡的Host填寫遠端的web伺服器ip
在這裡插入圖片描述

配置的概要
在這裡插入圖片描述

安裝成功
在這裡插入圖片描述

第九步:登入
預設賬號為:Admin
預設密碼為:zabbix
在這裡插入圖片描述

在這裡插入圖片描述

第十步:我們可以新增一個agent來測一下
修改/etc/zabbix/zabbix_agentd.conf

Server=192.168.253.128   #這裡的ip是zabbix的Server端ip
Hostname=zabbix_agent1  

然後啟動zabbix-agent

systemctl  start zabbix-agent

在這裡插入圖片描述

這裡的Host name必須與agent的配置檔案中Hostname中一致
在這裡插入圖片描述

關聯一個模板
在這裡插入圖片描述

檢視一下資料能否正常獲取
在這裡插入圖片描述
從這裡可以看到資料更新了。