一、Zabbix概述
作為一個運維,需要會使用監(jiān)控系統(tǒng)查看服務器狀態(tài)以及網(wǎng)站流量指標,利用監(jiān)控系統(tǒng)的數(shù)據(jù)去了解上線發(fā)布的結(jié)果,和網(wǎng)站的健康狀態(tài)。
利用一個優(yōu)秀的監(jiān)控軟件,我們可以:
- 通過一個友好的界面進行瀏覽整個網(wǎng)站所有的服務器狀態(tài)
- 可以在Web 前端方便的查看監(jiān)控數(shù)據(jù)
- 可以回溯尋找事故發(fā)生時系統(tǒng)的問題和報警情況
1、Zabbix是什么?
- zabbix是一個基于Web界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡監(jiān)視功能的企業(yè)級的開源解決方案。
- zabbix能監(jiān)視各種網(wǎng)絡參數(shù),保證服務器系統(tǒng)的安全運營;并提供靈活的通知機制以讓系統(tǒng)管理員快速定位解決存在的各種問題。
- zabbix由2部分構(gòu)成,zabbix server 與可選組件zabbix agent。 通過c/s 模式采集數(shù)據(jù),通過B/s模式在web端展示和配置。
- zabbix server 可以通過SNMP(簡單網(wǎng)絡管理協(xié)議),zabbix agent,ping, 端口監(jiān)視等方法提供對遠程服務器/網(wǎng)絡狀態(tài)的監(jiān)視,數(shù)據(jù)收集等功能,它 可以運行在Linux等平臺上。(支持多個平臺,windows也支持)
- zabbix agent需要安裝在被監(jiān)視的目標服務器上,它主要完成對硬件信息或與操作系統(tǒng)有關的內(nèi)存,CPU等信息的收集。
2、Zabbix監(jiān)控原理
zabbix agent安裝在被監(jiān)控的主機上,zabbix agent 負責定期收集客戶端本地各項數(shù)據(jù),并發(fā)送至zabbix server 端,zabbix server收到數(shù)據(jù)后,將數(shù)據(jù)存儲到數(shù)據(jù)庫中,用戶基于zabbix WEB可以看到數(shù)據(jù)在前端展現(xiàn)圖像。
當zabbix 監(jiān)控某個具體的項目,該項目會設置一個觸發(fā)器閾值,當被監(jiān)控的指標超過該觸發(fā)器設定的閾值,會進行一些必要的動作,動作包括:發(fā)送信息(郵件、微信、短信)、發(fā)送命令(shell 命令、reboot、 restart、 install 等)。
用戶可以基于zabbix-web可以在WEBUI界面中查看展現(xiàn)的數(shù)據(jù)圖像,以及進行相關的配置管理用戶還可以在WEBUI界面中設置監(jiān)控項的觸發(fā)器,如被監(jiān)控的數(shù)據(jù)指標超過觸發(fā)器設定的閾值,會進行發(fā)送通知信息或者一些應急操作指令。
二、部署Zabbix服務端(端口:10051)
實驗環(huán)境:
節(jié)點 | IP地址 | 安裝服務 |
---|---|---|
zabbix-server | 192.168.10.130 | zabbix-server-mysql 、zabbix-agent |
zabbix-agent | 192.168.10.132 | zabbix-agent2 |
部署zabbix
zabbix-server內(nèi)存至少2G,推薦4G。
zabbix 服務端同時安裝zabbix-server-mysql和zabbix-agent,因為服務端所在主機自己也要被監(jiān)控。
1、關閉防火墻 修改主機名
[root@localhost ~]#hostname zbx-server
[root@localhost ~]#su
[root@zbx-server ~]#systemctl disable --now firewalld #開機不再啟動防火墻
[root@zbx-server ~]#setenforce 0
2、獲取Zabbix下載資源
[root@zbx-server ~]#rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zbx-server ~]#cd /etc/yum.repos.d/
[root@zbx-server yum.repos.d]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo #更換 zabbix.repo 為阿里源
[root@zbx-server yum.repos.d]#yum clean all
[root@zbx-server yum.repos.d]#yum makecache
3、安裝SCL(Software Collections),修改 Zabbix-front 前端源
便于后續(xù)安裝高版本的 php,默認 yum 安裝的 php 版本為 5.4,版本過低,zabbix 5.0 版本對 php 版本最低要 7.2.0 版本。SCL 可以使得在同一臺機器上使用多個版本的軟件,而又不會影響整個系統(tǒng)的依賴環(huán)境。軟件包會安裝在 /opt/rh 目錄下。
[root@zbx-server yum.repos.d]#yum install -y centos-release-scl
[root@zbx-server yum.repos.d]#vim zabbix.repo
[root@zbx-server yum.repos.d]#yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
安裝Zabbix所需的數(shù)據(jù)庫
[root@zbx-server yum.repos.d]#yum install -y mariadb-server.x86_64 mariadb
[root@zbx-server yum.repos.d]#systemctl enable --now mariadb.service
[root@zbx-server ~]#yum install -y zabbix-server-mysql zabbix-agent
[root@zbx-server yum.repos.d]#mysql_secure_installation #初始化數(shù)據(jù)庫,并設置密碼abc123
4、添加數(shù)據(jù)庫用戶,以及Zabbix所需的數(shù)據(jù)庫信息
[root@zbx-server yum.repos.d]#mysql -uroot -pabc123
create database zabbix character set utf8 collate utf8_bin; #修改字符集utf8
grant all on zabbix.*to 'zabbix'@'%' identified by 'zabbix'; #創(chuàng)建權限用戶,是的zabbix可以訪問數(shù)據(jù)庫
flush privileges; #刷新權限
5、導入數(shù)據(jù)庫信息
[root@zbx-server ~]#rpm -ql zabbix-server-mysql 查詢sql文件位置
[root@zbx-server ~]#zcat /usr/share/doc/zabbix-server-mysql-5.0.33/create.sql.gz | mysql -uroot -pabc123 zabbix
6、修改Zabbix server配置文件
修改數(shù)據(jù)庫密碼
[root@zbx-server ~]#vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix #124行,指定 zabbix 數(shù)據(jù)庫的密碼
#保存退出
[root@zbx-server ~]#vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai 25行,取消注釋,修改時區(qū)
#保存退出
7、啟動Zabbix相關服務
[root@zbx-server ~]#systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zbx-server ~]#systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
8、瀏覽器訪問驗證
中文模式下有亂碼
解決 Zabbix-server Web頁面中文亂碼問題
三、部署Zabbix客戶端(端口號10050)
zabbix 5.0版本采用golang 語言開發(fā)的新版本客戶端agent2 。
zabbix 服務端 zabbix_server 默認使用 10051 端口,客戶端 zabbix_agent2 默認使用 10050 端口。
[root@localhost ~]#setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]#systemctl disable --now firewalld
[root@localhost ~]#hostname zbx-agent1
1、服務端和客戶端,配置時間同步
[root@zbx-agent1 ~]#yum install -y ntpdate.x86_64
[root@zbx-agent1 ~]#ntpdate -u ntp.aliyun.com
2、客戶端配置時區(qū),要與服務端保持一致
[root@zbx-agent1 ~]#mv /etc/localtime{,.bak}
[root@zbx-agent1 ~]#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@zbx-agent1 ~]#date
3、設置Zabbix的下載源,安裝Zabbix-agent2
[root@zbx-agent1 ~]#rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zbx-agent1 ~]#cd /etc/yum.repos.d/
[root@zbx-agent1 yum.repos.d]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
4、安裝Zabbix-agent2,并修改配置文件
[root@zbx-agent1 yum.repos.d]#yum install -y zabbix-agent2 #安裝zabbix-agent2
[root@zbx-agent1 yum.repos.d]#vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.10.130 #80行,指定 zabbix 服務端的 IP 地址
ServerActive=192.168.10.130 #120行,指定 zabbix 服務端的 IP 地址
Hostname=zbx-agent1 #131行,指定當前 zabbix 客戶端的主機名
#修改完保存退出
5、啟動Zabbix-agent2
[root@zbx-agent1 ~]#systemctl start zabbix-agent2.service
[root@zbx-agent1 ~]#systemctl enable zabbix-agent2.service
[root@zbx-agent1 ~]#ss -natp | grep zabbix
LISTEN 0 128 :::10050 :::* users:(("zabbix_agent2",pid=12294,fd=8))
6、在服務端驗證Zabbix-agent2 的連通性
[root@zbx-server ~]#yum install -y zabbix-get.x86_64
[root@zbx-server ~]#zabbix_get -s '192.168.10.132' -p 10050 -k 'agent.ping'
1
[root@zbx-server ~]#zabbix_get -s '192.168.10.132' -p 10050 -k 'system.hostname'
zbx-agent1
[root@zbx-server ~]#
7、將客戶端加入服務端的監(jiān)控主機
在Web界面添加agent主機
(1)點擊左邊菜單欄【配置】中的【主機】,點擊【創(chuàng)建主機】
(2)再點擊上方菜單欄【模板】
四、在 Web 頁面創(chuàng)建自定義監(jiān)控項模板
[root@zbx-agent1 ~]#cd /etc/zabbix/zabbix_agent2.d/
[root@zbx-agent1 zabbix_agent2.d]#vim UserParameter_login.conf
UserParameter=login.user,who|wc -l
#保存退出
[root@zbx-agent1 zabbix_agent2.d]#systemctl restart zabbix-agent2
1、創(chuàng)建模板
點擊左邊菜單欄【配置】中的【模板】,點擊【創(chuàng)建模板】
【模板名稱】設置成 Template Login User
【可見的名稱】設置成 Template Login User
【群組】選擇 Template
【描述】可自定義
點擊 【添加】,此時就可在【名稱】中搜索到 Template Login User 了
2、創(chuàng)建應用集(用于管理監(jiān)控項的)
點擊上方菜單欄【應用集】,點擊【創(chuàng)建應用集】、【名稱】設置成 Login User、點擊 【添加】
3、創(chuàng)建監(jiān)控項
點擊上方菜單欄【監(jiān)控項】,點擊【創(chuàng)建監(jiān)控項】【名稱】設置成 Number of login users【鍵值】設置成 login.user #鍵值必須要與自定義的監(jiān)控項配置文件中設置的保持一致、【更新間隔】設置成 10s、【歷史數(shù)據(jù)保留時長】Storage period 30d #保留時間可自定義設置、點擊 【添加】
4、創(chuàng)建觸發(fā)器
(當監(jiān)控項獲取到監(jiān)控的值后和觸發(fā)器預設的值進行對比,判斷是否報警)
點擊上方菜單欄【觸發(fā)器】,點擊【創(chuàng)建觸發(fā)器】、【名稱】設置成 Number of login users is greater than 3
【嚴重性】設置成 一般嚴重、【表達式】點擊添加,【監(jiān)控項】點擊選擇 Number of login users,【功能】選擇 last(),【結(jié)果】選擇 > 3,點擊 【插入】、點擊 【添加】
5、創(chuàng)建圖形
點擊上方菜單欄【圖形】,點擊【創(chuàng)建圖形】、【名稱】設置成 Number of login users 【寬】、【高】可直接采用默認值、【監(jiān)控項】點擊添加勾選相關監(jiān)控項 Number of login users,【功能】選擇 最大,其它可保持默認值
點擊 【添加】
6、將主機與模板關聯(lián)起來
(一個主機可以關聯(lián)多個模板)點擊左邊菜單欄【配置】中的【主機】,點擊你要關聯(lián)的主機、點擊上方菜單欄【模板】,【Link new tamplates】搜索 login,選擇 Template Login User,點擊【更新】
7、設置郵件報警
點擊左邊菜單欄【管理】中的【報警媒介類型】,點擊【創(chuàng)建媒體類型】
【名稱】設置成 qq_Email
【SMTP服務器】設置成 smtp.qq.com
【SMTP服務器端口】設置成 25
【SMTP HELO】設置成 qq.com
【SMTP電郵】設置成自己的郵箱地址,例 00000000@qq.com
【認證】選擇 用戶名和密碼
【用戶名稱】設置成自己的郵箱地址,例 0000000@qq.com
【密碼】可登錄QQ郵箱頁面,點擊【設置】–>【賬戶】中的【生成授權碼】,通過短信獲取授權碼
【描述】可自定義點擊上方菜單欄【Message templates】,點擊【添加】,【Message type】選擇問題,點擊【更新】
點擊 【添加】,并測試功能
點擊左邊菜單欄【User settings】–>【報警媒介】,點擊【添加】
【類型】選擇 qq_Email
【收件人】設置成 0000000@163.com
【當啟用時】設置成 1-7,00:00-24:00
點擊 【添加】
再點擊 【更新】
點擊左邊菜單欄【配置】中的【動作】,選擇相對應的動作名稱,點擊【啟用】文章來源:http://www.zghlxwxcb.cn/news/detail-418340.html
//測試郵件報警
增加測試客戶端的用戶登錄數(shù)超過觸發(fā)器預設的值,查看【監(jiān)測】–>【儀表盤】,確認報警
總結(jié)
自定義監(jiān)控模板:
1、先明確獲取監(jiān)控數(shù)據(jù)的方式,比如通過命令或者shell/python腳本來獲取。
2、創(chuàng)建zabbix 的監(jiān)控項配置文件( /etc/zabbix/ zabbix-agent2.d/*.conf) ,自定義監(jiān)控數(shù)據(jù)的鍵名 Userparameter= ,
3、在zabbix-server 的WEB頁面上設置自定義監(jiān)控模板:
配置->模板->應用集->監(jiān)控項->觸發(fā)器->圖形
將自定義監(jiān)控模板和主機關聯(lián)起來
4、設置郵件報警:
管理 -> 報警媒介類型,設置發(fā)件人郵箱配置并測試
user settings->報警媒介 ,設置收件人的郵箱和運行時間
配置 -> 動作,將觸發(fā)器和報警媒介關聯(lián)起來
測試文章來源地址http://www.zghlxwxcb.cn/news/detail-418340.html
到了這里,關于分布式監(jiān)控平臺-Zabbix的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!