簡介
zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡和系統參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位解決存在的各種問題。
監控數據采集通道:
SNMP:Simple Network Management Protocol
ssh/telnet
IPMI:智能型平臺管理接口
agent:
master/agent
JMX:Java Management Extensions
自定義采樣機制:UserPrameter,基于agent端實現
存儲系統:
關系型數據庫:MySQL、PostgreSQL、Oracle...
NoSql:Mangodb...
特性
告警:
notification
支持告警升級
支持script
展示:
實時繪圖:graph, screen, slide show, map
支持模板
網絡自動發現
分布式監控
Server <--> Proxy <--> agent/ssh/ipmi
API:支持二次開發
image.png
安裝Zabix
主機環境
系統: CentOS 7.3
數據庫: MariaDB
Zabbix版本: 3.4.1
官網地址:https://www.zabbix.com/
官網提供打包好的rpm包和repo倉庫安裝包。
image.png
image.png
Server端安裝:
[root@centos7.3 ~]#yum -y install zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-get zabbix-agent zabbix-sender
zabbix-server-mysql #服務端守護進程以及連接所需mysql的組件;
zabbix-get #命令行工具,手動測試向agent發起數據采集請求;
zabbix-web #web界面,會自動安裝和配置httpd和php。
zabbix-web-mysql #web程序連接mysql數據組件
zabbix-agent #agent守護進程,用于Zabbix監控本身狀態。
zabbix-sender #命令行工具,手動向server端發送數據;
zabbix-prxoy-mysql #代理服務器,可選組件
zabbix_java_gateway #java網關
anget端安裝所需軟件包:
zabbix-agent #agent守護進程
zabbix-sender #命令行工具,運行于agent端,手動向server端發送數據
配置 zabbix server
配置數據庫
本文是實驗環境所以把數據庫和Zabbix Server部署在一臺主機上面,建議在真實的生產環境中把數據庫和Zabbix Server放在不同的主機上面。
[root@centos7.3 ~]#yum -y install mariadb-server
[root@centos7.3 ~]#systemctl start mariadb
[root@centos7.3 ~]#mysql_secure_installation #運行安全腳本
[root@centos7.3 ~]#systemctl restart mariadb
[root@centos7.3 ~]#mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE zabbix CHARSET 'utf8'; #為zabbix創建一個數據庫。
MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY 'admin123';
#為zabbix創建一個用戶并授權擁有zabbix庫的所有權限。
還需要在zabbix庫中創建一些表,在zabbix-zabbix-server-mysql包中提供了一個sql腳本用于創建表。
[root@centos7.3 ~]#cd /usr/share/doc/zabbix-server-mysql-3.4.1/
[root@centos7.3 zabbix-server-mysql-3.4.1]#ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@centos7.3 zabbix-server-mysql-3.4.1]#gzip -d create.sql.gz
[root@centos7.3 zabbix-server-mysql-3.4.1]#mysql -u zabbix -h 127.0.0.1 -padmin123 zabbix < create.sql
配置服務
server端默認端口:10051
agetn端默認端口 :10050
Server配置文件:/etc/zabbix/zabbix_server.conf
Agent配置文件 :/etc/zabbix/zabbix_agentd.conf
Server 配置:
[root@centos7.3 ~]#cd /etc/zabbix/
[root@centos7.3 zabbix]#grep "^####" zabbix_server.conf
############ GENERAL PARAMETERS ################# #通用配置
############ ADVANCED PARAMETERS ################ #高級配置段
####### LOADABLE MODULES ####### #模塊配置段
####### TLS-RELATED PARAMETERS ####### #tls/ssl配置段
通用配置段參數:
ListenPort=10050 #監聽端口
SourceIP=192.168.166.131 #監聽IP地址
LogType=file #日志存儲方式,可選:system(rsyslog)、file、console(標準輸出)默認file。
LogFile=/var/log/zabbix/zabbix_server.log #日志文件路徑
LogFileSize=0 #日志文件大小,達到設置的值自動滾動文件
DebugLevel=3 #日志記錄等級(0-5)
PidFile=/var/run/zabbix/zabbix_server.pid #zabbix的pid文件路徑
SocketDir=/var/run/zabbix #存儲Zabbix內部服務使用的IPC套接字的目錄
DBHost=localhost #數據庫地址
DBName=zabbix #數據庫名
DBUser=zabbix #zabbix登陸數據庫用戶
DBPassword=admin123 #密碼
DBSocket=/var/lib/mysql/mysql.sock #本地連接的sock文件路徑,用于本地連接數據庫
#這里我已經改為使用rpm包安裝的mariadb的sock文件默認路徑/var/lib/mysql/mysql.sock
DBPort=3306 #數據庫端口
下面配置基本不需要修改
高級配置段
StartPollers=5 #接收監控信息的進程數,范圍:0-1000。
StartIPMIPollers=0 #接收IPMI信息的進程數
StartPreprocessors=3
StartPollersUnreachable=1 #無法訪問的主機的輪詢器的進程數。如果啟動了常規的IPMI或Java輪詢器,則至少需要運行一個無法訪問的主機的輪詢器。
StartTrappers=5 #Trappers的進程數量.Trappers接受來自Zabbix agent,活動代理和活動代理的傳入連接。至少必須運行一個陷阱進程才能在前端顯示服務器可用性和查看隊列。
StartPingers=1 #ICMP的獲取icmp監控信息的進程數。
StartDiscoverers=1
StartHTTPPollers=1 #HTTP輪詢器的進程數。
StartTimers=1
StartEscalators=1
StartAlerters=3 #警報器進程的數量.Alerter發送由操作操作創建的通知。
JavaGateway= #Java網關的IP地址或主機名
JavaGatewayPort=10052 #Java網關偵聽的端口。
StartJavaPollers=0 #Java輪詢器的預分支實例數。
StartVMwareCollectors=0 #vmware收集器進程數量。
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareCacheSize=8M #用于存儲VMware數據的共享內存大小。128KB-2G
VMwareTimeout=10 #指定vmware收集器等待VMware服務響應的秒數。
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log#用于將數據從SNMP陷阱守護程序傳遞到服務器的臨時文件。與zabbix_trap_receiver.pl或SNMPTT配置文件中的相同。
StartSNMPTrapper=0 #如果1,啟動SNMP陷阱進程
ListenIP=127.0.0.1 #trapper應該監聽的逗號分隔的IP地址列表。
HousekeepingFrequency=1
MaxHousekeeperDelete=5000
CacheSize=8M #用于存儲主機,項目和觸發器數據的共享內存大小
CacheUpdateFrequency=60 #Zabbix將在幾秒鐘內執行配置緩存的更新頻率。1-3600
StartDBSyncers=4
HistoryCacheSize=16M #歷史緩存的大小,以字節為單位。用于存儲歷史數據的共享內存大小。128K-2G
HistoryIndexCacheSize=4M #歷史索引緩存的大小,以字節為單位。用于索引歷史緩存的共享內存大小。128K-2G
TrendCacheSize=4M #用于存儲趨勢數據的共享內存大小。128K-2G以字節為單位。
ValueCacheSize=8M #用于緩存項歷史數據請求的共享內存大小。設置為0將禁用值緩存。0,128K-64G以字節為單位。
Timeout=4 #指定等待代理,SNMP設備或外部檢查的時間(以秒為單位)。
TrapperTimeout=300
UnreachablePeriod=45 #被監控主機的超時時間
UnavailableDelay=60 #在不可用期間內,主機檢查可用性的頻率(秒)。范圍:1-3600
UnreachableDelay=15 #在不可達性期間檢查主機的可用性,以秒為單位。范圍:1-3600
AlertScriptsPath=/usr/lib/zabbix/alertscripts #報警腳本的路徑。
ExternalScripts=/usr/lib/zabbix/externalscripts #外部腳本的路徑。
FpingLocation=/usr/sbin/fping
Fping6Location=/usr/sbin/fping6
SSHKeyLocation= #用于SSH檢查和操作的公鑰和私鑰位置。
LogSlowQueries=3000 #在記錄之前數據庫查詢可能需要多長時間(以毫秒為單位)。如果DebugLevel設置為3,4或5.0 - 不記錄緩慢的查詢,那么該方法是有效的。范圍:1-3600000
TmpDir=/tmp #數據臨時目錄
StartProxyPollers=1
ProxyConfigFrequency=3600 #Server向 Proxy發送配置的間隔時間。僅用于被動模式下,范圍:1-3600 * 24 * 7
ProxyDataFrequency=1 #Server向向Proxy請求數據的時間間隔。僅用于被動模式。值:1-3600 秒
AllowRoot=0 #是否運行以root運行程序
User=zabbix #運行zabbix的用戶
# Include=/usr/local/etc/zabbix_server.general.conf
# Include=/usr/local/etc/zabbix_server.conf.d/
# Include=/usr/local/etc/zabbix_server.conf.d/*.conf
SSLCertLocation=${datadir}/zabbix/ssl/certs #SSL客戶端證書的位置。此參數僅用于Web監控。
SSLCALocation= #SSL客戶端證書的私鑰位置。此參數僅用于Web監控。
# SSLCALocation= #SSL服務器證書驗證的CA文件的位置。僅用于Web監控和SMTP身份驗證。
模塊配置段
# LoadModulePath=${libdir}/modules #服務器模塊位置的完整路徑。缺省取決于編譯選項。
# LoadModule= #在服務器啟動時加載模塊。 模塊用于擴展服務器的功能。格式:LoadModule = <module.so>模塊必須位于LoadModulePath指定的目錄中。允許包含多個LoadModule參數。
TLS配置段
# TLSCAFile= #包含頂級CA證書的文件的完整路徑名。
# TLSCRLFile= #包含撤銷證書的文件的完整路徑名。
# TLSCertFile= #證書路徑
# TLSKeyFile= #zabbix server私鑰路徑
配置zabbix-web:
zabbix-web在安裝時會自動解決依賴關系和配置。
zabbix嚴重依賴時區,時區設置有問題會導致無法訪問web頁面,配置php的時區設定:下面兩個文件改其中一個就行
(1) /etc/php.ini
(2) /etc/httpd/conf.d/zabbix.conf
[root@centos7.3 zabbix]#vim /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga #找到這一項去掉注釋修改時區
php_value date.timezone Asia/Shanghai
修改完成后啟動httpd服務
訪問URL:http://HOST/zabbix
image.png
檢查各項配置是否正確
image.png
填寫數據庫的信息
image.png
填寫zabbix server 的信息
image.png
配置好后會生成一個配置文件:/etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file. #這里都是在web頁面初始配置時設置的配置信息
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '127.0.0.1';
$DB['PORT'] = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'admin123';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Zabbix Sserver1';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
默認登陸用戶名密碼:admin/zabbix
修改密碼
image.png
image.png
設置好密碼后點擊update
Web頁面共有5個一級菜單
Monitoring #監控數據
Inventory #資產清單
Reports #生成的報告
Configuration #配置
Administration #管理zabbix
Zabbix 配置菜單:
主機組
主機
模板(template):快速定義被監控主機的各監控項的預設項目集合;
應用(application):同一類監控項的集合;
監控項(item)
key:實現獲取監控的目標上的數據的命令或腳本的名稱;
觸發器(trigger):表達式;PROBLEM, OK;
圖形(graph):用于展示歷史數據或趨勢數據的圖像;
聚合圖形(screen):由多個graph組成;
關聯事件(event):
動作(action):由條件(condition)和操作(operation)組件;
媒介(media):發送通知的通道;
通知(notification):
遠程命令(remote command):
報警升級():
配置zabbix server 自監控
修改Server端的zabbix_agentd.conf文件
[root@centos7.3 ~]#systemctl start zabbix-server #啟動zabbix-sever
[root@centos7.3 ~]#vim /etc/zabbix/zabbix_agentd.conf #需改agent配置文件
##### Passive checks related #修改被動監控配置段
Server=127.0.0.1,192.168.166.132 #允許哪些主機監控agent
##### Active checks related #主動監控配置段
ServerActive=127.0.0.1 #將監控數據發給那臺主機
啟動zabbix-agent
[root@centos7.3 ~]#systemctl start zabbix-agent #啟動agent
[root@centos7.3 ~]#ss -ntl #查看監聽的端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 *:3306 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 :::10050 :::*
LISTEN 0 128 :::10051 :::*
在web頁面上面啟用zabbix server 監控項
image.png
等待一會兒監控就有監控數據了,查看監控數據
image.png
image.png
監控agent端的配置:
安裝zabbix_agentd
yum install zabbix-agent-3.0.2-1.el7.x86_64.rpm zabbix-sender-3.0.2-1.el7.x86_64.rpm
配置文件:/etc/zabbix/zabbix_agentd.conf
############ GENERAL PARAMETERS #################
##### Passive checks related #被動監控相關配置
##### Active checks related #主動監控相關配置,agent端主動向server周期性發送數據;
############ ADVANCED PARAMETERS #################
####### USER-DEFINED MONITORED PARAMETERS ####### #用戶自定義參數
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######
修改配置agent配置文件
全局配置段
############ GENERAL PARAMETERS #################
EnableRemoteCommands=0 #是否允許Server端執行遠程命令
被動監控配置段
##### Passive checks related
Server=IP1, IP2, ... #運行采集數據的服務器
ListenPort=10050 #agent監聽的端口
ListenIP=0.0.0.0 #監聽的地址
StartAgents=3 #啟動agent進程數
主動監控配置端
##### Active checks related
ServerActive=IP1[:port], IP2[:port] #zabbix server 的地址
Hostname=Unique_HOSTNAME #Agent端在Server端的名稱;
啟動服務:
systemctl start zabbix-agent.service
在Server端添加agent主機并為主機套用模板
image.png
image.png