下面介绍的是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]}<操作符>
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=
# 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