第1章zabbix快速入門

注意:本文不涉及性能測試、性能優化中的監控,所有文字的出發點都是日常運維監控。

在開始之前,我們還是先統一下認識:要監控一個對象,需要掌握哪些東西呢?

監控對象的理解要監控的對象你是否瞭解呢?比如CPU到底是如何工作的?

監控對象的指標:我們要監控這個東西的什麼屬性?比如CPUCPU使用率、負載、上下文切換。

確定報警基準線:怎麼樣纔算是故障,要報警呢?比如CPU的負載到底多少算高?

如果上述的條件不滿足,那就先不要開始實施監控了,因爲等做完了,你會發現,然並卵?

1.1Zabbix安裝前準備

主機名

IP地址

描述

版本

linux-node1.com

192.168.90.11

Zabbix-Server

CentOS7

linux-node2.com

192.168.90.12

Zabbix-Proxy

CentOS7

1.2Server服務端安裝配置

1.2.1zabbix-Server安裝

Zabbix3整個web界面做了一個全新的設計。

Zabbix存儲配置包以及yum配置文件。

[root@linux-node1 ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

Zabbix程序包安裝,以及MySQLZabbix-agent

[root@linux-node1 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server

創建Zabbix數據庫以及用戶。對這樣的說明,參考MySQL數據庫創建腳本

[root@linux-node1 ~]# mysql -uroot -p

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

Query OK, 0 rows affected (0.00 sec)

導入初始模式和數據

[root@linux-node1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.3/

[root@linux-node1 zabbix-server-mysql-3.0.3]# zcat create.sql.gz |mysql -uroot zabbix

編輯Zabbix_server.conf數據庫配置

[root@linux-node1 ~]# grep  ^[a-Z]  /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

Timeout=4

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

LogSlowQueries=3000

啓動Zabbix服務進程

[root@linux-node1 ~]#  systemctl start zabbix-server

Apache的配置文件/etc/httpd/conf.d/zabbix.conf默認PHP已經配置好了。取消註釋,設置正確的時區

[root@linux-node1 ~]# vim /etc/httpd/conf.d/zabbix.conf

php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value always_populate_raw_post_data -1

php_value date.timezone Asia/Shanghai

通過改變配置文件重新啓動Apache Web服務器

[root@linux-node1 ~]# systemctl start httpd

1.2.2配置Web界面

在你的瀏覽器,打開網址http://Zabbix_server_ip/zabbix

你應該看到的web安裝嚮導的第一個屏幕,如圖1-1

image.png

1-1

確保所有軟件先決條件。如圖1-2

image.png

1-2

輸入連接到數據庫詳細信息。Zabbix數據庫必須已經創建好。如圖1-3

image.png

1-3

連接Zabbix服務細節,如果沒有改變可選擇默認如圖1-4

image.png

1-4

回顧一個設置概要,如圖1-5

image.png

1-5

完成安裝,會在/etc/zabbix/web/zabbix.conf.php生成配置文件。如圖1-6

image.png

1-6

Zabbix登陸準備。 默認的用戶名/密碼爲Admin/zabbix。如圖1-7

 

image.png

1-7

1.3Agent客戶端安裝配置

Zabbix可以用Agent/Server的架構,客戶端的採集方式分爲AgentSNMP等,通常情況都是使用Agent方式對服務器進行監控,後續再學習使用其他監控方式(SNMPJMXIPMI

1.3.1zabbix-Agent安裝

安裝zabbix-agent使用yum即可.agent版本可以低於Server版)

[root@linux-node2 ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

[root@linux-node2 ~]# yum install zabbix-agent -y

1.3.2zabbix-Agent配置

配置AgentServer間通過Zabbix私有協議通信,需要了解主動模式和被動模式:

Server被動模式:Server端主動向Agent採集數據。(1000臺機器以內機器推薦使用)

ServerActive主動模式:Agent主動像Server端發送數據。(1000臺以上機器推薦使用)

[root@linux-node2 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.90.11#g' /etc/zabbix/zabbix_agentd.conf #修改被動模式監聽地址爲zabbix-serverIP地址

[root@linux-node2 ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agentd.conf #查看修改後信息

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=192.168.90.11  #被動模式 zabbix-serverIPAgent可以有多個Ip 用於向多個Master發送數據)

ServerActive=127.0.0.1  #主動模式(Agent自動像Server發送數據)

Hostname=linux-node2.com

Include=/etc/zabbix/zabbix_agentd.d/

1.4zabbix配置文件

Zabbix的配置雖然不是很複雜,但有的配置參數很難用上,接下來就針對ZabbixServerZabbixAgent的配置文件,對其每個參數進行介紹,不求大家都深入瞭解,但是希望大家通過對本小結的學習知道每個參數是幹什麼用的。

1.4.1Zabbix_server.conf

Zabbix_Server很顯然這個是server的配置文件,參數具體作用如下1-1表格列出

參數名稱

是否必

認值

ListenPort

10050

TrapperItem監聽的端口

SourceIP

在連接其他服務器時,使用的本機IP地址

LogType

file

syslog #日誌

file #指定日誌文件位置(指定位置方便管理)

console #輸出至屏幕

LogFile

/var/log/zabbix/zabbix_server.log

LogType設置file,使用文件來記錄zabbixserver日誌位置

LogFileSize

1

0表示禁用日誌自rotation,如果日誌達到了限制,並且rotation,老日誌文件將會被清空掉,重新生成一個新日誌

DebugLevel

3

0 - 有關的zabbix過程的啓動和停止的基本信息

1 - 信息

2 - 錯誤信息

3 - 警告

4 - 用於調試生大量的信息)

5 - 擴展調試(產生更多的信息

PidFile

/var/run/zabbix/zabbix_server.pid

記錄Zabbix Server pid的文件位置

DBHost

localhost

ZabbixServer數據庫位置,設置localhost默認使用MySQL端口

DBName

zabbix

數據庫名稱

DBScheme

IBM DB2或者PostgreSQL生效

DBUser

zabbix

數據庫用戶

DBPassword

數據庫密碼

DNSocket

/tmp/mysql.sock

MySQL Socket文件

DBPort

3306

MySQL端口

StartPollers

5

pollers進程數,可以簡單理解爲zabbix工作的一個worker

StartIPMIPollers

0

IPMIPollers程數

StartPollersUnreachable

1

檢查unreachable hosts(包括IPMI)進程數

StartTrappers

5

Trappers程數

StartPingers

1

用於discoverdiscoverer進程數

StartHTTPPollers

1

用於HTTP檢查的進程數

StartTimers

1

Timers的進程數

StartEscalators

1


JavaGateway

Zabbix Java gateway使用的IP或者hostname

JavaGatewayPort

10052

Java gateway使用的端口

StartJavaPollers

0

Java pollers的進程數

StartVMwareCollectors

0

Vmware poller的進程數

VMwareFrequency

60

ZabbixVmware獲取監控指的頻率,單位是秒

VMwarePerfFrequency

60

多久Zabbix會連接到VMware服務獲取性能數據

VMwareCacheSize

8M

Vmware的緩存,存儲Vmware數據的共享內存大小,只有當Vmware collectors啓動生效

VMwareTimeout

10

Vmware的超時時間

SNMPTrapperFile

/var/log/snmptrap/snmptrap.log

SNMP設備將在數據發送到Server前會將SNMP數據存在文件中

StartSNMPTrapper

0

SNMPTrapper開始

ListenIP

0.0.0.0

Trappers監聽的IP

HousekeepingFrequency

1

Zabbix執行Housekeeper的頻率

MaxHousekeeperDelete

5000

Zabbix數據庫中,有一張housekeeper表,裏面記錄了housekeeper要執行的任務

SenderFrequency

30

Zabbix發送報警的時間間隔

CacheSize

8M

存儲HostItemTrigger數據的內存空間

CacheUpdateFrequency

60

將配置信息同步到內存中的頻率

StartDBSyncers

4

將數據同步到數據庫的內存大小

HistoryCacheSize

16M

存儲History數據的內存大小

HistoryIndexCacheSize

4M

歷史索引緩存大小

TrendCacheSize

4M

存儲Trends數據的內存大小

ValueCacheSize

8M

歷史值緩存大小,0不緩存

Timeout

4

Zabbix等待AgentSNMP設備或者自定義腳本的執行時間

TrapperTimeout

300

Trapper處理新數據的超時時間

UnreachablePeriod

45

host保持unreachable狀態後多久將其標記爲unreachable狀態

UnavailableDelay

60

Hostunabailable狀態時,檢查Hostavailability的頻率

UnreachableDelay

15

Hostunabailable狀態時,檢查Hostavailability的頻率

AlertScriptsPath

/usr/lib/zabbix/alertscripts

自定義報警腳本的位置

ExternalScripts

/usr/lib/zabbix/externalscripts

自定義監控腳本的位置

FpingLocation

/usr/sbin/fping

fping位置,fping可執行文件的owner要設置爲root,並且設置suid

Fping6Location

/usr/sbin/fping6

同上。可以處理IPV6

SSHKeyLocation

使用SSH檢查和action所需要的SSH公鑰、私鑰位置

LogSlowQueries

3000

記錄數據慢查詢,只有設置爲3或者4纔會生效。0默認關閉

TmpDir

/tmp

臨時文件目錄

StartProxyPollers

1

被動Proxypoller進程數

ProxyConfigFrequency

3600

Zabbix Server將配置信息同步到Proxy的頻率,這個參數只對被動的Proxy生效

ProxyDataFrequency

1

ZabbixServer請求Proxy歷史數據的頻率。這個參數只對被動的Proxy生效

AllowRoot

0

是否允許Serverroot身份運行。0表示不允許,1表示允許。

User

zabbix

下降到特定用戶權限

Include

指定存放自定義監控的文件位置

SSLCertLocation

${datadir}/zabbix/ssl/certs

SSL 證書的位置(此參數只用於web監控)

SSLKeyLocation

${datadir}/zabbix/ssl/keys

鑰爲 SSL 證書

SSLCALocation

SSL 服務器證書驗證的證書機構 CA文件的位置此參數只用於 web 監測和 SMTP 身份驗證)

LoadModulePath

{libdir}/modules

loadable組件的位置

LoadModule

需要Server載入的loadable組件,格式爲LoadModule=<module.so>

TLSCAFile

頂級CA證書的文件

TLSCRLFile

吊銷證書文件路徑

TLSCertFile

服務器證書或證書鏈的文件

TLSKeyFile

服務器專用密鑰的文件

 

1.4.2Zabbix_agentd.conf

參數名稱

是否必

認值

PidFile

/var/run/zabbix/zabbix_agentd.pid

記錄Zabbix Agent pid的文件位置

LogType

  file

syslog #日誌

file #指定日誌文件位置(指定位置方便管理)

console #輸出至屏幕

LogFile

/var/log/zabbix/zabbix_agentd.log

LogType設置file,使用文件來記錄zabbixserver日誌位置

LogFileSize

0

0表示禁用日誌自rotation,如果日誌達到了限制,並且rotation,老日誌文件將會被清空掉,重新生成一個新日誌。

DebugLevel

3

0 - 有關的zabbix過程的啓動和停止的基本信息

1 - 信息

2 - 錯誤信息

3 - 警告

4 - 用於調試生大量的信息)

5 - 擴展調試(產生更多的信息

SourceIP

對外發起網絡時使用的IP

EnableRemoteCommands

0

是否允zabbixserver控制agent行命令。0表示不允1表示允

LogRemoteCommands

0


Server

127.0.0.1

ZabbixServerIP或者主機名。ZabbixAgent只會接受來自IP或者主機名。如果有多個可以使用逗號分割

ListenPort

10050

ZabbixAgent聽的端口

ListenIP

0.0.0.0

ZabbixAgent聽的IP

StartAgents

3

理被動檢查的Zabbix_agentd數。如果設置爲0,那麼這個Agent的被動檢查功能將禁止。Agent不會監聽在所有的TCP端口

ServerActive

127.0.0.1

Zabbix模式(動發送採集數據ZabbixServer)

Hostname

運行ZabbixAgentdhostname。必server中配置的hostname相同(不寫是主機名)

HostnameItem

system.hostname

如果Hostname空,會候用個參數定keyHostname,比如默system.hostnameZabbixKey

HostMetadata

host autho-registration中使用。如果超255個字符。Agent報錯。如果沒有置,那麼會從HostMetadataItme個參數中

HostMetadataItem

使用一個kethost metadate

RefreshActiveChecks

120

主動檢查項目列表刷新的時間

BufferSend

5

buffer存多少秒的數據

BufferSize

100

在內存buffer存數據的最大個數,當buffer中的數據個數達到最大後,會將數據送到server或者Proxy

MaxLinesPerSecond

20

loglogrt型的item個參數定了每秒server或者Proxy的最大行數。

Timeout

3

理數據的超時時間

AllowRoot

0

是否允許Serverroot身份運行。0表示不允許,1表示允許。

User

zabbix

下降到特定用戶權限

Include

/etc/zabbix/zabbix_agentd.d/

指定存放自定義監控的文件位置推薦:/etc/zabbix/zabbix_agentd.d/*.conf

UnsafeUserParameters

0

在用自定parameter中,所有的參數都會傳遞給腳本

UserParameter

自定腳本的parameterparameterkey和腳本的對應關係。格式UserParameter=<key>,<shell command>

LoadModulePath

${libdir}/modules

loadable組件的位置

LoadModule

需要Server載入的loadable組件,格式爲LoadModule=<module.so>

TLSConnect

unencrypted

接不加密

TLSAccept

unencrypted

接受不加密的

TLSCAFile

頂級CA證書的文件

TLSCRLFile

吊銷證書文件路徑

TLSServerCertIssuer

TLS證書籤發

TLSServerCertSubject

證書

TLSCertFile

服務器證書或證書鏈的文件

TLSKeyFile

服務器專用密鑰的文件

TLSPSKIdentity

共享密區分大小寫字符串

TLSPSKFile

共享密文件路徑

1.5zabbix宏的概述

宏的作用是便於在模板、ItemsTrigger中的引用

Zabbix有許多內置的宏,如{HOST.NAME}{HOST.IP}{TRIGGER.NAME}

詳細信息請參考官方文檔: https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location

爲了更強的靈活性,Zabbix還支持全局宏-模板宏-主機宏級別使用用戶自定義宏(user macro),用戶自定義宏要使用”{$MACRO}”這種特殊的語法格式宏的名稱只能使用大寫字母、數字及下劃線

宏可以應用在item keysdescriptionsTrigger名稱和表達式、主機接口IP/DNS及端口、discovery機制的SNMP協議的相關信息中等。

1.5.1宏的替換次序

首先是主機級別的宏;其次是當前主機上一級模板中(直接鏈接至主機的模板)的宏,多個一級模板按其ID號排序;

再接着是二級模板中的宏;而後依次類推;最後檢查的是全局宏;

Zabbix如果無法查找到某主機定義使用的宏,則不會對其進行替換操作。要使用用戶自定義宏,有以下兩種途徑:

全局宏:AdministrationGeneralMacros

主機或模板級別的宏:編輯相應主機或者模板的屬性即可

1.5.2宏的使用示例

在主機級別定義一個名爲{$NETWORK_NUMBER}的宏,以定義當前主機所接受的網卡進口流量的合理大小(當然這裏值根據具體情況來做,僅供一個參考)如圖1-8、圖1-9

image.png

1-8

而後在主機的triggers中使用此宏

image.png

1-9


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章