市場上常用的監控軟件:
- 傳統運維:zabbix、 Nagios
一、zabbix概述
作為一個運維,需要會使用監控系統查看服務器狀態以及網站流量指標,利用監控系統的數據去了解上線發布的結果,和網站的健康狀態。
利用一個優秀的監控軟件,我們可以:
- 通過一個友好的界面進行瀏覽整個網站所有的服務器狀態
- 可以在Web 前端方便的查看監控數據
- 可以回溯尋找事故發生時系統的問題和報警情況
1.1 zabbix是什么?
- zabbix是一個基于Web界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
- zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
- zabbix由2部分構成,zabbix server 與可選組件zabbix agent。 通過c/s 模式采集數據,通過B/s模式在web端展示和配置。
- zabbix server 可以通過SNMP(簡單網絡管理協議),zabbix agent,ping, 端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它 可以運行在Linux等平臺上。(支持多個平臺,windows也支持)
- zabbix agent需要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU等信息的收集。
1.2 zabbix監控原理
zabbix agent安裝在被監控的主機上,zabbix agent 負責定期收集客戶端本地各項數據,并發送至zabbix server 端,zabbix server收到數據后,將數據存儲到數據庫中,用戶基于zabbix WEB可以看到數據在前端展現圖像。
當zabbix 監控某個具體的項目,該項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動作,動作包括:發送信息(郵件、微信、短信)、發送命令(shell 命令、reboot、 restart、 install 等)。
用戶可以基于zabbix-web可以在WEBUI界面中查看展現的數據圖像,以及進行相關的配置管理用戶還可以在WEBUI界面中設置監控項的觸發器,如被監控的數據指標超過觸發器設定的閾值,會進行發送通知信息或者一些應急操作指令。
1.3 zabbix常見的五個程序
zabbix監控部署在系統中,包含常見的五個程序: zabbix server、 zabbix agent、 zabbix proxy、zabbix get、zabbix sender 等。
(1) zabbix server: zabbix 服務端守護進程,其中zabbix_agent、 zabbix_ get、zabbix_sender、 zabbix_proxy的數據最終都提交給zabbix server;
(2) zabbix agent: 客戶端守護進程,負責收集客戶端數據,例如:收集CPU負載、內存、硬盤使用情況等;
(3)zabbi xproxy: zabbix分布式代理守護進程,通常大于500臺主機,需要進行分布式監控架構部署;
(4)zabbix get: zabbix 數據接收工具,單獨使用的命令,通常在server 或者proxy端執行獲取遠程客戶端信息的命令;
(5)zabbix sender: zabbix 數據發送工具,用戶發送數據給server 或proxy端,通常用戶耗時比較長的檢查。
1.4 zabbix端口號
- zabbix服務端zabbix_server 默認使用10051 端口。
- 客戶端zabbix_agent2 默認使用10050 端口。
二、安裝zabbix 5.0
建議使用5.0版本/4.6版本/4.8 版本,不使用6.0。
實驗環境:
節點 | IP | 安裝服務 |
---|---|---|
zabbix-server | 192.168.41.45 | zabbix-server-mysql、zabbix-agent |
zabbix-agent | 192.168.41.46 | zabbix-agent2 |
2.1 部署 zabbix 服務端(端口號10051)
zabbix-server內存至少2G,推薦4G。
zabbix 服務端同時安裝zabbix-server-mysql和zabbix-agent,因為服務端所在主機自己也要被監控。
1、關閉防火墻,修改主機名
2、獲取 zabbix 的下載源
3、更換 zabbix.repo 為阿里源,安裝zabbix-server-mysql、zabbix-agent和SCL
4、修改 zabbix-front 前端源,安裝 zabbix 前端環境到 scl 環境下。
修改/etc/yum.repos.d/zabbix.repo文件:
5、安裝zabbix所需的數據庫
6、添加數據庫用戶,以及 zabbix 所需的數據庫信息
7、修改 zabbix-server 配置文件/etc/zabbix/zabbix_server.conf,修改數據庫的密碼。
8、修改 zabbix 的 php 配置文件,/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
9、啟動 zabbix 相關服務
10、瀏覽器訪問 http://192.168.41.45/zabbix
11、解決 zabbix-server Web頁面中文亂碼問題
2.2 部署zabbix 客戶端(端口號10050)
zabbix 5.0版本采用golang 語言開發的新版本客戶端agent2 。
zabbix 服務端 zabbix_server 默認使用 10051 端口,客戶端 zabbix_agent2 默認使用 10050 端口。
1、關閉防火墻,修改主機名
?systemctl disable --now firewalld
?setenforce 0
?hostnamectl set-hostname zbx-agent01
?su
??
2、服務端和客戶端都配置時間同步,使用阿里云的時鐘源
?yum install -y ntpdate
?ntpdate -u ntp.aliyun.com
??
?3、客戶端配置時區,與服務器保持一致
?mv /etc/localtime{,.bak}
?ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
??
?date
??
4、設置 zabbix 的下載源,安裝 zabbix-agent2
?rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm?
??
?cd /etc/yum.repos.d
?sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' ?/etc/yum.repos.d/zabbix.repo ?
??
?yum install -y zabbix-agent2 ??
??
?5、修改 agent2 配置文件
?vim /etc/zabbix/zabbix_agent2.conf
?......
?Server=192.168.41.45 ? ? ? ? ? ?#80行,指定 zabbix 服務端的 IP 地址
?ServerActive=192.168.41.45 ? ? ?#120行,指定 zabbix 服務端的 IP 地址
?Hostname=zbx-agent01 ? ? ? ? ? ?#131行,指定當前 zabbix 客戶端的主機名
??
?6、啟動 zabbix-agent2
?systemctl start zabbix-agent2
?systemctl enable zabbix-agent2
??
?netstat -natp | grep zabbix
?tcp6 ??????0 ?????0 :::10050 ?????????????? :::* ???????????? LISTEN ?????4381/zabbix_agent2
??
??
7、在服務端驗證 zabbix-agent2 的連通性
?yum install -y zabbix-get ? ?#服務端,安裝 zabbix 主動獲取數據的命令,get指令
??
?zabbix_get -s '192.168.41.46' -p 10050 -k 'agent.ping'
?1 ?????????????#服務端對客戶端進行連通性測試,返回1表示連通
??
?zabbix_get -s '192.168.41.46' -p 10050 -k 'system.hostname'
?zbx-agent01 ????#返回客戶端的主機名說明正常連通
1、關閉防火墻,修改主機名
2、服務端和客戶端都配置時間同步
3、客戶端配置時區,與服務器保持一致
4、設置 zabbix 的下載源,安裝 zabbix-agent2
5、修改 agent2 配置文件,/etc/zabbix/zabbix_agent2.conf
6、啟動 zabbix-agent2
7、在服務端驗證 zabbix-agent2 的連通性
2.3 將客戶端加入服務端的監控主機中
在 Web 頁面中添加 agent 主機。
1.點擊左邊菜單欄【配置】中的【主機】,點擊【創建主機】
?【主機名稱】設置成 zbx-agent01
?【可見的名稱】設置成 zbx-agent01-192.168.41.46
?【群組】選擇 Linux server
?【Interfaces】的【IP地址】設置成 192.168.41.46
??
?2.再點擊上方菜單欄【模板】
?【Link new tamplates】搜索 Linux ,選擇 Template OS Linux by Zabbix agent
?點擊 【添加】
1、點擊左邊菜單欄【配置】中的【主機】,點擊【創建主機】
2、再點擊上方菜單欄【模板】
總結
zabbix工作原理(工作流程):
- zabbix-agent 客戶端,部署在被監控的對象主機上,負責定期收集監控數據,發送給zabbix-server 端;
- zabbix-server 收到數據后會將數據存儲在數據庫中。
- 用戶可以基于zabbix-web可以在WEB UI界面中查看展現的數據圖像,以及進行相關的配置管理 用戶還可以在WEBUI界面中設置監控項的觸發器,如被監控的數據指標超過觸發器設定的閾值,會進行發送通知信息或者一些應急操作指令。