下面介紹的是zabbix監控
一、監控基礎
1、監控處理過程
採樣---->存儲----->報警---->展示
(1)、採樣
採樣的監控數據採集方法:ssh/telnet、SNMP、Protocol v3、IPMI(智能平臺管理接口)、TLS。
(2)、數據存儲
數據類型:歷史數據(nvps)、趨勢數據。
數據存儲系統:rrd(輪詢數據庫);
SQL(關係型數據庫,MySQL/PostgreSQL);
NoSQL(反關係型數據庫,Redis/MangoDB);
時間序列存儲。
(3)、主機的四種監控接口:zbx、snmp、jmx、ipmi。
2、常用的開源監控工具
(1)、cacti:強大的【數據展示】功能。
cacti是基於php來編寫的;
利用SNMP協議採集樣本數據;
利用rrdtool進行數據存儲;
報警機制有限。
(2)、nagios:強大的【報警機制】。
nagios不支持歷史數據和趨勢數據保存;
數據展示功能有限。
(3)、zabbix:集cacti、nagios優點。
強大的數據展示功能;
強大的報警機制;
支持歷史數據和趨勢數據的存儲;
支持腳本實現故障的數據修復。
(4)、ganglia:用於集羣監控。
ganglia用於集羣監控時,可以實現多臺主機的多種集合數據的集中展示。
二、zabbix -----------www.zabbix.com
1、zabbix監控特性
(1)、數據採樣:SNMP,ssh/telnet,server/agent,IPMI,jmx,自定義。
(2)、數據存儲:MySQL、PostgreSQL
(3)、報警機制:支持腳本
(4)、數據展示:實時繪圖
graph、screen、slide show、top-map。
(5)、支持模板:快速添加知己和自動部署。
(6)、支持網絡自動發現。
(7)、支持分佈式監控(可用反代)。
(8)、豐富的API。
2、zabbix組件架構
zabbix-server:server守護進程;
zabbix-agent:agent守護進程;
zabbix-proxy:代理服務器(用於分佈式監控);
zabbix-get:運行於server端,向agent端發送數據採集請求;
zabbix-sender:運行於agent端,向server端發送數據;
zabbix-java-gateway:Java網關;
zabbix-database:關係型數據庫;
zabbix-web:zabbix的web GUI接口。
3、zabbix邏輯組件
(1)、host:監控網絡設備,IP、DNS名稱。
(2)、hostgroup:可以包含主機和模板,指派用戶權限時使用。
(3)、item:監控項,這些數據來自於監控設備,由key進行標識。key就是數據命令或腳本的名稱。
(4)、trigger:觸發器,定於閾值。觸發器狀態爲OK、Problem。
(5)、event:一個值得關注的事件。
(6)、action:據條件進行處理方法。條件、操作組成。
(7)、media:發送消息的手段或通道,如Email,Jabber,SMS等,但國內只可用Email。
(8)、notification(通知):通過媒介向用戶傳送的事件的數據信息。
(9)、remote command:預定義的命令或腳本,可在特定條件下執行。
(10)、escalation:報警升級
(11)、temple:快速定義item項
(12)、application:同一類監控項的組合
(13)、web scennaria:web場景,檢測web站點的可用性
(14)、frontend:前端,zabbix的web接口
(15)、gragh:圖形,顯示歷史數據和趨勢圖像
(16)、screen:屏幕,多個gragh組成
4、zabbix的安裝
(1)、安裝MariaDB,創建數據庫,授權用戶
# mysql
mysql> 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 'abxpass';
mysql> grant all on zabbix.* to zbxuser@'172.16.%.%' identified by 'zbxpass';
(2)、安裝zabbix【服務器】端程序
# yum -y install zabbix-server-mysql zabbix-get
(3)、安裝zabbix的web GUI
# yum -y install httpd php php-mbstring php-gd php-mysql php-bcmath php-ldap php-xml
# yum -y install zabbix-web zabbix-web-mysql
(4)、數據庫的初始化
# cp /usr/share/doc/zabbix-server-mysql /root
# gunzip create.sql.gz
# mysql -uroot -hlocalhost -p zabbix < create.sql
5、zabbix的配置文件
配置文件:/etc/zabbix/zabbix_server.conf
(1)、全局通用配置段:
ListenPort=10051
SourceIP=
LogType=file
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zbxuser
DBPassword=zbxpass
DBSocket=/tmp/mysql.sock | /var/lib/mysql/mysql.sock
DBPort=3306
(2)、高級配置段
(3)、負載模塊段
(4)、TLS參數段
配置zabbix-web,配置php進行時區設定進行訪問:
方法一:修改/etc/php.ini
date.timezone = Asia/Shanghai
方法二:修改/etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
修改時區後,訪問URL(http://HOST/zabbix),用戶名和密碼爲:admin/zabbix。登錄安裝完成後會生成配置文件/etc/zabbix/web/zabbix.conf.php。
6、zabbix的客戶端安裝
# yum -y install zabbix-agent zabbix-sender
配置文件:/etc/zabbix/zabbix_agentd.conf
(1)、全局配置參數
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogType=file
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
SourceIP=
EnableRemoteCommands=0
被動監控相關參數:
Server=127.0.0.1
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
主動監控相關參數:
ServerActive=127.0.0.1
Hostname=Zabbix sever
HostnameItem=system.hostname
HostMetadata=
HostMetadataItem
RefreshActiveChecks=120
BufferSend=5
BufferSize=100
MaxLinesPerSecond=20
(2)、高級配置段
三、zabbix監控配置流程
1、zabbix監控配置流程
主機組;
主機;
應用;
監控項(key+parameters);
觸發器;
動作(觸發器觸發後的動作);
媒介(Email)。
2、觸發器
格式:{Server:key[parameter].function[arguments]}<操作符><constant>
arguments:"#NUM"表次數,"NUM"表時間。last(0)表最近0秒,即最近一次。
3、action
Source:trigger
condition:條件,可用"與或非"
operation: 發送的通知、遠程命令
zabbix腳本:/usr/lib/zabbix/alertscrits/*
4、自定義參數,修改agent
agent配置文件:/etc/zabbix/zabbix_agentd.conf
添加修改爲:UserParameter=<key>[*],<command>
# cd /etc/nginx/conf
# cat userparameter_nginx.conf
# cat userparameter_mem_mon.conf
5、宏 ---------------用於調用替換
全局宏、模板宏、主機宏。內建宏、自定義宏。
6、網絡發現
網絡發現的兩個階段:discovery階段、actions階段。
網絡發現的特點:加速zabbix部署、簡化管理、可以無需手動管理。
7、web場景
web場景,指監控web站點的資源下載和頁面響應等數據。
web場景,包含一個或多個http請求或步驟(steps)。
8、主動、被動檢測
被動檢測:當server向agent請求相關的items配置數據時,agent接收請求並處理,然後才發送數據給server。
主動檢測(active):agent請求與自己相關的items配置數據,主動將自己的監控數據發給server。
9、zabbix基於SNMP的監控 ------------161/udp, 162/udp。
配置文件:/etc/snmp/snmp.conf
SNMP監控步驟:獲取數據(get)、設置數據(set)、主動監控(trap)。
10、zabbix的代理
兩種代理模型:server-node-agent, server-proxy-agent。
zabbix代理包:
代理包:zabbix-proxy-mysql, zabbix-get
傳回server:zabbix-sender
監控proxy主機:zabbix-agent