監(jiān)控zabbix的安裝與使用教程
1.zabbix的安裝步驟
使用centos8安裝zabbix6.0過程
安裝epel源
[root@zabbix ~]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
安裝zabbix的repo源
[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-5.el8.noarch.rpm [root@zabbix ~]# yum clean all [root@zabbix ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
安裝數(shù)據(jù)庫并啟動
[root@zabbix ~]# yum install mysql-server.x86_64 -y [root@zabbix ~]# systemctl enable --now mysqld
創(chuàng)建用戶
[root@zabbix ~]# mysql mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by '123456'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> quit;
導入數(shù)據(jù)
[root@zabbix ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p123456 zabbix [root@zabbix ~]# mysql mysql> set global log_bin_trust_function_creators = 0; mysql> quit;
修改配置文件
[root@zabbix ~]# sed -i "s/# DBPassword=/DBPassword=123456/" /etc/zabbix/zabbix_server.conf
安裝中文語言包
[root@zabbix ~]# yum install langpacks-zh_CN.noarch -y
在配置文件中將該兩行取消注釋
[root@zabbix ~]# vim /etc/nginx/conf.d/zabbix.conf # listen 8080; # server_name example.com;
設(shè)為開機自啟
[root@zabbix ~]# systemctl restart zabbix-server zabbix-agent nginx php-fpm
訪問ip:8080
系統(tǒng) | 名稱 | ip |
---|---|---|
centos8 | zabbix-server | 10.76.0.246 |
centos8 | zabbix-proxy | 10.76.0.182 |
centos8 | zabbix-client1 | 10.76.0.184 |
centos8 | zabbix-client2 | 10.76.0.180 |
2.zabbix的主動模式和被動模式簡介及實現(xiàn)
Zabbix默認是被動模式,被動模式需要 Zabbix Server找 Zabbix Agent要數(shù)據(jù)。
主動模式是Zabbix Server給 Zabbix Agent發(fā)送一個監(jiān)控項的任務(wù)清單,Zabbix Agent根據(jù)任務(wù)清單,采集好監(jiān)控項的值,主動匯報給 Zabbix Server這100個監(jiān)控項,Zabbix Agent主動模式只需要發(fā)送一次數(shù)據(jù),大大提高了傳輸效率。
主動模式步驟:Server打開一個TCP連接,Server發(fā)送請求agent.ping,Agent接收到請求并進行響應(yīng),Server處理接收到的數(shù)據(jù),關(guān)閉TCP連接
被動模式步驟:zabbix agent 首先向ServerActive配置的IP請求獲取active items,獲取并提交active items數(shù)據(jù)值給server或者proxy。被動模式是指 zabbix agent 被動的接受zabbix server(或者Zabbix Proxy)周期性發(fā)送過來的數(shù)據(jù)收集指令此為默認的工作方式。在被動模式之下,zabbix server會根據(jù)主機關(guān)聯(lián)的模板中的監(jiān)控項和數(shù)據(jù)采集間隔時間,周期性的打開隨機端口并向zabbix agent服務(wù)器的10050端口發(fā)起tcp連接,然后發(fā)送獲取監(jiān)控項數(shù)據(jù)的指令。
被動模式的優(yōu)點就是配置簡單,安裝后即可使用,因此也成為zabbix的默認工作模式,但是被動模式的最大問題就是會加大zabbix server的 負載,在數(shù)百甚至數(shù)千臺服務(wù)器的環(huán)境下會導致zabbix server需要輪訓向每個zabbix agent發(fā)送數(shù)據(jù)采集指令,如果zabbix server負載過高還會導致不能及時獲取到最新數(shù)據(jù)被動模式因為性能的原因,一臺 Zabbix Server 一般只能監(jiān)控500臺以下的主機,更多的主機建議使用主動模式。默認是被動模式,在被監(jiān)控的主機上安裝zabbix-agent并啟動上添加主機并進行關(guān)聯(lián)就可以。
被動模式只需要配置該行
[root@client ~]#vim /etc/zabbix/zabbix_agentd.conf Server=10.76.0.246 #被動模式指向Zabbix Server的IP或FQDN
主動模式實現(xiàn)修改一下配置
[root@client ~]#vim/etc/zabbix/zabbix_agentd.conf Server=10.76.0.246 #被動模式指向Zabbix Server的IP或FQDN ServerActive=10.76.0.246 #主動模式指向Zabbix Server的IP或FQDN Hostname=10.76.0.184 #當前主機的IP
3.zabbix proxy主動及被動
主動模式,Zabbix Proxy 會主動向 Zabbix Server 發(fā)送監(jiān)控數(shù)據(jù)。這意味著代理程序定期檢查預先定義的監(jiān)控項,并將結(jié)果直接發(fā)送到服務(wù)器。
**特點:**數(shù)據(jù)推送:代理程序主動將數(shù)據(jù)發(fā)送給服務(wù)器。減少服務(wù)器負載:由于代理主動發(fā)送數(shù)據(jù),減少了服務(wù)器端的查詢負擔。網(wǎng)絡(luò)問題敏感:如果網(wǎng)絡(luò)有問題或者代理無法連接到服務(wù)器,可能會導致數(shù)據(jù)丟失。適用于大量數(shù)據(jù):適合于需要頻繁發(fā)送大量數(shù)據(jù)的情況。
被動模式 :被動模式則是 Zabbix Server 定期向 Proxy 請求數(shù)據(jù)。在這種模式下,Proxy 不會主動發(fā)送數(shù)據(jù);相反,它等待服務(wù)器的請求并響應(yīng)這些請求。
**特點:**數(shù)據(jù)拉取:服務(wù)器向 Proxy 請求數(shù)據(jù)。保證數(shù)據(jù)完整性:即使在網(wǎng)絡(luò)不穩(wěn)定的情況下也能保證數(shù)據(jù)被收集。增加服務(wù)器負載:服務(wù)器需要定期向每個 Proxy 發(fā)起請求。適用于關(guān)鍵數(shù)據(jù):適合于需要確保數(shù)據(jù)完整性和可靠性的場景。
zabbix-proxy安裝 [root@zabbix-proxy ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-5.el8.noarch.rpm [root@zabbix-proxy ~]# yum clean all [root@zabbix-proxy ~]# dnf install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy 數(shù)據(jù)庫 [root@zabbix-proxy ~]# mysql mysql> create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by '123456'; mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> quit; 導入初始架構(gòu)和數(shù)據(jù),系統(tǒng)將提示您輸入新創(chuàng)建的密碼。 [root@zabbix-proxy ~]# cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p123456 zabbix_proxy [root@zabbix-proxy ~]# mysql mysql> set global log_bin_trust_function_creators = 0; mysql> quit; 主動模式實現(xiàn) [root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf ProxyMode=0 #主動模式為0,被動模式為1,默認為0即主動模式 Server=10.76.0.246 #指向Zabbix Server Hostname=zabbix-proxy #該名稱要與Web管理頁的agent代理程序名稱相同 DBHost=localhost #MySQL服務(wù)器地址 DBName=zabbix_proxy #MySQL數(shù)據(jù)庫名 DBUser=zabbix #連接MySQL的用戶 DBPassword=123456 #連接MySQL的用戶密碼 被動模式 [root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf ProxyMode=1 #0為主動,1為被動,此為默認 server=10.76.0.246 #zabbix server服務(wù)器的地址 Hostname=zabbix-proxy #agent代理程序名稱相同 DBHost=localhost #數(shù)據(jù)庫服務(wù)器地址 DBName=zabbix_proxy #數(shù)據(jù)庫庫名稱 DBUser=zabbix #連接數(shù)據(jù)庫的用戶名稱 DBPassword=123456 #數(shù)據(jù)庫用戶密碼
4.自定義監(jiān)控,監(jiān)控linux和連接狀態(tài),創(chuàng)建email進行基礎(chǔ)報警
[root@zabbix-server ~]# cat /etc/zabbix/zabbix_agentd.d/test.conf UserParameter=root_filesystem_use,df|awk -F' +|%' '$7 == "/" {print $5 }' UserParameter=tcp_status_estab,ss -ant|grep -c ESTAB #客戶端測試 [root@client1 ~]# zabbix_agent -t root_filesystem_use [root@client1 ~]# zabbix_agent -t tcp_status_estab #重啟服務(wù)后服務(wù)器端才能獲取數(shù)據(jù) [root@client1 ~]# systemctl restart zabbix-agent.service #服務(wù)器端測試 [root@zabbix-server ~]#yum -y install zabbix-get [root@client1 ~]# systemctl restart zabbix-agent.service [root@zabbix-server ~]#zabbix_get -s 10.76.0.184 -p 10050 -k "root_filesystem_use" [root@zabbix-server ~]#zabbix_get -s 10.76.0.184 -p 10050 -k "tcp_state_estab"
- qq開啟SMTP功能,并獲取授權(quán)碼
- 創(chuàng)建告警媒介
5.部署zabbix agent腳本,適配rocky和ubuntu系統(tǒng)
#!/bin/bash url="https://repo.zabbix.com/zabbix/6.0" SERVER="10.76.0.246" HOST=`hostname -I` . /etc/os-release if [ $ID = "rocky" $ID = "centos" ];then rpm -Uvh $url/rhel/$VERSION_ID/x86_64/zabbix-release-6.0-5.el8.noarch.rpm yum clean all && yum install zabbix-agent -y sed -i "s/Server=127.0.0.1/Server=$SERVER/" /etc/zabbix/zabbix_agentd.conf sed -i "s/# Hostname=Zabbix Server/Hostname=$HOST/" /etc/zabbix/zabbix_agentd.conf elif [ $ID = ubuntu ]; then wget $url/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb apt update && apt install zabbix-agent -y sed -i "s/Server=127.0.0.1/Server=$SERVER/" /etc/zabbix/zabbix_agentd.conf sed -i "s/# Hostname=/Hostname=$HOST/" /etc/zabbix/zabbix_agentd.conf else echo "你的系統(tǒng)不是redhat和ubuntu系列的,請檢查您的系統(tǒng)版本!" exit 1 fi systemctl start zabbix-agent && systemctl enabled zabbix-agent
6.使用腳本,基于zabbix api添加zabbix agent到zabbix web
#!/bin/bash zabbix_server="10.76.0.246" HOST="10.76.0.184" #獲取TOKEN值并賦予變量 TOKEN=$(curl -s -XPOST -H "Content-Type: application/json-rpc" -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "username": "Admin", "password": "zabbix" }, "id": 1 }' "http://${zabbix_server}/api_jsonrpc.php" | jq -r .result) curl -s -X POST -H "Content-Type: application/json-rpc" -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "'$HOST'", "name": "'linux-$HOST'", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "'$HOST'", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "2" } ], "templates": [ { "templateid": "10001" } ] }, "id": 1, "auth": "'$TOKEN'" }' http://${zabbix_server}/api_jsonrpc.php | python3 -m json.tool
7.使用granfana構(gòu)建監(jiān)控圖形。
使用grafana構(gòu)建監(jiān)控網(wǎng)絡(luò)設(shè)備的圖形
相關(guān)文章
Linux shell環(huán)境下Zabbix Api的使用
今天小編就為大家分享一篇關(guān)于Linux shell環(huán)境下Zabbix Api的使用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02Zabbix實現(xiàn)批量監(jiān)控端口狀態(tài)的方法
在監(jiān)控生產(chǎn)環(huán)境的服務(wù)的時候,通常需要對多個端口進行監(jiān)控,如果我們手動一個一個的添加,這將是一件很麻煩的事情,為了減少這樣的情況,我們采用批量添加監(jiān)控端口的方法,下面小編給大家?guī)砹藌abbix批量監(jiān)控端口狀態(tài)的方法,一起看看吧2018-01-01zabbix6.0LTS 配置proxy分布式監(jiān)控的過程詳解
zabbix_proxy必須要安裝一個數(shù)據(jù)庫.zabbix官網(wǎng)推薦使用mariadb數(shù)據(jù)庫,本人嘗試過使用mysql8.0,這篇文章主要介紹了zabbix6.0LTS 配置proxy分布式監(jiān)控,需要的朋友可以參考下2023-07-07手把手教你zabbix5.0監(jiān)控redis7的過程
這篇文章主要介紹了手把手教你zabbix5.0監(jiān)控redis7的過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友跟隨小編一起看看吧2023-10-10kubernetes集群搭建Zabbix監(jiān)控平臺的詳細過程
Zabbix是一個基于Web界面的分布式系統(tǒng)監(jiān)控的企業(yè)級開源軟件??梢员O(jiān)視各種系統(tǒng)與設(shè)備的參數(shù),保障服務(wù)器及設(shè)備的安全運營,這篇文章主要介紹了kubernetes集群搭建Zabbix監(jiān)控平臺,需要的朋友可以參考下2022-07-07快速通過zabbix獲取數(shù)據(jù)庫連接的信息及部分擴展
這篇文章主要介紹了通過zabbix獲取數(shù)據(jù)庫連接的信息及部分擴展,包括zabbix配置信息,功能腳本,本文給大家分享詳細腳本寫法,需要的朋友可以參考下2021-06-06利用zabbix監(jiān)控ogg進程(Linux平臺)
這篇文章主要介紹了利用zabbix監(jiān)控ogg進程(Linux平臺)的方法,幫助大家更好的理解和使用zabbix,感興趣的朋友可以了解下2020-12-12