zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Zabbix之基础大全

2023-02-18 16:37:53 时间

一、监控基础 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 Zabbix功能特点 概述 Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。 数据收集     可用性和性能检查     支持SNMP(包括主动轮训和被动获取),IPMI,JMX,VMware监控     自定义检查     按照自定义的间隔收集需要的数据     通过server/proxy+agents来执行 灵活的阀值定义     您可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值 高度可配置化的告警     可根据递增机制,接收方和媒介类型自定义发送告警通知     使用宏变量可以使告警通知更加高效有用     自动相应动作可包含远程命令 实时图表绘制     使用内置图表绘制功能可以将监控项的内容实时绘制成图表 Web监控功能     Zabbix可以追踪模拟鼠标在Web网站上的点击操作,来检查Web的功能和响应时间 丰富的可视化选项     支持创建自定义的图表,一个试图集中展现多个监控项     网络拓扑图     以仪表盘的样式自定义大屏展现和幻灯片轮询播放     报表     监控内容的高级(业务)视图 历史数据存储     数据库数据     可配置历史数据     内置数据管理机制(housekeeping) 配置简单     将被监控对象添加为主机     在数据库中获取主机进行监视     应用模板来监控设备 使用模板     在模板中分组检查     模板可以关联其他模板 网络发现     自动发现网络设备     监控代理自动注册     发现文件系统,网络接口和SNMP OID值 快捷的Web界面     PHP Web前端     可从任何地方访问     你可以定制自己的操作方式     审核日志 Zabbix API     Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的 权限管理系统     安全用户认证     特定用户可以限制访问特定的视图 功能强大,易于扩展的agent     部署在被监控对象上     支持Linux和Windows 二进制代码     为了性能和更少内存的占用,用C语言编写     便于移植 为复杂环境准备     使用Zabbix proxy代理服务器,使得远程监控更简单 结构 Zabbix由几个主要的软件组件构成,这些组件的功能如下。 Server Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 数据库存储 所有配置信息和Zabbix收集到的数据都被存储在数据库中。 Web界面 为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。 如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。 Proxy代理服务器 Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。 Agent监控代理 Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。 数据流 此外,了解Zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,你必须: 1. 为Server X创建一个host并关联一个用于对CPU进行监控的监控项(Item)。 2. 创建一个Trigger,设置成当CPU负载过高时会触发 3. Trigger被触发,发送告警邮件 虽然看起来有很多步骤,但是使用模板的话操作起来其实很简单,Zabbix这样的设计使得配置机制非常灵活易用。 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部署、简化管理、可以无需手动管理。