㈠ Ubuntu 安裝 zabbix-get,Command 'zabbix_get' not found 解決辦法
在上回 Ubuntu 安裝 nginx 版 zabbix 之後,執行 zabbix_get 提示命令不存在:
apt 安裝 zabbix-get
之後就可以愉快地執行 zabbix_get 了
安裝的是 zabbix-get !而不是 zabbix_get ,否則會出現以下情況
㈡ zabbix告警配置
概述
假設我們配置了一些監控項和觸發器,現在當觸發器狀態改變時會獲取一些發生的事件,是時候考慮下一步行動了。
我們不可能一直盯著觸發器或者事件列表,當發生一些標志性的事件時發送警告再好不過。當問題發生,關注這些的用戶都會被通知。
zabbix提供主要的功能就是發送告警就是這個原因。哪些人?在什麼時候?應該收到哪些信息是可以被定義的。
為了發送和接收來自zabbix的告警,你必須:
定義媒介
配置發送信息到定義媒介的動作
動作由 觸發條件 和 操作 組成。基本上當條件符合時,操作被執行。兩個主要的操作是 發送消息 和 執行遠程命令
為了發現和自動注冊創建的事件,一些額外的操作是可用的,包含添加或者刪除主機,鏈接模板等
一、媒介(Media types)
概述
Media 是用於發送zabbix的消息與告警的遞送通道
可以定義一下媒介類型
E-mail
SMS
Jabber
Ez Texting
Custom alertscripts
1、 E-mail
為消息定義E-mail發送通道,需要配置e-mail 作為媒介類型並且傳遞指定的地址給用戶
配置
依次點擊 管理——>報警媒介類型,點擊創建媒介類型(或者點擊預先定義的媒介類型 E-mail)
媒介類型表包含通常的媒介類型屬性
所有重要的欄位都會標記紅星
Name 媒介類型名字
Type 選擇Email作為類型
SMTP server 設置stmp伺服器作為處理信息的出口
SMTP server port 設置smtp服務的埠,這個參數從zabbix3.0開始支持
SMTP helo 這是正確的stmp鏈接值,通常為域名
SMTP email 這個地址會被用於信息發送者,用來發送消息,添加發送者的顯示名 如 Zabbix_info則zabbix_info<[email protected]>
幾個可以生效的配置:
[email protected] 只有郵箱地址,不需要尖括弧
zabbix_info<[email protected]> 顯示名與郵件地址,地址寫在尖括弧中
監控系統<[email protected]> 使用UTF-8格式的顯示名
Connection security 選擇鏈接安全級別,None為不使用ssl選項,starttls 使用 CURLOPT_USE_SSL參數,SSL/TLS則CURLOPT_USE_SSL可選
SSL verify peer 標記checkbox同步SMTP服務的SSL證書,
Authentication 認證方法
Username 用戶名
Password 密碼
Enabled 啟用媒介
注意 : 為了使SMTP中的authentication 選項可用,zabbix在編譯時,需要帶--with-libcurl參數 使用cURL7.20.0或更高版本
第二個選項卡options
第二個選項卡options配置了告警的處理流程。同樣的options配置在其他的媒介類型中也存在。
所有媒介都是並行處理的,當前最大會話每個媒介自己定義,但是zabbix服務的告警處理總數被參數(zabbix_sever.conf)StartAlerters所限制。同一觸發器生成的告警會序列化的處理
options表
concurrent sessions 並發會話數,三個選項,one(一個),unlimited(不限制),custom(自定義)
Attempts 嘗試發送告警的次數,如果設置為1,則zabbix會發送以此通知,並且失敗時不會重發
Attempts interval 重發通知的頻率,發送失敗時重發的間隔
配置用戶的媒介
依次點擊 Administration(管理)--->Users(用戶)
點擊用戶的屬性表,在Media(媒介)表中點擊add
type 選擇Email作為類型
send to 指定email地址,可以點擊add添加多個地址,同理此地址也可設置顯示名如Zabbix_admin<[email protected]>或者[email protected]
when active 設置發送時間如工作日(1-5,09:00-18:00)可以使用宏
Use if severity 指定想要接受的告警等級
status 啟用與否
2、SMS
zabbix發送簡訊,使用串列GSM調試解調器連接到zabbix server的serial port
先決條件:
串列設備(正常情況下在linux的/dev/ttyS0)的速度取決於modem。zabbix不設置串列鏈接的速度。
zabbix user擁有對串列設備的讀寫許可權,運行ls -l /dev/ttyS0查看當前許可權
GSM調試解調器擁有PIN碼,PIN也可以禁用使用命令 AT+CPIN="NNNN"輸入PIN, 必須有雙引號。
已經測試好的modem Siemens MC35 Teltonika ModemCOM/G10
配置SMS作為發送通道,需要配置SMS作為媒介類型並且在用戶界面配置接收手機號
配置
依次點擊 Administration--->Media types,點擊創建media type或使用預先的配置
sms的Media type表屬性
Description media type名
Type 選擇SMS
GSM modem 選擇設備如 /dev/ttyS0
options選項卡見E-mail
配置用戶媒介
依次點擊 Administration(管理)--->Users(用戶)
點擊用戶的屬性表,在Media(媒介)表中點擊add
types 選擇SMS作為媒介
Send to 輸入用戶手機號
When active 設置發送時間如工作日(1-5,09:00-18:00)可以使用宏
Use if severity 指定想要接受的告警等級
status 啟用與否
3、Jabber (略)
4、Ez Texing(略)
5、Custom alertscripts
如果不滿足於存在的媒介來發送警告,可以自定義腳本進行發送
警告腳本在zabbix server上執行,這些腳本位於server配置文件AlertScriptsPath變數(默認/usr/local/share/zabbix/alertscripts)
腳本示例:
#!/bin/bash
to=$1
subject=$2
body=$3
cat <<EOF |mail -s "$subject" "$to"
$bodyEOF
從3.4開始zabbix會檢查exit code(shell執行返回碼,0為成功),若exit code 不等於0,則認為執行失敗,zabbix會重復執行
script不保存環境變數,所以環境變數要精確指定
配置
依次點擊 Administration--->Media types,點擊創建media type
mediatype表屬性
Name 輸入媒介的名字
Type 選擇Script作為類型
Script name 輸入腳本的名字(zabbix server中的腳本文件)
Script parameters 添加命令行參數到腳本
可支持ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}等宏,
{ALERT.SENDTO} 用戶媒介中的send to(收件人)的值
{ALERT.SUBJECT} 動作配置中的Default subject(默認標題)
{ALERT.MESSAGE} 動作配置中的Default message(消息內容)
options表中定義了處理流程,見E-mail的說明
配置用戶媒介User media
依次點擊 Administration(管理)--->Users(用戶)
點擊用戶的屬性表,在Media(媒介)表中點擊add
用戶媒介屬性
Type 選擇自定義腳本的媒介類型
Send to 指定告警接收人
When active 設置發送時間如工作日(1-5,09:00-18:00)可以使用宏
Use if serverity 指定想要接受的告警等級
status 啟用與否
二、動作
如果你希望發生事件時會觸發一些操作,那麼你需要配置action
動作可以定義回應所有支持的事件類型,
事件類型:
Trigger events觸發器事件,當觸發器狀態從ok改變到problem或相反。
Discovery events 當自動發現產生
Auto registration events當新的agent自動注冊時,或者經注冊過的主機元數據改變
Internal events當監控項變為不支持或觸發器狀態變為unknown時
配置一個動作
依次 Configuration ——>Actions
從event source中選擇需要的源(分為:觸發器源,自動發現源,自動注冊源,事件源)
點擊創建動作
選擇操作執行的條件
選擇具體操作
選擇恢復操作
動作表的屬性
Name 唯一動作名
Type of calcaulation 選擇條件觸發的計算方法
And 必須符合所有條件
Or 只要一個條件符合即可
And/Or 結合二者,不同類型的條件用And,同一類型的條件用Or
Custom expression 用戶自定義
Conditions 觸發動作的一系列條件、
New condition 選擇新的動作觸發條件
Enabled 啟用動作
條件設置
基於觸發器的條件
Application 應用集
Host group 主機組
Template 模板
Host 主機
Tag 標簽(串)
tag value 標簽值
Trigger 觸發器
Trigger name 觸發器名字
Trigger severity 觸發器等級
Time period 觸發時間
Problem is suppressed 觸發問題是否意料之中,如主機維護
基於自動發現的條件
Host IP 指定主機ip地址自動發現范圍 格式: 單獨的ip:192.168.1.33 范圍ip: 192.168.1-101.1-254 Ip mask: 192.168.4。0/24
Service type 服務類型
service port 服務埠
Discovery rule 指定自動發現規則
Discovery check
Discovery object
Discovery status
Uptime/Downtime
Received value
Proxy
基於自動注冊的條件
Host metadata 由zabbix_agentd.conf 文件中的HostMetadata變數定義
Host name
Proxy
基於內部事件的條件
Application
Event type
Host group
Template
Host
條件匹配後,就需要執行響應的動作了
可以支持以下動作
send a message
execute a remote command
add host
remove host
enable host
disable host
add to host group
remove from host group
link to template
unlink from template
set host inventory mode
執行遠程命令
確保配置文件中(zabbix_agentd.conf)EnableRemoteCommands 參數設置為1
加入zabbix用戶到sudo,vim /etc/sudoer
zabbix ALL=NOPASS: ALL #所有命令不需密碼
zabbix ALL=NOPASS: /etc/init.d/apache restart #指定某一命令不需要密碼
觸發操作後,使用宏 編輯信息
如 告警信息模板
標題 伺服器:{HOST.NAME} - 發生: {TRIGGER.NAME}故障
信息 告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
恢復信息
標題 伺服器:{HOST.NAME} - {TRIGGER.NAME} 已恢復
信息 告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續時間:{EVENT.AGE}
事件ID:{EVENT.ID}
㈢ 如何用zabbix來監控磁碟IO
使用zabbix監控磁碟IO
前面的文章介紹了zabbix簡單的安裝,下面介紹下利用zabbix監控磁碟IO的方法
默認的 Zabbix 監控模板中,對於磁碟主要是剩餘空間之類的監控,對於 IO 方面卻沒有,好在 Zabbix 提供了豐富的定製功能,可自行添加想要監控的任意內容。具體步驟如下:
1、 在被監控伺服器的配置文件(/etc/zabbix/zabbix_agentd.conf)中添加以下內容:
###disk io
UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'
UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
可以先測試看其是否生效,使用如下命令,看是否正常返回數字。注意在命令行運行時,grep 那裡的 $1 需根據自己磁碟設定修改為 sda 或 sdb,awk 那裡需去除一個 $ 符號。
cat /proc/diskstats | grep sda | head -1 | awk '{print $4}'
2、被監控主機重啟 agent
/etc/init.d/zabbix_agentd_ctl restart
3、在 zabbix server 上測試能否接收數據,將其中的 AgentServerIP 修改為被監控伺服器的IP,注意這里是在運行 zabbix 服務端的機器上執行此操作。如果返回的是一串數字則正確,如果返回ZBX_NOTSUPPORTED ,請檢查確認被監控主機的 agent 是否有重啟,網路埠是否開放。
zabbix_get -s AgentServerIP -p 10050 -k custom.vfs.dev.write.ops[sda]
4、在 zabbix web 配置界面的模板中,導入這里提供的模板。並將此模板關聯到要監控的伺服器主機上,很快就可以在 Latest data 中看到獲取的數據並可畫出趨勢圖了。
㈣ zabbix-ssh 執行命令採集數據
1. 名稱為這個監控項的名稱
2. 類型選 ssh客戶端
3. 鍵值 單獨的描述short description,這個建議寫,如果不寫,一個主機的鍵值就不能重復。一個主機下多個ssh採集監控項就不能用。ip如果不是對應的主機這里就要寫,埠號沒變可留空,有變要填 寫,enconding默認留空即可
鍵值例子ssh.run[ssh-test,1.1.1.1,,]
4.認證方式密碼
5. ssh登錄的用戶名和密碼
6. 登錄 後執行採集數據的命令比如 free -m
㈤ centos安裝了zabbix_server後,如何用命令進行啟動和關閉
啟動
system ctl start zabbix-server
關閉
system ctl stop zabbix-server
㈥ windows平台 zabbix遠程執行命令(remote commands)
按住WINDOWS微標+R就會出來運行項開始→運行→命令集錦!winver---------檢查Windows版本wmimgmt.msc----打開windows管理體系結構(WMI)wupdmgr--------windows更新程序wscript--------windows腳本宿主設置write----------寫字板winmsd---------系統信息wiaacmgr-------掃描儀和照相機向導winchat--------XP自帶區域網聊天mem.exe--------顯示內存使用情況Msconfig.exe---系統配置實用程序mplayer2-------簡易widnowsmediaplayermspaint--------畫圖板mstsc----------遠程桌面連接mplayer2-------媒體播放機magnify--------放大鏡實用程序mmc------------打開控制台mobsync--------同步命令dxdiag---------檢查DirectX信息drwtsn32------系統醫生devmgmt.msc---設備管理器dfrg.msc-------磁碟碎片整理程序diskmgmt.msc---磁碟管理實用程序dcomcnfg-------打開系統組件服務ddeshare-------打開DDE共享設置dvdplay--------DVD播放器netstopmessenger-----停止信使服務netstartmessenger----開始信使服務notepad--------打開記事本nslookup-------網路管理的工具向導ntbackup-------系統備份和還原narrator-------屏幕「講述人」ntmsmgr.msc----移動存儲管理器ntmsoprq.msc---移動存儲管理員操作請求netstat-an----(TC)命令檢查介面syncapp--------創建一個公文包sysedit--------系統配置編輯器sigverif-------文件簽名驗證程序sndrec32-------錄音機shrpubw--------創建共享文件夾secpol.msc-----本地安全策略syskey---------系統加密,一旦加密就不能解開,保護windowsxp系統的雙重密碼services.msc---本地服務設置Sndvol32-------音量控製程序sfc.exe--------系統文件檢查器sfc/scannow---windows文件保護tsshutdn-------60秒倒計時關機命令tourstart------xp簡介(安裝完成後出現的漫遊xp程序)taskmgr--------任務管理器eventvwr-------事件查看器eudcedit-------造字程序explorer-------打開資源管理器packager-------對象包裝程序perfmon.msc----計算機性能監測程序progman--------程序管理器regedit.exe----注冊表rsop.msc-------組策略結果集regedt32-------注冊表編輯器rononce-p----15秒關機regsvr32/u*.dll----停止dll文件運行regsvr32/uzipfldr.dll------取消ZIP支持cmd.exe--------CMD命令提示符chkdsk.exe-----Chkdsk磁碟檢查certmgr.msc----證書管理實用程序calc-----------啟動計算器charmap--------啟動字元映射表cliconfg-------SQLSERVER客戶端網路實用程序Clipbrd--------剪貼板查看器conf-----------啟動netmeetingcompmgmt.msc---計算機管理cleanmgr-------垃圾整理ciadv.msc------索引服務程序osk------------打開屏幕鍵盤odbcad32-------ODBC數據源管理器oobe/msoobe/a----檢查XP是否激活lusrmgr.msc----本機用戶和組logoff---------注銷命令iexpress-------木馬捆綁工具,系統自帶Nslookup-------IP地址偵測器fsmgmt.msc-----共享文件夾管理器utilman--------輔助工具管理器gpedit.msc-----組策略假如一些命令禁用了如何更改?大家都知道開啟和停止服務要用命令netstartservicename和netstopservicename吧但是怎麼才能在命令行下設置一個服務的啟動狀態呢?比如說禁用它?系統自帶的東東里可能有,但是我沒研究過,我只說pstools里帶的psservice命令在命令行下輸入psservice/?命令可以看到使用說明:Usage:psservice[\\Computer[-uUsername[-pPassword]]]Cmdisoneofthefollowing:這是psservice命令的參數列表,但是今天我們用到的是這個列表裡沒有出現的一個參數:setconfig比如說要禁用UninterruptiblePowerSupply服務(UPS),我們知道它的服務名稱是UPS,那麼只要輸入以下命令:psservicesetconfigupsdisabled就可以把這個服務禁用掉了其中的disabled可以換成auto和demand,分別是對應自動和手動
㈦ zabbix-agent 使用普通用戶來運行
使用yum來安裝的 zabbix-agent 默認使用zabbix運行,通常情況下這沒有什麼問題。近期我們有個需求,我們希望通過zabbix來監控java進程中jvm的信息。對jvm的監控我們通常使用jstat命令,這要求使用該命令的用戶和java進程啟動的用戶為同一用戶。
由於我們的java進程都是使用app用戶來啟動的,也就是說如果我們要使用zabbix來調用jstat命令,那麼zabbix也需要使用app用戶來啟動。
實現的方法比較簡單,就是修改zabbix-agent相關的配置文件,如果已經啟動過的,那麼還需要修改對應的目錄屬主。
使用rpm命令我們查看下安裝zabbix-agent會在創建那些目錄並且生成什麼樣的配置文件。
從上面的結果我們可以知道需要修改哪些配置文件,咱們依次來修改。
如果你的zabbix-agent在修改上述配置前已經啟動過了,那麼在修改配置後,在重啟zabbix-agent前,你需要修改zabbix-agent的相關目錄屬主。
做完以上修改,咱們的zabbix-agent就能使用app用戶來啟動了。
㈧ 如何通過zabbix實現手動執行遠程命令
不太理解你的手動執行遠程命令是什麼意思。
zabbix 提供了遠程執行命令的功能,你可以通過配置action(動作)里的step(步驟),
來執行遠程命令。前提你還需要在agent端把這個功能打開。
㈨ 通過zabbix怎麼去監控伺服器狀態,然後自動重啟
zabbix可以執行兩種操作,一種是發送命令,一種是執行腳本,這兩種都可以實現重啟伺服器的效果,如果要針對某一種情況,進行重啟,這是trigger觸發器,比如檢測到cpu使用率超過90%,我發送reboot
㈩ 如何啟動zabbix
我安裝了一個zabbix監控,一直很順利,後來不知道問什麼服務起不來了,伺服器總是提醒我10051埠沒有打開,於是我仔細理了一遍又一遍,服務總是啟動不起來:
Starting zabbix_server: /etc/init.d/functions: line 536: /etc/init.d//sbin/zabbix_server: No such file or directory
於是我打開/etc/init.d/zabbix_server配置文件中
發現
BASEDIR=/usr/local/zabbix/zabbix
路徑不對
原來是我執行
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g'/etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g'/etc/init.d/zabbix_agentd
的時候執行了兩遍,感覺特別的手欠,後來服務死活啟動不起來,然後把啟動文件zabbix_server和zabbix_agentd中的BASEDIR=/usr/local/zabbix/zabbix改成BASEDIR=/usr/local/zabbix/就OK了。
vi zabbix_server
# Edit these to match your system settings
# Zabbix-Directory
BASEDIR=/usr/local/zabbix/
service zabbix_server start
Starting zabbix_server: [ OK ]
service zabbix_agentd start
Starting zabbix_agentd: [ OK ]