zabbix基础

监控系统基本介绍:

企业级应用中,服务器数量众多,一般情况下需要维护人员进行长时间对服务器体系、计算机或其他网络设备(包括硬件和软件)进行长时间进行性能跟踪,保证正常稳定安全的运行,于是有了监控系统。

运维行业有句话:“无监控、不运维”,监控俗称“第三只眼”。没了监控,什么基础运维,业务运维都是“瞎子”。所以说监控是运维这个职业的根本。尤其是在现在DevOps这么火的时候,用监控数据给自己撑腰,这显得更加必要,有人说运维是背锅侠,那么,有了监控,有了充足的数据,一切以数据说话,运维还需要背锅吗,所以作为一个运维工程师,如何构建一套监控系统是你的第一件工作。

监控功能

在需要的时刻,提前预警即将出问题,避免故障发生实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速可以找到问题的根源,从而及时处理问题,可以实现网站,应用或者服务器的故障自愈, 保证高可用性以图形或易观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势

开源监控软件:cacti(监控snmp协议,流量数据)、nagios(报警系统,支持多种插件)、zabbix(支持分布式,故障自愈)、smokeping(Windows监控系统)、open-falcon(小米猎鹰)、滴滴夜莺Nightingale、Prometheus(容器和云莺监控)等

商业监控方案:http://ping.chinaz.com/     站长之家

https://www.jiankongbao.com/ 监控宝

https://www.toushibao.com/ 透视宝

https://www.tingyun.com/ 听云

监控的从业务角度,从上到下

①:业务监控(监控pv量、业务指标等)

②:应用监控

③:操作系统监控

监控模式:

①:IPMI:基于硬件的监控模式,基于IPMI,对硬件的本身做监控

②:SNMP:网络数据监控,可以监控防火墙,路由器

③:agent:普通监控模式,代理端(server-agent),被监控主机都需装agent

④:Proxy:分布式监控,每个proxy都有自己的存储体系,如:MySQL,Pgsql

⑤:API:第三方API,实现其他类型的监控

Zabbix基本介绍

Zabbix 是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标。Zabbix 完全开源免费。

Zabbix 的主要特点有:

指标收集:从任何设备、系统、应用程序上进行指标采集

问题监测:定义智能阈值(安全线)

可视化:单一界面管理平台(UI界面统一页面管理)

告警和修复:确保及时、有效的告警

安全和认证:保护您所有层级的数据

轻松搭建部署:大批模板,开箱即用,节省您宝贵的时间

自动发现:自动监控大型动态环境

分布式监控:无限制扩展

ZABBIX API :将 Zabbix 集成到您 IT 环境的其他任何部分

Zabbix完整监控流程:

首先在被监控端安装agent应用程序,让它作为zabbix的被监控端。那么装了zabbix的被监控端就有数据采集的能力,它们会基于主动模式或者被动模式,将对应的历史数据,或者是趋势数据直接传输到zabbix服务端,其服务端会将数据进行汇集,将历史数据存储到数据库,并且会关联它的认证权限系统,将对应的趋势数据放到数据展示区,基于特定的数据格式UI展示出来。同时将其对应的数据汇集到告警策略区,一旦涉及到数据指标超阈值的行为,会触发告警策略,然后会关联到用户管理系统,认证权限系统,媒介系统,动作系统;然后将其发送告警,发送告警会关联后面的告警媒介,基于邮件、微信、电话短信来进行告警。同时将告警的event事件存储到事件管理器,在组合面板控制区展示出来。最后故障修复之后,事件管理器会重新定义事件,将对应修复的故障将其移除。

Zabbix的主要功能:

Zabbix采集到的数据分类

1:历史数据:每一个收集到的监控数据

2:趋势数据(绘图数据)

SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控

灵活的阈值定义

可以参考后端数据库定义非常灵活的告警阈值,即触发器

高度可配置化的告警

可以根据递增计划、接收者、媒介类型自定义发送告警通知;

使用宏变量可以使告警通知变得更加高效有用;

自动操作包含远程执行命令(基于root用户)。

实时图形

使用内置图形功能可以将监控项实时绘制成图形。 Web 监控功能 Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。

丰富的可视化选项

可以组合多个监控项到单个视图中,创建自定义图表;

网络拓扑图;

以仪表盘样式展示自定义聚合图形和幻灯片演示;

报表;

监控资源的更高层次展示视图(业务视图)。

历史数据存储

存储在数据库中的数据;

历史配置;  https://www.zabbix.com/documentation/5.0/zh/manual/introduction/features

内置数据管理机制

配置简单

将被监控设备添加为主机;

主机一旦添加到数据库中,就会采集数据用于监控;

将模板用于监控设备。

使用模板

模板中分组检查;

模板可以关联模板,继承已关联模板的属性。

网络发现

自动发现网络设备;

Zabbix Agent 发现设备后自动注册;

自动发现文件系统、网络接口和 SNMP OIDs 值。

快捷的 Web 界面

基于 PHP 的 Web 前端;

可以从任何地方访问;

可以定制自己的操作方式;

可以通过审计日志来查看你的操作。

Zabbix API

Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。

权限管理系统

安全的用户身份验证;

指定的用户只能查看指定的权限范围内的视图。

功能强大且易于扩展的 Zabbix Agent

部署于被监控对象上;

支持 Linux 和 Windows

二进制守护进程

为了更好的性能和更少的内存占用,采用 C 语言编写;便于移植。

适应更复杂的环境

使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控

Zabbix架构

首先zabbix支持多种模式 ,它支持zabbix-server到zabbix-agent模式,也支持zabbix-server到zabbix-proxy模式。架构是zabbix-server同时关联多个zabbix agent,将zabbix agent对应的历史数据和趋势数据存储到它对应的database中,然后再通过zabbix-web端,也就是nginx展示出来。其次如果zabbix要支持proxy代理模式,那么我们只需要授权zabbix proxy,让其监听在特定的端口。而proxy会独立的管理下属zabbix agent,并将zabbix agent对应的数据,独立存储到proxy的database里面去。作为 zabbix server只是遥控zabbix proxy ,将其zabbix proxy 收集到的指标对应的数据,放到其zabbix server对应的zabbix web的图表展示区,zabbix server并没有存储各个代理节点数据库的功能。

同时zabbix还支持java的指标数据库监控,但其有一个缺点,因为zabbix是基于php体系开发的,不支持java的技术体系,而java技术体系是基于类和对象的方式来抽象组织数据。zabbix基于fastcgi来管理其对应的数据管理协议。也就是说zabbix在做绘图处理数据指标收集的时候,它的数据传递模式默认是基于fastcgi,但是java不支持fastcgi。为了去收集图表化展示的java数据,我们必须让java应用支持fastcgi,于是我们需要安装一个JMX的一个类(Java只要安装了jdk/jre,都支持JMX类,JMX就是面向监控系统的统一调用接口的API,有了这个API,就说明java的所有应用体系都支持zabbix的监控,但是要关联其fastcgi对应的接口,所以我们需要java getway这个网关将其抽象为fastcgi接口),也就是说一旦zabbix关联的javagetway,并且将java技术体系内部所有的应用程序支持javagetway,将其绑定起来。这时候我们基于JMX这个类收集到的指标就可以被zabbix-server所支持,最终可以被图表展示出来。

SERVER

Zabbix server 是 Zabbix 软件的核心组件

Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。

Zabbix server也是存储所有配置信息、统计信息和操作信息的核心存储库。

Zabbix server也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。

基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。

Zabbix 的所有配置信息都存储在 Server和Web前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。

数据库

所有配置信息以及 Zabbix 采集到的数据都被持久存储在数据库中

可以支持MySQL,PostgreSQL,Oracle 等多种数据库

WEB 界面

WEB 界面是 Zabbix server 的一部分,用于实现展示和配置的界面

通常(但不一定)和 Zabbix server 运行在同一台物理机器上

基于 Apache(Nginx)+PHP 实现,早期只支持LAMP架构,从Zabbix5.0开始支持LNMP

AGENT

Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给

Zabbix server。从Zabbix5.0开始支技Zabbix Agent2

PROXY

Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性数据

Zabbix Proxy 在 Zabbix 的部署是可选部分

Zabbix Proxy 的部署可以很好的分担单个Zabbix server的负载

Java 网关

Zabbix 要监控 tomcat 服务器和其它JAVA程序,需要使用 Java gateway 做为代理,才能从JAVA程序中获取数据

内部配置的数据流程

Zabbix 内部的数据流对Zabbix的使用也很重要。首先,为了创建一个采集数据的监控项,就必须先创建主机。其次,在任务的另外一端,必须要有监控项才能创建触发器(trigger),必须要有触发器来创建动作(action)。因此,如果您想要收到类似“X个server上CPU负载过高”这样的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监控其 CPU的监控项,最后创建一个触发器,用来触发 CPU负载过高这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,实际操作非常简单。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。

Zabbix 术语

被监控: 即 Zabbix 监控的主机或设备

监控项item:即 Zabbix 监控的相关指标,比如:CPU利用率,内存使用率,TCP连接数等

应用集Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中,即应用集

触发器Trigger:是一个表达式,或者说一个条件,如磁盘利用率超过80%等,当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作

动作Action:动作是触发器的条件被触发后的行为,可以是发送一条短信,微信或邮件,或是重启某个服务

告警:当触发器和动作二者结合起来时,就构成了的告警机制,比如cpu的使用率达到80%以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误。

Web 监测:对WEB服务进行检测,比如:访问指定网站是否可正常访问

模板 Template: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:

items(监控项)

applications(应用集)

triggers(触发器)

graphs(图形)

screens (聚合图形,自Zabbix 2.0起)

陷入器(trapper)——用于处理主动采集、陷入以及分布式节点间或服务器代理的通信

不可到达轮询器(unreachable poller)——用于轮询不可到达到的设备

vmware 收集器(vmware collector)——负责从vmware服务进程中收集数据(服务器代理端不支持这种类型的进程);

可用的mode参数包括:

avg——指定类型所有进程的平均值

count——返回创建的指定类型进程的数量

max——最大值

min——最小值

——进程号,含义参见“描述”中所述的;

可用的state参数包括:

繁忙(busy)——表示处于繁忙状态的进程;

空闲(idle)——表示处于空闲状态的进程;

low-level discovery rules (自动发现规则 ,自Zabbix 2.0起)

web scenarios (web场景, 自Zabbix 2.0起)。

 zabbix的安装和基本操作

Zabbix 安装要求

https://www.zabbix.com/documentation/6.0/zh/manual/installation/requirements

https://www.zabbix.com/documentation/5.0/zh/manual/installation/requirements

https://www.zabbix.com/documentation/4.0/zh/manual/installation/requirements

安装 Zabbix Server

Zabbix Server 安装方法介绍

二进制包安装: 官方提供了二进制包安装的方法,可以支持CentOS和Debian/Ubuntu的安装

源码编译安装: 部署繁琐,生产环境定制安装可以使用

基于容器安装: 测试环境使用

zabbix配置文件详解:

zabbix server配置文件/etc/zabbix/zabbix_server.conf

zabbix agent配置文件/etc/zabbix/zabbix_agentd.conf

zabbix  监听端口

  10051:server

  10050:agent

  10052:java gateway

日志文件所在路径

zabbix配置文件详解

日志到500M自动滚动

日志级别

默认pollers进程(预启动多少个实例数量)

预启动多少进程用于处理zabbix agent数据

启动多少进程用于检测不可达主机的运行状态

启动多少Ping进程(若检测网络设备多,可以多调)

启动多少http进程用于前端接收web页面的处理

进程的初始实例数量,用于处理动作中的自动同步步骤的进程的数量。实战环境要调

是否开启SNMP检测进程

每隔多少小时清理一次代理端数据库的history数据

每次最多删除历史数据的行数

监控缓存数量调整,根据实际内存来决定

内存缓存的数据更新周期,单位为秒

数据同步进程数量

历史数据缓存

历史数据索引缓存的大小

设置划分系统多少共享内存用于存储计算出来的趋势数据,此值可能影响数据库的压力

内存大可以多调

历史数据缓存值共享内存的大小。

获取监控数据的超时时长

当主机不可用了,多久检查一次该主机的可用性,单位为秒

监控网络设备的命令行工具

慢查询日志,单位为毫秒

开启多少proxy代理进程,用于搜集proxy代理监控数据

proxy被动模式下,server多少秒同步配置文件至proxy。

被动模式下,zabbix server间隔多少秒向proxy请求历史数据

zabbix对其他主机进行监控

在agent主机上安装zabbix-agent,并启动agent。

vim /etc/zabbix/zabbix_agentd.conf

systemctl enable --now zabbix-agent

zabbixtomcat进行监控

tomcat基于java体系,zabbix-server需要安装java-gateway中间系统才能对后台tomcat进行监控

同时需要在tomcat内开启JMX监控

CATALINA_OPTS="$CATALINA_OPTS

-Dcom.sun.management.jmxremote #启用远程监控JMX

-Dcom.sun.management.jmxremote.port=12345 #默认启用的JMX端口号,要和zabbix添加主机时候的端口一致即可

-Dcom.sun.management.jmxremote.authenticate=false  #不使用用户名和密码

-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证

-Dcom.rmi.server.hostname=192.168.10.120"

 在zabbix server端需要安装zabbix-java-gateway

yum -y install zabbix-java-gateway

对zabbix-java-gateway进行配置

vim /etc/zabbix/zabbix_java_gateway.conf

systemctl start zabbix-java-gateway

同时对zabbix server进行配置

然后在zabbix的监控页里取配置主机对应的模板

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/695921.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue从入门到实战Day05

一、自定义指令 自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能 需求:当页面加载时,让元素将获得焦点 (autofocus在safari浏览器有兼容性) 操作dom:dom元素.focus() mounted() {this.$ref…

3W 3KVAC隔离 宽电压输入 AC/DC 电源模块——TP03AC 系列

TP03AC系列电源模块额定输出功率为3W,此系列产品输入电压范围宽,可以交直流两用。并具备高可靠性、高精度、更安全、更稳定,大功率密度,超小体积,无需外加散热器,输出电压稳定等特点,且均集成有…

‘vue-cli-service‘ is not recognized as an internal or external command解决方案

vue-cli-service is not recognized as an internal or external command, operable program or batch file.解决方案 先进行 : npm install -g vue/cli 命令安装vue cli 是必须的。 如果 npm run build 还是报错 遇到同样的提示: 这时候先安装依赖 np…

线上科博馆3d云展馆实现企业拥抱数字化的目标

在科技日新月异的今天,数字化展览正逐渐成为各行业展示与推广的新宠。地产、家居、电商、文博、党建等领域纷纷拥抱数字化,寻求更生动、更直观的展示方式。而Web3D虚拟展厅开发工具,正是这一变革的得力助手。 Web3D虚拟展厅开发工具以其傻瓜式…

Redis详解(二)

事务 什么是事务? 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都…

神经网路与深度学习

1 深度学习简述 机器学习:相当于把公式实现出来了而已。 深度学习: (1)中的特征工程使机器学习更智能。 (2)真正能学什么样的特征才是最合适的。 (3)主要应用于计算机视觉和自然语…

maven .lastUpdated文件作用

现象 有时候我在用maven管理项目时会发现有些依赖报错,这时你可以看一下本地仓库中是否有.lastUpdated文件,也许与它有关。 原因 有这个文件就表示依赖下载过程中发生了错误导致依赖没成功下载,可能是网络原因,也有可能是远程…

【java】代理

什么是代理 假设有一个核心方法叫转账,为了安全性考虑,不能让用户直接访问接口。此时涉及到了代理,这使得用户只能访问代理类,增加了访问限制。 代理的定义:给目标对象提供一个代理对象,并且由代理对象控…

iZotope RX 11 for Mac:音频修复的终极利器

在音频制作的浩瀚星海中,每一份声音都是珍贵的宝石,但往往被各种噪音、杂音所掩盖。此刻,iZotope RX 11 for Mac犹如一位专业的匠人,以其精湛的技术,将每一份声音雕琢至完美。 iZotope RX 11 for Mac,这是…

关于SQL

数据库简介: 数据库分类 关系型数据库模型: 优点:易于维护,可以实现复杂的查询 缺点:海量数据 读取写入性能差,高并发下数据库的io是瓶颈 是把复杂的数据结构归结为简单的二元关系(即二维表…

免费的集成组件有哪些?

集成组件是指将多个软件或系统进行整合,以实现更高效、更可靠的数据处理和管理。在数据管理和分析领域,集成组件是不可或缺的工具之一。 在当今高度信息化的时代,集成组件在各行各业的应用中扮演着举足轻重的角色。集成组件能够将不同来源的…

从头开始学Spring—01Spring介绍和IOC容器思想

目录 1.Spring介绍 1.1Spring概述 1.2特性 1.3五大功能模块 2.IOC容器 2.1IOC思想 ①获取资源的传统方式 ②反转控制方式获取资源 ③DI 2.2IOC容器在Spring中的实现 ①BeanFactory ②ApplicationContext ③ApplicationContext的主要实现类 1.Spring介绍 1.1Sprin…