zabbix

1、什麼是zabbix及優缺點(對比cacti和nagios)
 
Zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
 
agent端:主機經過安裝agent方式採集數據。
server端:經過收集agent發送的數據,寫入數據庫(MySQL,ORACLE等),再經過php+apache在web前端展現.
 
zabbix = cacti + nagios
  • 優勢:基於兩款工具優勢於一身並更強大,實現企業級分佈式監控。
  • 缺點:2.2版本帶寬佔用大可是升級到2.4版本後更節省了帶寬資源,其它再無發現。
 
2、監控功能
 主機的性能監控、網絡設備性能監控、數據庫性能監控、多種告警方式、詳細的報表圖表繪製 
監控主機zabbix有專用的agent,能夠監控Linux,Windows,FreeBSD等
監控網絡設備zabbix經過SNMP,ssh(很少用)
可監控對象
  • 設備:服務器,路由器,交換機
  • 軟件:OS,網絡,應用程序
  • 主機性能指標監控
  • 故障監控: down機,服務不可用,主機不可達
 
3、工做原理 
一個監控系統運行的大概的流程是這樣的: 
zabbix agent須要安裝到被監控的主機上,它負責按期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展示和繪圖。這裏agent收集數據分爲主動和被動兩種模式:
 
主動:agent請求server獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
 
 
4、zabbix的組件及進程
 重要組件
zabbix由如下幾個組件部分構成:
一、Zabbix Server:負責接收agent發送的報告信息的核心組件,全部配置,統計數據及操做數據均由其組織進行;
二、Database Storage:專用於存儲全部配置信息,以及由zabbix收集的數據;
三、Web interface:zabbix的GUI接口,一般與Server運行在同一臺主機上;界面
四、Proxy:可選組件,經常使用於分佈監控環境中,代理Server收集部分被監控端的監控數據並統一發往Server端; 
五、Agent:部署在被監控主機上 ,負責收集本地數據併發往Server端或Proxy端;
注:zabbix node也是 zabbix server的一種 。
 
常見進程 
5、zabbix監控環境中基本概念 
一、主機(host):要監控的網絡設備,可由IP或DNS名稱指定;
二、主機組(host group):主機的邏輯容器,能夠包含主機和模板,但同一個組織內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用;
三、監控項(item):一個特定監控指標的相關的數據;這些數據來自於被監控對象;item是zabbix進行數據收集的核心,相對某個監控對象,每一個item都由"key"標識;
四、觸發器(trigger):一個表達式,用於評估某監控對象的特定item內接收到的數據是否在合理範圍內,也就是閾值;接收的數據量大於閾值時,觸發器狀態將從"OK"轉變爲"Problem",當數據再次恢復到合理範圍,又轉變爲"OK";
五、事件(event):觸發一個值得關注的事情,好比觸發器狀態轉變,新的agent或從新上線的agent的自動註冊等; 
六、動做(action):指對於特定事件事先定義的處理方法,如發送通知,什麼時候執行操做;
七、報警升級(escalation):發送警報或者執行遠程命令的自定義方案,如每隔5分鐘發送一次警報,共發送5次等; 
八、媒介(media):發送通知的手段或者通道,如Email、Jabber或者SMS等; 
九、通知(notification):經過選定的媒介向用戶發送的有關某事件的信息;
十、遠程命令(remote command):預約義的命令,可在被監控主機處於某特定條件下時自動執行;
十一、模板(template):用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、application以及low-level discovery rule;模板能夠直接連接至某個主機; 
十二、應用(application):一組item的集合; 
1三、web場景(web scennario):用於檢測web站點可用性的一個或多個HTTP請求;
1四、前端(frontend):Zabbix的web接口;
 
 
在centos7.3上安裝zabbix4.0 
 
#安裝mariadb10.3數據庫
vim /etc/yum.repos.d/mariadb(隨意名稱).repo
[mariadb] name=MariaDB baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/ gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 #安裝mariadb數據庫
yum -y install MariaDB
#安裝zabbix4.0的源 rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm yum clean all
#安裝zabbix所需的組件 yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent(客戶端只須要安裝agent能被檢測就行)
分別對應着sever端、web端、client端
 
建立編輯zabbix所需數據庫 # mysql -uroot -p1 mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; mysql> quit;
#導入zabbix服務器所須要的表和數據 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#編輯文件/etc/zabbix/zabbix_server.conf DBPassword=zabbix
#編輯文件設置時區/etc/httpd/conf.d/zabbix.conf php_value date.timezone Europe/Riga(打開註釋)
將時差改成中國的  Asia/shanghai
#啓動服務和開機自啓 systemctl restart zabbix-server zabbix-agent httpd systemctl enable zabbix-server zabbix-agent httpd
#瀏覽器訪問 http://server_$ip/zabbix
以上步驟在zabbix官網下載中有一樣檔案https://www.zabbix.com/download
注意:登陸配置時確保狀態OK ,有紅色排查問題,否則會有後遺症
登陸時用戶名爲Admin(超級管理員)    密碼爲zabbix
 
有亂碼方塊的解決辦法
在windows下的C:\Windows\Fonts下找到宋體字文件simsun.ttc    上傳到linux服務器中
cd /usr/share/zabbix/fonts
#將原來的字體備份 mv graphfont.ttf graphfont.ttf.bak
#把windows中的字體更名爲graphfont.ttf mv simsun.ttc graphfont.ttf
 
監控其餘主機,編輯被檢測端文件
vim /etc/zabbix/zabbix_agentd.conf 
更改sever=192.168.7.100  被動模式
ServerActive=192.168.7.100  主動模式
註釋#   Hostname=Zabbix server       手寫主機名稱
打開 HostnameItem=system.hostname    自動獲取主機名稱
 
tail -f /var/log/zabbix/zabbix_sever.log    查看日誌 檢測agent是否開啓
 
配置Zabbix服務端郵件報警
 
1、關閉sendmail或者postfix
service sendmail stop #關閉
chkconfig sendmail off #禁止開機啓動
service postfix stop
chkconfig postfix off
備註:使用外部郵箱帳號時,不須要啓動sendmail或者postfix
若是在sendmail或者postfix啓動的同時使用外部郵箱發送報警郵件,首先會讀取外部郵箱配置信息。
 
2、安裝郵件發送工具mailx  (監控端)
下載mailx:
yum -y install mailx
whereis mailx      #查看安裝路徑
mailx -V  #查看版本信息
 
3、配置Zabbix服務端外部郵箱
vim /etc/mail.rc #編輯,添加如下信息
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com smtp-auth-password=passwd
set smtp-auth=login
 
 
4、測試郵箱是否配置成功
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#測試發送郵件,標題zabbix,郵件內容:zabbix test mail,發送到的郵箱:yyy@163.com
#這時候,郵箱yyy@163.com會收到來自xxx@163.com的測試郵件。
 
 
5、添加Zabbix服務端郵件發送腳本
cd /usr/lib/zabbix/alertscripts    #進入腳本存放目錄編輯腳本
(zabbix_sever.conf設定會自動調用這個目錄的腳本) 
v im sendmail.sh #編輯,添加如下代碼
#!/usr/bin/sh echo 'start' >> /tmp/zabbix.log messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mail -s "${subject}" $1 echo "end" >> /tmp/zabbix.log
 
保存退出後
chown zabbix.zabbix sendmail.sh
#設置腳本全部者爲zabbix用戶
chmod +x sendmail.sh
#設置腳本執行權限
chown zabbix.zabbix /tmp/zabbix.log
#建立腳本里最後一行的日誌文件並設置全部者
 
測試腳本:./sendmail.sh xxx@163.com(發送對象) subject(主題) message(信息內容)
對應着報警媒介類型上面那個界面
 
管理->用戶->Admin->報警媒介->添加:設置Zabbix用戶報警郵箱地址
 
六:配置->動做->建立動做:設置Zabbix觸發報警的動做
將如下內容分別複製進去
主題
操做主題:
恢復操做主題:在操做主題右側
 
默認標題
Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
消息內容
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
 
 
七: 測試Zabbix報警
關閉Zabbix客戶端服務
service zabbix_agentd stop
查看xxx@163.com郵箱,會收到報警郵件
開啓Zabbix客戶端服務
service zabbix_agentd start
查看xxx@163.com郵箱,會收到恢復郵件
 
 
 
 
 
錯誤描述
"cannot send list of active checks to []: host [] not found"
解決辦法
一、由於web端上被監控端的主機名和zabbix_agentd.conf中的Hostname名字不同,改成同樣的便可
二、防火牆未關閉
三、模板未添加
相關文章
相關標籤/搜索