下面介绍的是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