配置前已將 zabbix 的 web 網頁部署完成
第一次登錄頁面后,頁面首頁為英文,並且不可用主機為1,原因是部署 zabbix 的主機沒有安裝 zabbix-agent
首先將 zabbix 界面的語言切換至中文,然后在 zabbix 主機上安裝 zabbix-agent2
[root@zabbix-test ~]# yum -y install zabbix-agent2
安裝后啟動並設置下次開機啟動 zabbix-agent2
[root@zabbix-test ~]# systemctl enable zabbix-agent2 --now
此時 zabbix 已經通過 agent2 監控到本機
添加其它監控主機,此處以我的 k8s-master 節點為例
先在 master 節點上安裝 zabbix-agent2,然后修改代理的配置文件
[root@master ~]# yum -y install zabbix-agent2
配置文件中我們只將 Server 和 ServerActive 改為監控節點的IP地址(Server 表示允許哪個主機到我這里獲取數據, ServerActive 表示主動向哪個主機發送數據)
Server 為被動模式,ServerActive 為主動模式。主動模式和被動模式可同時開啟並指向同一個 IP
然后在配置中找到主機選項
點進去后右上角有創建主機選項
主機和模板必填,模板選擇如上所示模板,然后點擊添加
添加后在 zabbix server 端重啟 zabbix 服務
[root@zabbix-test ~]# systemctl restart zabbix-server
此時,儀表盤頁面可用主機已變成兩個
然后給 zabbix server 端創建監控項,一個監控項即為一個監控指標
[root@zabbix-test ~]# vim /etc/zabbix/zabbix_agent2.conf
找到 Userparameter 參數,如下所示,下圖告訴你該如何自定義監控項
Include 表示的文件為自定義監控項的配置文件
我們進到此目錄下,發現該目錄下是空的,然后我們自定義一個 conf 后綴結尾的配置文件
[root@zabbix-test ~]# cd /etc/zabbix/zabbix_agent2.d/
[root@zabbix-test zabbix_agent2.d]# ll
total 0
[root@zabbix-test zabbix_agent2.d]# vim monitor.conf
[root@zabbix-test zabbix_agent2.d]# cat monitor.conf
UserParameter=sda_tps,iostat |awk '$1 ~/sda/{print $2}'
我們定義一個參數來監控 sda 磁盤的每秒傳輸次數,前提 zabbix 被監控端得有 iostat 命令
自定義一個監控項后記得重啟 zabbix-agent2 服務
[root@zabbix-test zabbix_agent2.d]# systemctl restart zabbix-agent2
然后我們安裝一個 zabbix 取監控項的值的命令
[root@zabbix-test zabbix_agent2.d]# yum -y install zabbix-get
我們通過 zabbix_get 查看 sda_tps 的 key 是否能取到值
[root@zabbix-test zabbix_agent2.d]# zabbix_get -s 127.0.0.1 -k sda_tps
11.16
可以取到值后我們在 zabbix 的 web 頁面給 zabbix 監控端添加 sda_tps 這個監控項
依然在配置里點擊主機,然后找到監控項
在右上角點擊創建監控項
名稱在這里我們可以選擇中文,鍵值就填我們之前自定義的鍵值,信息類型因為我們之前取到的值為浮點數,所以這里我們選擇浮點數,更新間隔可自定義,在這里我們定義間隔為10秒,應用集我們可以選擇添加新應用集,也可以將此監控項添加到已有的應用集中,為的是方便我們后面的 grafana 監控繪圖
添加后我們在左側選項欄中找到監測-->最新數據,可以查看是否監測到我們新添加的監控項
如上圖所示,我們監控到最近數據,並且在右邊還可以查看對應的圖形
同時,我們已可以將此監控項復制給我們的 k8s-master 節點
我們在配置-->主機--> zabbix server 的監控項里找到我們新添加的監控項選中復制給我們的 k8s-master 節點
當然,我們后續也可以創建主機群組,將監控項復制給主機群組
復制后,我們在我們的 k8s-master 節點編輯我們的配置文件
然后重啟我們 master 節點的 agent2 服務
[root@master ~]# systemctl restart zabbix-agent2
此時,我們再點擊監測-->最新數據,此時兩台機器都已監控到我們自定義的監控項
添加觸發器
點擊配置-->主機,然后點擊觸發器
右上角創建觸發器
此處我們以之前創建的監控項為例,創建一個 sda 磁盤每秒傳輸速度過高的觸發器
允許手動關閉可根據情況選擇是否開啟,創建后如果我們 zabbix server 端的 sda 磁盤的傳輸速度大於8,則在儀表盤界面就能看到告警信息
觸發器我們同樣可以通過復制監控項的方法復制給我們的 k8s-mater 節點,此處不再舉例
然后我們配置郵箱告警,即當 zabbix server 端發現告警時可通過郵箱發送給自己
點擊配置-->動作,將可發送消息狀態改為啟用
然后點擊管理-->告警媒介類型,右上角點擊創建媒體類型
SMTP 服務下面有介紹在哪查看,SMTP 服務器端口可選擇 465 或 25,SMTP HELO 填 SMTP 服務器的后半部分,SMTP 電郵則為發件人,SSL/TLS 用 QQ 郵箱作為告警媒介時一定要勾選
認證選擇用戶名和密碼,用戶名稱為發件人的郵箱,密碼為 QQ 郵箱的授權碼。注:不是你的 QQ 郵箱密碼,授權碼下面有介紹從哪獲得
在 QQ 郵箱中點擊設置-->賬戶
找到 SMTP 服務,並點擊"什么是IMAP,它又如何設置?"
找到發送郵件服務器的域名
然后點擊 User settings -->報警媒介,添加收件人
類型選擇我們剛創建的 QQ 郵箱告警,收件人自己定義,當啟動時和哪種嚴重性發送郵件都可自定義
添加完后記得點擊更新
報警媒介定義成功后,當 zabbix 出現告警時會通過郵件的形式發送到收件人的郵箱
接下來,我們通過安裝 grafana 插件來對我們定義的監控項進行繪圖
在 grafana 官網根據相應的 Linux 發行版本找到軟件包,此文以 grafana-7.5.8 為例
將命令復制粘貼到終端,然后啟動 grafana 服務
[root@zabbix-test ~]# systemctl enable grafana-server --now
此時查看 grafana 服務監聽的端口
如上所示,監聽 3000 端口,因此我們用 zabbix server 端 IP 加 3000 端口即可訪問 grafana 頁面
grafana 的登錄界面如下所示
默認登錄的 username 和 password 都為 admin
第一次登錄會讓你修改登錄密碼,當然也可以任性跳過
登錄后
搜索 zabbix 發現搜不到
原因是沒有安裝 zabbix 的插件
因此接下來我們安裝插件並重啟 grafana 服務
[root@zabbix-test ~]# systemctl restart grafana-server
然后重新在插件頁面搜索 zabbix
此時已有 zabbix
點擊 zabbix 並啟動
然后添加數據源
搜索 zabbix
基礎認證打開,然后用戶名和密碼都是 zabbix 登錄頁面的賬號和密碼
信息無誤后,顯示如下所示
然后創建一個儀表盤
將我們創建的監控項添加上去