一.zabbix介紹
(1)zabbix:zabbix是一款基于web開發(fā)的分布式監(jiān)控系統(tǒng)以及企業(yè)級的網(wǎng)絡(luò)監(jiān)控的開源解決方案
zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù)闷旧,保證服務(wù)系統(tǒng)
的安全運(yùn)營;并提供靈活的通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問題夸溶。
(2)zabbix的工作原理:
zabbix主要分為這幾個(gè)方面進(jìn)行工作:
1.數(shù)據(jù)的采集
采集方式:
SNMP:簡單網(wǎng)絡(luò)管理協(xié)議
agent:客戶端代理仪糖,屬于被監(jiān)控端
ICMP:網(wǎng)絡(luò)控制管理協(xié)議
IPMI:智能平臺管理接口
2.數(shù)據(jù)存儲
zabbix:mysql,pgsql,oracle
nagios:mysql
cacti: rrd
3.數(shù)據(jù)展示
基于java,php,或是移動app
展示的級別有:簡單圖须揣,圖形诀豁,screen,slide show ,map
4.報(bào)警接口
mail(smtp)
chat (短信)
SMS
(3)zabbix的結(jié)構(gòu)
二.zabbix的安裝與環(huán)境配置
(1)官網(wǎng)下載地址: www.zabbix.com
也可以在repo.zabbix下載然后下載到虛擬機(jī)上并更新yum源
下載之后執(zhí)行
wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
yum repolist——更新yum源
(2)設(shè)置數(shù)據(jù)庫信息
vim /etc/my.cnf.d/server.cnf
開啟數(shù)據(jù)庫 systemctl start mariadb
mysql -uroot -pcentos
create database zbxdb character set 'utf8';
garant allon zbxdb.* to 'zbuser'@'172.18.%.%' identified by 'zbxpass';
flush priviages;
設(shè)置完成后退出
開始yum安裝相應(yīng)的包
yum install zabbix-server-mysql zabbix-web zabbix-web-mysql(gui) zabbix-agent zabbix-get zabbix-sender中cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz /root/
unzip create.sql.gz
mysql -uzbuser -pzbxpass -h172.18.254.242 zbxdb < create.sql
(3)配置zabbix配置文件
vim zabbix_server.conf
主要配置內(nèi)容
ListenPort=10051
DBHost=172.18.254.242
DBName=zbxdb
DBUser=zbuser
DBPassword=zbxpass
DBPort=3306
開啟httpd
在web 進(jìn)行測試
三.在zabbix進(jìn)行配置
(1)在客戶端上同樣安裝wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
yum repolist——更新yum源
然后只需要yum install zabbix-agent.service zabbix-sender
vim /etc/zabbix/zabbix-agent.conf
配置內(nèi)容
Server=172.18.254.242——服務(wù)地址
ListenPort=10050——監(jiān)聽端口
ListenIP=0.0.0.0——監(jiān)聽本機(jī)所有ip
ServerActive=172.18.254.242——服務(wù)端地址
Hostname=node3.magedu.com——解析本地主機(jī)名
配置完成后 systemctl start zabbix-agent.service
(2)在web端進(jìn)行配置
創(chuàng)建group
創(chuàng)建host
確定后點(diǎn)擊add即可
定義application
- item設(shè)定
item:key+parameter
key:
zabbix內(nèi)建:
type:
agent (server:pull)
agent(active) (agent:push)
snmp v1
用戶自定義(UserParameter)
采集到的數(shù)據(jù)的類型:
數(shù)值:
整數(shù)
浮點(diǎn)數(shù)
字符串:
字符串
文本
存儲的值:
As is:不對數(shù)據(jù)做任何處理
Delta:(simple change)畔规,本次采樣減去前一次采樣的值的結(jié)果
Delta:(speed per second),本次采樣減去前一次采樣的值拘泞,再除以經(jīng)過的時(shí)長纷纫;
設(shè)置實(shí)例:
選擇一個(gè)內(nèi)鍵命令
、
在zabbix-server端上執(zhí)行
zabbix_get -s 172.18.250.89 -p 10050 -k "system.cpu.intr"
在zabbix-agent端
執(zhí)行vmstat 1
在item進(jìn)行設(shè)置
選擇preprocessing
確定后點(diǎn)擊apply
選擇Monitoring陪腌,查看監(jiān)控信息
點(diǎn)擊graph來查看
示例:接下來多創(chuàng)建幾個(gè)item來加深理解
選擇創(chuàng)建item后設(shè)置內(nèi)容
仍然不要忘了選擇preprocessing,內(nèi)容同上
創(chuàng)建完成后選擇monitoring來選擇graph來查看
此時(shí)還可以再創(chuàng)建一個(gè)出站的網(wǎng)絡(luò)包的速率變化item
直接在原有的rate of packets(in)中點(diǎn)擊clone來進(jìn)行修改即可
只需要修改兩個(gè)地方即可
創(chuàng)建成功后點(diǎn)擊add即可
再創(chuàng)建以字節(jié)為單位的item,方法同上辱魁,最后創(chuàng)建的結(jié)果的是
(3) 定義觸發(fā)器
- 觸發(fā)器概念:界定某特定的item采集到的數(shù)據(jù)的非合理區(qū)間或非合理狀態(tài):邏輯表達(dá)式
- 邏輯表達(dá)式,閾值偷厦;通常用于定義數(shù)據(jù)的不合理區(qū)間商叹;
OK:正常 狀態(tài) --> 較老的zabbix版本燕刻,其為FALSE只泼;
PROBLEM:非正常 狀態(tài) --> 較老的zabbix版本,其為TRUE卵洗;
OK --> PROBLEM
Recovery:PROBLEM --> OK
也就是說如果滿足觸發(fā)器的請求則為problem,如果沒有滿足觸發(fā)器要求則為ok- 觸發(fā)器存在可調(diào)用的函數(shù):
nodata()
last()
date()
time()
now()
dayofmonth()- Severity:嚴(yán)重等級
Not classified
Information
Warning
Average
High
Disaster- 觸發(fā)器表達(dá)式:
{hostname:key[paramters].function(arguments)
, <, =, #(not equal)...
+, -, *, /
&, |{n1.magedu.com:net.if.in[eno16777736,packets].last(#1)}>15
trigger間存在依賴關(guān)系:
zabbix server <--> Router1 <--> Host1下面通過實(shí)例進(jìn)行演示
點(diǎn)擊創(chuàng)建觸發(fā)器
設(shè)置危險(xiǎn)級別
設(shè)置觸發(fā)器內(nèi)容
點(diǎn)擊add
查看是否生成觸發(fā)器
(4)action與media
- 1.Media:媒介
告警信息的傳遞通道请唱;
類型:
Email:郵件
Script:自定義腳本
SMS:短信
Jabber:
Ez Texting:
接收信息的目標(biāo)為zabbix用戶:
需要用戶上定義對應(yīng)各種媒介通道的接收方式;- 2.Action:
conditions:
多個(gè)條件之間存在邏輯關(guān)系过蹂;
operations:
條件滿足時(shí)觸發(fā)的操作十绑;
send message:- Media type:傳遞信息的通道;
(a) Email
(b) Script:報(bào)警腳本酷勺;
腳本放置路徑:zabbix_server.conf配置文件中AlertScriptsPath參數(shù)定義的路徑下本橙;
/usr/lib/zabbix/alertscripts/
zabbix服務(wù)器在調(diào)用腳本時(shí),會向其傳遞三個(gè)參數(shù):
$1:經(jīng)由此信道接收信息的目標(biāo)脆诉;
$2:subject
$3:body
zabbix 3.0之后的版本甚亭,此三個(gè)變量定義為內(nèi)部宏:{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}- 信息接收人:
(a) User Groups
(b) Users
admin:
實(shí)例:
設(shè)置media和action來實(shí)現(xiàn)當(dāng)中斷redis服務(wù)后可以自動開啟
1.選擇administration的users里的media贷币,然后編輯
2.選擇Media types,創(chuàng)建Media types,進(jìn)行編輯
3.定義hosts中的node3,創(chuàng)建新的item
4.定義觸發(fā)器
5.在monitoring中查看狀態(tài)
此時(shí)現(xiàn)在zabbix-service端測試一下
如果手動關(guān)閉redis服務(wù),那么狀態(tài)就會為down(0)
6.設(shè)置action來實(shí)現(xiàn)自動修復(fù)故障上線
定義operations
在zabbix-agent上定義
vim /etc/zabbix/zabbix_agentd.conf
7.當(dāng)五分鐘之內(nèi)服務(wù)仍然沒有開啟的時(shí)候吧來定義第二個(gè)步驟
8.完成上述步驟后亏狰,手動關(guān)掉zabbix-agent的redis服務(wù)觀察
據(jù)觀察當(dāng)手動關(guān)閉redis服務(wù)戶役纹,redis服務(wù)就會條件從而通過遠(yuǎn)程命令來恢復(fù)
使用mail來查看郵件
9.當(dāng)服務(wù)在定義的五分鐘內(nèi)無法啟動腳本時(shí),則會觸發(fā)第二個(gè)條件
我們可以將redis服務(wù)停掉并刪除redis服務(wù)暇唾,來模擬觸發(fā)條件的觸發(fā)
systemctl stop redis.service && rpm -e redis
60秒執(zhí)行第二個(gè)步驟
四.展示接口及宏的定義
(1)展示接口:
graph: simple, custom
以次類推再創(chuàng)建幾個(gè)graphs
screen:把多個(gè)graph整合于同一屏幕進(jìn)行展示促脉;
設(shè)置screen格式
設(shè)置screen如圖
slide show:把多個(gè)screen以slide show的方式進(jìn)行展示
map:
創(chuàng)建一個(gè)新的screen
設(shè)置新的screen格式,與之前的screen格式不一樣
此時(shí)創(chuàng)建一個(gè)slide策州,將之前的兩個(gè)screen都加進(jìn)來
創(chuàng)建成功后查看
5秒后觀察變化
(2)模板
主機(jī)配置模板:用于鏈接至目標(biāo)主機(jī)實(shí)現(xiàn)快速監(jiān)控管理瘸味;
link, unlink, unlink and clear
模板可繼承;
示例:導(dǎo)入linux操作系統(tǒng)模板
選擇模板選項(xiàng)
選擇node3用戶够挂,導(dǎo)入模板
選擇導(dǎo)入的linux操作系統(tǒng)
點(diǎn)擊add后查看hosts中的node3的信息
如果想取消模板鏈接則要在如圖內(nèi)容進(jìn)行設(shè)置
注意:不是兩個(gè)都要選擇而是直接選擇unlink and clear選項(xiàng)才能刪除干凈
(3)宏的定義
macro硫戈,預(yù)設(shè)的文本替換模式;
級別:
全局:Administration --> General --> Macros
模板:編輯模板 --> Macros
主機(jī):編輯主機(jī) --> Macros
類型:
內(nèi)建:{MACRO_NAME}
文檔:
https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
自定義:{$MACRO_NAME}
命名方式:大寫字母下硕、數(shù)字和下劃線丁逝;
選擇action中operations
示例:設(shè)定一個(gè)宏
選擇node3中的item,選擇redis status進(jìn)行宏的設(shè)定
確定后觀察變化
在實(shí)際應(yīng)用中如果有的主機(jī)的redis服務(wù)監(jiān)聽的端口是6380梭姓,而其他主機(jī)的監(jiān)聽端口仍然是6379霜幼,此時(shí)就可以通過宏的定義來實(shí)現(xiàn)監(jiān)控
設(shè)置步驟:
1.模擬上述環(huán)境,將一臺主機(jī)的redis服務(wù)的監(jiān)聽端口改為6380
2.在hosts中定義宏
不要在主機(jī)中定義宏誉尖,否則如果其他主機(jī)的redis服務(wù)仍然監(jiān)控的是6379端口的時(shí)候罪既,在全局定義就會造成其他主機(jī)都無法工作
而且主機(jī)的宏的優(yōu)先級高于全局宏
補(bǔ):定義腳本的存儲路徑
/etc/zabbix/zabbix_agentd.d/