zabbix我就不介紹了吧,可是可能又有些小白,我仍是介紹一下吧,嘿嘿!php
一:什麼是zabbix及優缺點(對比cacti和nagios)前端
Zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。java
agent端:主機經過安裝agent方式採集數據。node
server端:經過收集agent發送的數據,寫入數據庫(MySQL,ORACLE等),再經過php+apache在web前端展現.mysql
zabbix = cacti + nagiosios
優勢:基於兩款工具優勢於一身並更強大,實現企業級分佈式監控。web
缺點:2.2版本帶寬佔用大可是升級到2.4版本後更節省了帶寬資源,其它再無發現。sql
二:功能數據庫
1:zabbix的功能apache
數據收集
靈活的閾值定義
高度可配置的告警
實時繪圖
web監控能力
普遍的可視化選項
歷史數據存儲
容易配置
使用模板
網絡發現
快速的web接口
Zabbix API
權限系統
功能齊全而且易於擴展的代理(agent)
二進制守護進程
適合複雜環境
2:可監控對象
設備:服務器,路由器,交換機
軟件:操做系統,網絡,應用程序
3:主機性能指標監控
故障監控: down機,服務不可用,主機不可達
二:工做原理
一個監控系統運行的大概的流程是這樣的:
zabbix agent須要安裝到被監控的主機上,它負責按期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展示和繪圖。這裏agent收集數據分爲主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
三:zabbix的組件及進程
1:重要組件
zabbix由如下幾個組件部分構成:
(1)Zabbix Server:負責接收agent發送的報告信息的核心組件,全部配置,統計數據及操做數據均由其組織進行;
(2)Database Storage:專用於存儲全部配置信息,以及由zabbix收集的數據;
(3)Web interface:zabbix的GUI接口,一般與Server運行在同一臺主機上;
(4)Proxy:可選組件,經常使用於分佈監控環境中,代理Server收集部分被監控端的監控數據並統一發往Server端;
(5)Agent:部署在被監控主機上,負責收集本地數據併發往Server端或Proxy端;
注:zabbix node也是 zabbix server的一種 。
2:常見進程
默認狀況下zabbix包含5個程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另一個zabbix_java_gateway是可選,這個須要另外安裝。下面來分別介紹下他們各自的做用。
(1)zabbix_agentd:
客戶端守護進程,此進程收集客戶端數據,例如cpu負載、內存、硬盤使用狀況等。
(2)zabbix_get
zabbix工具,單獨使用的命令,一般在server或者proxy端執行獲取遠程客戶端信息的命令。一般用戶排錯。例如在server端獲取不到客戶端的內存數據,咱們可使用zabbix_get獲取客戶端的內容的方式來作故障排查。
(3)zabbix_sender
zabbix工具,用於發送數據給server或者proxy,一般用於耗時比較長的檢查。不少檢查很是耗時間,致使zabbix超時。因而咱們在腳本執行完畢以後,使用sender主動提交數據。
(4)zabbix_server
zabbix服務端守護進程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的數據最終都是提交到server
備註:固然不是數據都是主動提交給zabbix_server,也有的是server主動去取數據。
(5)zabbix_proxy
zabbix代理守護進程。功能相似server,惟一不一樣的是它只是一箇中轉站,它須要把收集到的數據提交/被提交到server裏。爲何要用代理?代理是作什麼的?賣個關子,請繼續關注運維生存時間zabbix教程系列。
(6)zabbix_java_gateway
zabbix2.0以後引入的一個功能。顧名思義:Java網關,相似agentd,可是隻用於Java方面。須要特別注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會給到server或者proxy。
四:zabbix監控環境中基本概念
1:主機(host):要監控的網絡設備,可由IP或DNS名稱指定;
2:主機組(host group):主機的邏輯容器,能夠包含主機和模板,但同一個組織內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用;
3:監控項(item):一個特定監控指標的相關的數據;這些數據來自於被監控對象;item是zabbix進行數據收集的核心,相對某個監控對象,每一個item都由"key"標識;
4:觸發器(trigger):一個表達式,用於評估某監控對象的特定item內接收到的數據是否在合理範圍內,也就是閾值;接收的數據量大於閾值時,觸發器狀態將從"OK"轉變爲"Problem",當數據再次恢復到合理範圍,又轉變爲"OK";
5:事件(event):觸發一個值得關注的事情,好比觸發器狀態轉變,新的agent或從新上線的agent的自動註冊等;
6:動做(action):指對於特定事件事先定義的處理方法,如發送通知,什麼時候執行操做;
7:報警升級(escalation):發送警報或者執行遠程命令的自定義方案,如每隔5分鐘發送一次警報,共發送5次等;
8:媒介(media):發送通知的手段或者通道,如Email、Jabber或者SMS等;
9:通知(notification):經過選定的媒介向用戶發送的有關某事件的信息;
10:遠程命令(remote command):預約義的命令,可在被監控主機處於某特定條件下時自動執行;
11:模板(template):用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、appication以及low-level discovery rule;模板能夠直接連接至某個主機;
12:應用(application):一組item的集合;
13:web場景(web scennario):用於檢測web站點可用性的一個活多個HTTP請求;
14「」前端(frontend):Zabbix的web接口;
五:zabbix的監控架構
在實際監控架構中,zabbix根據網絡環境、監控規模等 分了三種架構: server-client 、master-node-client、server-proxy-client三種 。
1:server-client架構
也是zabbix的最簡單的架構,監控機和被監控機之間不通過任何代理 ,直接由zabbix server和zabbix agentd之間進行數據交互。適用於網絡比較簡單,設備比較少的監控環境 。
2:server-proxy-client架構
其中proxy是server、client之間溝通的一個橋樑,proxy自己沒有前端,並且其自己並不存放數據,只是將agentd發來的數據暫時存放,然後再提交給server 。該架構常常是和master-node-client架構作比較的架構 ,通常適用於跨機房、跨網絡的中型網絡架構的監控。
3:master-node-client架構
該架構是zabbix最複雜的監控架構,適用於跨網絡、跨機房、設備較多的大型環境 。每一個node同時也是一個server端,node下面能夠接proxy,也能夠直接接client 。node有自已的配置文件和數據庫,其要作的是將配置信息和監控數據向master同步,master的故障或損壞對node其下架構的完整性。
其實zabbix作的仍是挺人性化的,給了咱們下載地址:http://repo.zabbix.com/ 裏面能夠選不少版本,但這裏就給你們提供一個目前最新版本4.2的部署及添加客戶端方式。
胡扯了一大通,如今我們開始吧(喝口水)
rpm -ivh http://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm #這裏給搭建提供的時4.2yum源,大家安裝那個版本的zabbix就要用那個版本的yum源,否則可能會報錯,固然我也沒有試過(略略略),不過最好仍是不要試。
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent #安裝服務端,安裝web界面,安裝客戶端,默認目錄會在/etc下。
由於須要MySQL數據庫的支持我這裏用的是5.7的,能夠根據本身的實際環境選擇安裝
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql-community-server (慢慢裝吧,下載須要時間的)
systemctl start mysqld #安裝完以後啓動MySQL數據庫
systemctl enable mysqld #設置開機自啓MySQL數據庫
Mysql5.7默認安裝以後root是有密碼的。
爲了增強安全性,MySQL5.7爲root用戶隨機生成了一個密碼,在error log中,關於error log的位置,若是安裝的是RPM包,則默認是/var/log/mysqld.log。
只有啓動過一次mysql才能夠查看臨時密碼
grep 'temporary password' /var/log/mysqld.log #會反饋給大家一個臨時密碼的
mysql -u root -p #登陸MySQL數據庫
使用剛剛反饋的臨時MySQL密碼登陸
set password = password(‘123456’) ; #設置密碼
flush privileges; #保存配置
再次進入MySQL數據庫
mysql -u root -p
輸入剛剛改的123456密碼進入數據庫
create database zabbix character set utf8 collate utf8_bin; #建立數據庫實例
grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; #受權全部主機訪問數據庫實例zabbix,用戶名/密碼:zabbix/zabbix
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; #受權localhost主機名訪問數據庫實例zabbix,用戶名/密碼:zabbix/zabbix
grant all privileges on zabbix.* to zabbix@localhost.localdomain identified by 'zabbix'; #受權localhost.localdomain主機訪問數據庫實例zabbix,用戶名/密碼:zabbix/zabbix
flush privileges; #保存配置
systemctl restart mysqld #重啓數據庫
whereis zabbix
zabbix: /usr/lib/zabbix /etc/zabbix /usr/share/zabbix #安裝完會生成三個目錄
cd /etc/zabbix/
總用量 28
drwxr-x---. 2 apache apache 56 4月 18 11:31 web
-rw-r--r--. 1 root root 10632 4月 18 11:08 zabbix_agentd.conf #客戶端主配文件
drwxr-xr-x. 2 root root 38 4月 17 14:33 zabbix_agentd.d
-rw-r-----. 1 root zabbix 15536 4月 17 14:53 zabbix_server.conf #服務端主配文件
cp zabbix_server.conf zabbix_server.conf.bak #要養成先備份後修改的好習慣哦
vim zabbix_server.conf #修改一下幾項便可
DBHost=localhost # 數據主機名,默認是#號的,可不修改
DBName=zabbix # 數據庫實例
DBUser=zabbix # 用戶名
DBPassword=zabbix # 密碼,這裏設置的密碼要和數據庫的裏的要一致
systemctl start zabbix-server #啓動zabbix-server
systemctl enable zabbix-server #設置開機啓動zabbix-server服務
vim /etc/httpd/conf.d/zabbix.conf #修改標綠的位置,默認不是Asia/Shanghai,改爲這個Asia/Shanghai便可
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
systemctl start httpd #啓動httpd服務
systemctl enable httpd #設置開機啓動httpd服務
在瀏覽器輸入地址http://服務器ip/zabbix/,出現歡迎界面,點擊下一步
接下來點擊 Next setup
從上圖能夠看到zabbix相關組件配置,繼續點擊 Next setup
上圖中配置好以後,繼續點擊 Next setup
上圖中,name儘可能取有意義的名字,繼續點擊 Next setup
到這一步能夠看到所有配置,確認無誤後點擊 Next setup
登陸zabbix
登陸以後點擊 管理-用戶-點擊Admin,能夠設置超級管理基本屬性,例如語言和主題
點擊 配置-主機,能夠看到以下圖,接下來安裝zabbix客戶端
這裏我們已經安裝過zabbix-agent客戶端了,修改下主配文件
vim /etc/zabbix/zabbix_agentd.conf