zabbix5.0 安裝部署與監控


zabbix5.0 監控服務搭建部署

zabbix相關介紹

Zabbix 是由 Alexei Vladishev 創建,目前是由 Zabbix SIA 在持續開發和提供支持。

Zabbix 是一種企業級的分布式開源監控解決方案。

Zabbix 是一款能夠監控眾多網絡參數和服務器的健康度和完整性的軟件。Zabbix 使用靈活的通知機制,允許用戶為幾乎任何事件配置基於郵件的警報。這樣可以快速相應服務器問題。Zabbix 基於存儲的數據提供出色的報告和數據可視化。這些功能使得 Zabbix 成為容量規划的理想選擇。

Zabbix 支持輪詢和被動捕獲。所有的 Zabbix 報告、統計信息和配置參數都可以通過基於 Web 的前端頁面進行訪問。基於 Web 的前端頁面確保您的網絡狀態和服務器健康狀況可以從任何地方進行評估。在經過適當的配置后,Zabbix 可以在監控 IT 基礎設施方面發揮重要作用。無論是對於擁有少量服務器的小型組織,還是擁有大量服務器的大型公司而言,同樣適用。

Zabbix 是免費的。Zabbix 是根據 GPL 通用公共許可證的第二版編寫和分發的。這意味着它的源代碼是免費分發的,並且可供公共使用。

zabbix5的版本具備哪些新特性
  1. 增加了監控項預測試功能
  2. 自動發現規則進行重新定義與延伸,支持過濾監控、觸發器、主機
  3. 監控項取值:256 上調到 2048
  4. MD5 指紋加密 改進為bcrypt 技術
  5. 不再支持ES7以前的版本
  6. 全面支持zabbix-agent2

LTS:線性發布版,穩定持續維護版本

標准版:類似小白鼠,不提供持續維護的

zabbix監控服務架構模型

snmp:zabbix監控網絡性能所依賴協議

IPMI:用於監控物理硬件性能指標,可以獲取物理設備的溫度、CPU溫度,風扇轉速

JMX:監控java項目所使用的出口。

SSH:支持ssh登陸的設備都能獲得到數據,比如交換機的、linux等等,但前提是設備有ssh功能。比如使用ssh方式收集linux的文件系統掛載情況

安裝部署zabbix監控架構
1) 部署環境
部署環境
系統 Centos7
web應用 Nginx
進程 php7.2
數據庫 maraiadb 5.5
2) 安裝部署服務端
# zabbix配置下載源
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 單獨配置前端源,並安裝
# 下載依賴
yum install centos-release-scl -y

# 安裝server服務
yum install zabbix-server-mysql -y

# 修改/etc/yum.repos.d/zabbix.repo 啟用zabbix前端倉庫
[root@zabbix-server /etc/yum.repos.d]# vim zabbix.repo 
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
# enabled=0 改成等於1啟用
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

# 安裝前端組件
yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y
3)准備數據庫環境

安裝數據庫mysql或則mariadb

# 安裝數據庫服務
yum install mariadb-server -y

# 啟動maraiadb-server
systemctl enable --now mariadb.service

[root@zabbix-server ]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> # 創建zabbix業務庫
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> # 授權zabbix用戶
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

# 查看zabbix-server-mysql相關文件
[root@zabbix-server ~]# rpm -ql zabbix-server-mysql 
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-5.0.14
/usr/share/doc/zabbix-server-mysql-5.0.14/AUTHORS
/usr/share/doc/zabbix-server-mysql-5.0.14/COPYING
/usr/share/doc/zabbix-server-mysql-5.0.14/ChangeLog
/usr/share/doc/zabbix-server-mysql-5.0.14/NEWS
/usr/share/doc/zabbix-server-mysql-5.0.14/README
/usr/share/doc/zabbix-server-mysql-5.0.14/create.sql.gz # zabbix初始化業務數據庫sql
/usr/share/doc/zabbix-server-mysql-5.0.14/double.sql
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

# 導入業務數據到zabbix庫
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.14/create.sql.gz | mysql zabbix 


配置服務端環境
1)配置zabbix_server連接數據庫
[root@zabbix-server ~]# egrep -v "^#|^$" /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
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
StatsAllowedIP=127.0.0.1
2)配置Nginx
# 查看zabbix-nginx相關配置文件
[root@zabbix-server ~]# rpm -ql zabbix-nginx-conf-scl 
/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf

# 編輯配置文件
[root@zabbix-server ~]# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf 

server {
        listen          80;
        server_name     test.zabbix.com;

        root    /usr/share/zabbix;

# 配置本地hosts文件
# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
192.168.15.200    test.zabbix.com

3) 配置php
[root@zabbix-server /etc/opt/rh/rh-php72/php-fpm.d]# cat zabbix.conf 
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai
4) 重啟服務
systemctl restart zabbix-server rh-nginx116-nginx.service rh-php72-php-fpm.service 

# 加入開機自啟
systemctl enable zabbix-server rh-nginx116-nginx.service rh-php72-php-fpm.service

在瀏覽器訪問當前部署的機子的ip地址或則本地解析的域名即可開始網頁安裝部署zabbix

配置web界面連接數據庫相關數據

設置zabbix監控項目名稱

確認配置信息

web界面配置成功

默認登陸賬號密碼

界面設置中文

zabbix-agent2 安裝部署

Zabbix-agent2 作為一款新的agent,未來可能會替代原有的agent。

特性:

  • 降低了TCP連接的數量
  • zabbix-agent2用go語言開發,集成了zabbix-agent原有的所有功能,並且易於通過插件擴展第三方功能。
安裝agent2
# 配置源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 下載
yum install zabbix-agent2 -y

配置文件解釋

Alias

key的別名,例如 Alias=ttlsa.userid: 
vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 
或者ttlsa的用戶ID。你可以使用key:
vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],
也可以使用ttlsa.userid。
# 備注: 別名不能重復,但是可以有多個alias對應同一個key。

AllowRoot

默認值:0
是否允許使用root身份運行zabbix,如果值為0,
並且是在root環境下,zabbix會嘗試使用zabbix用戶運行,
如果不存在會告知zabbix用戶不存在。
0 - 不允許
1 - 允許

BufferSend

#取值范圍:1-3600
#默認值:5
#數據存儲在buffer中最長多少秒

BufferSize

#取值范圍:2-65535
#默認值:100
#buffer最大值,如果buffer滿了,zabbix將會將檢索到的數據發送給zabbix server或者proxy

DebugLevel

#取值范圍:0-5
#默認值:3
#指定日志級別
0 - basic information about starting and stopping of Zabbix processes
1 - critical級別
2 - error級別
3 - warnings級別
4 - debug級別
5 - extended debugging (與級別4一樣. 只能使用runtime control 來設置.)

EnableRemoteCommands

#默認值:0
#是否運行zabbix server在此服務器上執行遠程命令
0 - 禁止
1 - 允許

HostMetadata

取值范圍:0-255 字符
僅用於主機自動注冊功能,如果當前值定義,
那么它的值默認為HostMetadataItem的值。這個選項在2.2.0之后加入,
並且確保支付不能超過限制,以及字符串必須是UTF8,否則服務器無法啟動
# 主機自動注冊的時候區分主機分類配置模板和監控項的依據 根據主機元數據不同分類監控模板設置
zabbix自動注冊請參考:zabbix客戶端自動注冊(84)

HostMetadataItem

功能同上,如果HostMetadata值未設置,
這個配置才有效。支持使用UserParameters、alias、system.run[]

Hostname

默認值:HostnameItem配置的值
主機名,必須唯一,區分大小寫。Hostname必須和zabbix web上配置的一直,
否則zabbix主動監控無法正常工作。為什么呢?因為agent拿着這個主機名去問server,
我有配置主動監控項 嗎?server拿着這個主機名去配置里面查詢,然后返回信息。
支持字符:數字字母、'.'、' '、 '_'、 '-',不超過64個字符

HostnameItem

默認值:system.hostname
設置主機名,只有當HostMetadata沒設置,她才生效。
不支持UserParameters 、aliases,支持system.run[]

Include

包含自配置文件,不同的配置寫到不同的文件中,
然后include,配置文件會顯得規范。
例如: /absolute/path/to/config/files/*.conf. Zabbix 2.4.0開始支持正則表達式。

ListenIP

#默認值:0.0.0.0
#監聽IP地址,默認為所有接口,多個ip之間使用逗號分隔

ListenPort

#取值范圍:1024-32767
#默認值10050
#監聽端口

LoadModule

#加載模塊文件,可以寫多個
#格式: LoadModule=
#必須配置LoadModulePath,指定模塊目錄
#zabbix模塊請參考:zabbix加載擴展模塊 第三方庫支持(92)

LoadModulePath

模塊路徑,絕對路徑,如上

更多參數說明如下

LogFile
#日志文件路徑
#如果未配置,日志會記錄到syslog中

LogFileSize
#取值范圍:0-1024
#默認值:1
#日志文件大小,單位為MB。
#0 - 關閉自動輪滾.
#備注:如果日志文件到達了最大值並且文件輪滾失敗,那么老日志文件會被清空掉。

LogRemoteCommands
#默認值:0
#記錄原型執行的shell命令日志,級別為warrning
0 - disabled
1 - enabled

MaxLinesPerSecond
#取值范圍:1-1000
#默認值:100
#處理監控類型為log何eventlog日志時,agent每秒最大發送的行數。默認為100行

zabbix日志監控請參考:zabbix監控日志文件 MySQL日志為例(95)

PidFile
#默認值:/tmp/zabbix_agentd.pid
PID文件名

RefreshActiveChecks
#取值范圍:60-3600
#默認值:120
#多久時間(秒)刷新一次主動監控配置信息,如果刷新失敗,那么60秒之后會重試一次

Server
#zabbix_agent2被動模式 zabbix_server配置自動發現客服端需要設置此ip


ServerActive
#zabbix_agent2主動模式連接 zabbix_server配置自動注冊客服端需要設置此ip

SourceIP
#zabbix對外連接的出口IP地址

StartAgents
#取值范圍:0-100
#默認值:3
#zabbix啟動之后開啟被動監控的進程數量,如果設置為0,那么zabbix被動監控被禁用,並且不會監聽相應端口,也就是說10050端口不會開啟。

Timeout
#默認值:1-30
#默認值:3
#超時時間

UnsafeUserParameters
#取值范圍:0,1
#默認值: 0
#允許所有字符的參數傳遞給用戶定義的參數。

User
#默認值:zabbix
#運行zabbix程序的用戶,如果AllowRoot被禁用,才有效果

UserParameter
#用戶自定義key,格式: UserParameter=,
#例如:serParameter=system.test,who|wc -l

zabbix 實戰應用詳解

web界面介紹:

主機-->監控項-->模板-->觸發器-->執行動作-->告警媒介

添加主機

客服端

vim /etc/zabbix/zabbix-agent2.conf
Server=服務端的ip

服務端web界面配置

zabbix服務端安裝測試命令zabbix_get
# 下載rpm
wget https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.14-1.el7.x86_64.rpm
# 安裝
[root@zabbix-server ~]# yum localinstall -y zabbix-get-5.0.14-1.el7.x86_64.rpm

zabbix 實現自動化監控

自動發現

zabbix-server 主動通過指定的某網段,進行掃描

1)添加自動發現規則

配置自動發現規則

2)添加自動發現動作

配置自動發現掃描到主機后觸發的動作

成功監測

自動注冊

zabbix-agent 主動找zabbix-server

1)配置zabbix客戶端

需要配置三個關鍵參數

  1. ServerActive
  2. 元數據
  3. hostname
[root@zabbix-agent1 ~]# egrep -v '^$|^#' /etc/zabbix/zabbix_agent2.conf
ServerActive=192.168.15.200 # 主動連接主機的IP地址
Hostname=zabbix-agent1 # 主機的名稱(web配置時需要一致)
HostMetadata=zabbix_agent_test # 主機源數據(區別不同的主機分類檢測)
2)web端添加相應策略

一切配置好后重啟下agent端加速檢測

zabbix-proxy分布式監控

應用場景:

  • 監控遠程區域設備
  • 監控本地網絡不穩定區域
  • 監控上千設備時,減輕 zabbix server 的負荷
  • 簡化分布式監控的維護

環境設置

主機名 主機 IP 功能
zabbix-server zabbix-server 192.168.15.200 zabbix服務端
zabbix-proxy zabbix-proxy 192.168.15.220 zabbix代理端
zabbix-agent1 zabbix-agent1 192.168.15.201 zabbix-agent客戶端
zabbix-agent2 zabbix-agent2 192.168.15.202 zabbix-agent客戶端
安裝代理服務
# 配置源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# 安裝
yum install zabbix-proxy -y
# 准備數據庫(部署方式和服務端一致)
安裝zabbix-proxy代理數據庫
# 安裝數據庫服務
yum install mariadb-server -y

# 啟動maraiadb-server
systemctl enable --now mariadb.service

[root@zabbix-server ]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> # 創建zabbix_proxy業務庫
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> # 授權zabbix_proxy用戶
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';
Query OK, 0 rows affected (0.00 sec)

# 查看zabbix-proxy-mysql相關文件
[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql 
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.14
/usr/share/doc/zabbix-proxy-mysql-5.0.14/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.14/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.14/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.14/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.14/README
/usr/share/doc/zabbix-proxy-mysql-5.0.14/schema.sql.gz # zabbix_proxy 初始化數據庫
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix


# 導入業務數據到zabbix庫
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.14/schema.sql.gz  | mysql zabbix_proxy 
配置代理服務參數
1. zabbix-proxy 指向服務端
	Hostname 指定的名稱一定要與web中創建的agent名相一致
[root@zabbix-proxy ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_proxy.conf 
ProxyMode=0 # 代理模式 0: 主動模式		1: 被動模式 默認被動模式
Server=192.168.15.200
Hostname=zabbix_proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

# 啟動並加入開機自啟
[root@zabbix-proxy ~]# systemctl enable --now zabbix-proxy.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.

2. 配置客戶端
	server指向proxy代理端
[root@zabbix-agent1 ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.15.220 # 被動模式上報的代理或則服務端ip
ListenPort=10050
ServerActive=192.168.15.220:10051 # 主動上報的ip地址
Hostname=zabbix_agent1 # 主機名稱web端配置需要跟agent端這個配置名稱一致
HostMetadata=zabbix_agent_test # 元數據 分類管理主機的依據
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock


[root@zabbix-agent2 ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.15.220 # 被動模式上報的代理或則服務端ip
ServerActive=192.168.15.220:10051 # 主動上報的ip地址
Hostname=zabbix_agent2  # 主機名稱web端配置需要跟agent端這個配置名稱一致
HostMetadata=zabbix_agent_test # 元數據 分類管理主機的依據
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

web界面配置

代理配置

查看代理端

日志報錯說明
# zabbix_agent2 報錯
2021/08/23 11:39:20.604932 [101] no active checks on server [192.168.15.220:10051]: host [zabbix_agent2] not found

# zabbix_proxy 報錯
3504:20210823:114053.613 cannot send list of active checks to "192.168.15.201": host [zabbix_agent1] not found

# zabbix_server 服務端報錯 
4526:20210823:113558.673 cannot parse proxy data from active proxy at "192.168.15.220": proxy "zabbix_proxy" not found

以上報錯直接忽略就好 因為web端還沒有監測到所以會報錯沒有找到 
解決辦法 web 成功檢測到代理端和主機客戶端並建立連接后  重啟下代理端和服務端報錯就解決了

添加主機

可以通過重啟客戶端或則agent端加速訪問


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM