Zabbix(一):server,agent端 安裝配置及主機,監控項,觸發器,動作,媒介配置步驟
zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供柔軟的通知機制以讓系統管理員快速定位/解決存在的各種問題。
Zabbix的邏輯組件:
- 主機(host):被監控的網絡設備,通常可以使用IP或DNS名稱來指定;
- 主機組(hostgroup):主機的邏輯容器,可以包含主機和模板,但同一個主機組內的主機和模板不能互相鏈接;主機組通常在給用戶或用戶組指派監控權限時被使用;
- 監控項(item):一個特定的監控指標的相關數據,這些數據都來自於被監控設備;item是zabbix進行數據收集的核心,因此如果未定義item,就沒有數據,每個item都由特定的key進行標識;
key:實現獲取監控目標上的數據的命令或腳本的名稱;
- 觸發器(trigger):一個條件表達式,即用於評估某個監控對象的某特定item所接收到的數據是否在合理範圍內,即:定於閾值;如果接收到的數據在合理範圍之外,則觸發器的狀態將從OK轉換為Problem;當接收的數據重新回歸到合理範圍時,觸發器的狀態將會從Problem轉換為OK;
- 事件(event):即發生了一個值得關註的事情;
- 動作(action):指對於特定事件事先定義好的處理方法;通常是由條件和操作組成;
- 媒介(media):發送通知消息的手段或通道,如:Email,Jabber,微信,SMS等;
- 通知(notification):通過選定的媒介向相應用戶發送的有關某事件的信息;
- 遠程命令(remote command):預定義的命令或腳本,可以在被監控主機處於特定條件時自動執行;
- 報警升級(escalation):發送報警信息或執行遠程命令的自定義方案;
- 模版(template):用於快速定義被監控主機的各項item的預設項目集合,通常可以包含:item、trigger、graph、screen、application以及low-level discover rule等;模版可以直接鏈接到單個主機;
- 應用(application):同一類監控項的結合;
- web場景(web scennario):用於檢測web站點的可用性的一個或多個http協議的請求;
- 前端(frontend):Zabbix的web接口
- 圖形(graph):用於展示歷史數據或趨勢數據的圖像;
- 屏幕(screen):由多個graph組成;
下面進行簡單的zabbix配置
--------------------------------------------------------------------
服務器端
1.安裝Zabbix的web GUI及其他:
yum install httpd php php-mbstring php-gd php-mysql php-bcmath php-ldap php-xml mariadb-server -y
2.安裝zabbix
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent zabbix-get -y
3.啟動MariaDB並創建數據庫及授權用戶;
systemctl start mariadb mysql myslq> create database zabbix charset 'utf8'; mysql> grant all on zabbix.* to zbxuser@'127.0.0.1' identified by 'zbxpass'; mysql> grant all on zabbix.* to zbxuser@'localhost' identified by 'zbxpass'; mysql> grant all on zabbix.* to zbxuser@'172.16.%.%' identified by 'zbxpass';
4.數據庫的初始化:
如果是2.x版本的zabbix則有三個SQL腳本,如果是3.x版本的zabbix只有1個SQL腳本,下面這個。
cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz /root gunzip create.sql.gz mysql -uroot -hlocalhost -p zabbix < create.sql
5.Zabbix服務端的配置文件:/etc/zabbix/zabbix_server.conf
全局通用配置參數:
ListenPort=10051 SourceIP=172.16.1.2 LogType=file LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 DebugLevel=3 PidFile=/var/run/zabbix/zabbix_server.pid DBHost=172.16.1.2 DBName=zabbix DBUser=zbxuser DBPassword=zbxpass DBSocket=/tmp/mysql.sock | /var/lib/mysql/mysql.sock DBPort=3306 StartPollers=5 StartPreprocessors=3 StartPollersUnreachable=1 StartTrappers=5 StartPingers=1 StartDiscoverers=1 StartHTTPPollers=1 StartTimers=1 StartEscalators=1 StartAlerters=3
6.配置zabbix-web:
配置php的時區設定,下面兩個任意一個即可,也可兩個都配置。
1./etc/php.ini
date.timezone = Asia/Shanghai
2./etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
7.重啟httpd服務,並啟動zabbix-server服務
systemctl restart httpd.service
systemctl start zabbix-server.service
8.訪問URL:
http://172.16.1.2/zabbix
看到php相關應用都是OK即可
輸入數據庫相關內容,再輸入以下相關內容
輸入默認用戶名/密碼:admin/zabbix
------------------------------------------------------------------------------------------
agent端
1.安裝zabbix
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
yum install -y zabbix-agent zabbix-sender
2.改主機的名字
hostname
hostnamectl set-hostname zrs2.zrs.com
3.配置一下配置文件:/etc/zabbix/zabbix_agentd.conf
[root@zrs2 ~]# egrep -v '^$|#' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=172.16.1.2 ListenPort=10050 StartAgents=3 ServerActive=172.16.1.2 Hostname=zrs2.zrs.com Include=/etc/zabbix/zabbix_agentd.d/*.conf
4.啟動並查看,沒有問題
[root@zrs2 ~]# systemctl start zabbix-agent.service
[root@zrs2 ~]# systemctl status zabbix-agent.service
----------------------------------------------------------------------------------
1.創建主機組
在Configuration中的Host groups中添加主機組,自定義主機組名字,點擊add即可。
2.創建主機
在Configuration中的Host groups中找到剛才創建的test group 點擊後面的Hosts,然後Create host。
第一個是主機名字,即被監控的主機的名字,務必填寫正確,第二個是可視化名字,第三個是所屬的主機組,右邊的框中如果沒有,可自己創建,最後是被監控的主機IP,也可以填寫DNS name,二選一,因為是進行簡單的配置,所以到這就行了,點擊最下面的Add即可。
3.創建應用和監控項: Applications + Items
在Configuration中的Hosts中的zrs2後面點擊Applications,進入後點擊Create application,自定義Name的名字即可,創建三個如下
在Configuration中的Hosts中的zrs2後面點擊Items,進入後點擊Create item,自定義Name的名字,key的值從select中選擇需要監測的即可,為了采集更多的樣本,更新數據的時間設置短一些,applications選擇對應的,點擊最下面的Add。cpu的上下文切換監控就創建好了。
下面再創建兩個item,監控入站流量和出站流量。可以在Preprocessing中選擇Preprocessing steps:Change per second 來監控數據每秒變化量。
4.Trigger觸發器
定義一個traffic too fast當入站流量達到100時,報警
觸發器的表達式:
{Server:key[parameters].function(arguments)}<operator><constant>
Server:被監控的主機名稱
key:選中的item對應的key;
parameters:key要求的參數,如果key需要則必須給出;
function:評估采集到的數據是否在合理範圍內時所使用的函數;
評估過程:
1.可以根據采集數據的次數;
2.可以指定在一定時間範圍內采集到的數據;
常用的函數:
last、avg、max、min、sum、count、change、delta、diff、iregexp、nodata、date、dayofweek、...
arguments:函數的參數
大多數的數值函數可以進行數值計算,也可以接收時間為參數進行計算;如果在數值參數之前使用"#"作為前綴,如:"#NUM"表示NUM次的取值;如果在數值參數之前不使用"#"作為前綴,如"NUM"表示NUM秒的時間內的所有數值取值;
如:
sum(100):表示在100秒內取得的所有數據的和;
sum(#100):表示在最近100次取值之和;
last(100):表示最近的100秒時間內的取值;
last(#1):表示最近一次的取值,相當於last(0)
此外,avg,count,last,max,min等函數還支持第二參數,用於指定時間;
如:max(1h,7d)
operator:操作符,表達式運算的運算符;
比較運算:>, <, =, #(Not Equal)
算術運算:+, -, *, /
邏輯運算:&, |
為了觸發器被觸發需要定義動作actions
執行動作後的的操作:發送一個消息給管理員
這時需要定義Configuration中users下面的media
再定義media types中的email中的media type
當入站流量過大超過100時就會觸發警報,發郵件給管理員。
Zabbix(一):server,agent端 安裝配置及主機,監控項,觸發器,動作,媒介配置步驟