第1章1zabbix快速入門

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

在開始以前,咱們仍是先統一下認識:要監控一個對象,須要掌握哪些東西呢?node

監控對象的理解要監控的對象你是否瞭解呢?好比CPU究竟是如何工做的?mysql

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

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

若是上述的條件不知足,那就先不要開始實施監控了,由於等作完了,你會發現,然並卵?sql

1.1Zabbix安裝前準備

主機名shell

IP地址數據庫

描述vim

版本瀏覽器

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

1-1

確保全部軟件先決條件。如圖1-2

1-2

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

1-3

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

1-4

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

1-5

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

1-6

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

 

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

1-8

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

1-9

相關文章
相關標籤/搜索