文章目錄
一、Zabbix概述
1、Zabbix簡介
zabbix
是一個基於WEB界面
的提供 分佈式系統監控以及網絡監控功能 的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由zabbix server
與可選組件zabbix agent
兩部門組成。
- zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視。
- zabbix agent需要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU等信息的收集。
2、爲什麼需要對各類系統運行進行監控?
加粗樣式當系統構建時的正常流程中,通常是不允許未被監控的系統或應用上線的,因爲未被監控的系統存在不可預知性,故障未知等不確定因素,且無法及時被發現並排除的,這時整個架構或系統來說都是非常大的風險因患,所以我們在原則上是要對整個的架構或系統進行監控,隨時監控各個方面的指標是否正常,以提高系統的穩定性。
3、工作原理
一個監控系統運行的大概流程是這樣的:
Zabbix agent需要安裝到被監控的主機上,它負責定期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web 根據數據在前端進行展現和繪圖。
這裏agent收集數據分爲主動和被動兩種模式:
-
主動:agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的數據提交給server/proxy
-
被動:server向agent請求獲取監控項的數據,agent返回數據。
4、Zabbix的常用組件
- Zabbix Web Gui: 提供Web界面
- Zabbix Databases:提供數據庫存儲功能並用於存儲配置信息。以及採集到的數據。
- Zabbix Server : 接收來自Agent採集數據的核心組件
- Zabbix Agent :部署在被監控的主機上,用於採集本地的數據。
- Zabbix Proxy: 當監控節點較多時,用於減輕Server壓力組件,也可用於分佈式監控系統,由Proxy接收數據後統一發送給Server.
5、Zabbix支持的數據採集協議
-
SNMP(Simple Network Managerment Protocol),這是一個非常古老的且通用的監控協議,幾乎任何設備都支持用此方式進行系統的監控。
-
Agent:在監控端安裝專門的監控程序,將數據採集後通過Agent發送至Server
-
IPMI:智能平臺管理接口,可在常用的服務器上看到類似的以太網口的接口。
-
JMX: Java Managerment Exlensions
6、常見進程
zabbix_agentd:客戶端守護進程,負責收集客戶端數據,例如cpu負載、內存、硬盤使用情況等。
zabbix_get:zabbix工具,單獨使用的命令,通常在Server或者Proxy端執行獲取遠端客戶信息的命令。通常客戶排錯。例如在Server端獲取不到客戶端的內存數據,我們可以使用zabbix_get獲取客戶端的內容的方式來做故障排查。
zabbix_sender:zabbix工具,用於發送數據給Server或者Proxy,通常用於耗時比較長的檢查。很多檢查非常耗時間,導致zabbix超時。於是我們在腳本執行完畢之後,使用sender主動提交數據。
zabbix_proxy:zabbix代理守護進程。功能類似Server,唯一不同的是它只是一箇中轉站,它需要把收集到的數據提交/被提交到Server裏。
zabbix_java_gateway:Java網關,類似agentd,但是隻用於Java方面。它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會給到Server或者proxy。
二、搭建Zabbix監控平臺
基於rhel7.3操作系統
主機名 | 服務名稱(角色) |
---|---|
server1 172.25.2.1 | zabbix-server,zabbix-web,mariadb-server監控方 |
server2 172.25.2.2 | zabbix-agent(1)被監控方 |
server3 172.25.2.3 | zabbix-agent(2)被監控方 |
具體步驟如下:
1、配置網絡yum源
我已經在真機下載好了所有需要的安裝包
編寫配置文件,共享真機上的zabbix安裝包
2、安裝zabbix-server服務、zabbix-web服務、數據庫服務在同一臺服務器server1
[root@server1 ~]# yum install -y zabbix-server-mysql
[root@server1 ~]# yum install zabbix-web-mysql
[root@server1 ~]# yum install -y mariadb-server
3、開啓數據庫並安全初始化
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# systemctl enable mariadb
[root@server1 ~]# mysql_secure_installation ##安全初始化
4、登陸數據庫,創建zabbix數據庫並且授權
[root@server1 ~]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
## 使用utf-8編碼並對用戶授權
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
5、導入數據庫,時間較長,不可中斷。
[root@server1 zabbix-server-mysql-4.0.5]# pwd
/usr/share/doc/zabbix-server-mysql-4.0.5
[root@server1 zabbix-server-mysql-4.0.5]# zcat create.sql.gz | mysql -p zabbix
##zcat=gzip + cat 把這個數據庫導入zabbix這個數據庫中
6、再次登錄數據庫,可以看到zabbix數據庫裏面有很多表格以及數據
[root@server1 zabbix-server-mysql-4.0.5]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
7、編輯zabbix
[root@server1 ~]# cd /etc/zabbix/
[root@server1 zabbix]# ls
[root@server1 zabbix]# vim zabbix_server.conf
124 DBPassword=redhat #修改數據庫密碼
[root@server1 zabbix]# systemctl start zabbix-server
[root@server1 zabbix]# systemctl enable zabbix-server
服務開啓成功後,可以ps ax
或在/var/log/zabbix/zabbix_server.log
日誌文件確認。
zabbix的日誌文件:
8、修改php時區:
[root@server1 zabbix]# cd /etc/httpd/
[root@server1 httpd]# cd conf.d/
[root@server1 conf.d]# vim zabbix.conf
[root@server1 conf.d]# systemctl start httpd
[root@server1 conf.d]# systemctl enable httpd
9、查看zabbix-server的端口:是10051
10、在瀏覽器172.25.27.1/zabbix/,進行zabbix的web界面配置
【Language】中選擇Chinese,點擊【Update】
點擊【配置】–>【主機】,查看server的狀態,可以看到zabbix監控的名稱zabbix-server是自己,但是還沒有安裝zabbix-agent,因此安裝了之後纔會變綠,纔可以對自己進行相關監控
可用性ZBX
表示對自己的監控還沒有開啓,要監控自己,首先要安裝被監控的服務zabbix-agent
三、添加agent主機進行監控
1、監控本機
[root@server1 conf.d]# yum install -y zabbix-agent # (因爲我之前全部安裝了,顯示已安裝)
[root@server1 conf.d]# systemctl start zabbix-agent #用來監控本機
[root@server1 conf.d]# systemctl enable zabbix-agent
[root@server1 conf.d]# netstat -antlp | grep 10050 #10050是zabbix_agentd的
2、進瀏覽器查看:
- ZBX:代表zabbix監控狀態
- SNMP:通過簡單網絡協議對監控對象(一般是網絡設備)進行監控
- JMX:JMX是java管理擴展,可以監控JVM虛擬機與JAVA模塊
- IPMI:利用IPMI硬件接口對電壓,電源狀態,溫度等進行監控
可以看到已經可以監控自身了。
3、對server2和server3
進行監控,對server2和server3進行相同的操作:
[root@server3 ~]# yum install -y zabbix-agent-4.0.5-1.el7.x86_64.rpm
[root@server3 ~]# cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@server3 zabbix]# vim zabbix_agentd.conf
98 Server=172.25.27.1
139 ServerActive=172.25.27.1
150 Hostname=server3 #自己的主機名,一定做好解析
[root@server3 zabbix]# systemctl start zabbix-agent.service
[root@server3 zabbix]# systemctl enable zabbix-agent.service
[root@server3 zabbix]# systemctl status zabbix-agent.service
[root@server3 zabbix]# netstat -antlp
server2:
server3:
4、在瀏覽器zabbix的web界面中(server1)添加被監控的主機server2和server3(agent)
手動添加
【配置】->【主機】->【創建主機】
如下圖填寫:
此時發現對server2的zabbix監控ZBX
依舊是灰色的,在server2上面重新啓動服務(目的是讓server2去主動發現server1),在瀏覽器刷新一下,可以看到對server2的監控了。
自動發現
先刪除之前手動添加的server2,然後我們再讓監控平臺去自動發現server2
註釋:自動發現通常是server端主動去探測某個ip範圍內的被監控端,適用於大批量的監控,而且監控模板都一樣
自動註冊
自動註冊是被監控端主動去找server端,看自己想要被監控什麼,去匹配什麼樣的模板,適合於單臺主機
首先禁用server2剛纔的動作和自動發現