关于zabbix:监控体系最全面系统的Zabbix讲解-含源码监控类型整理

3次阅读

共计 3992 个字符,预计需要花费 10 分钟才能阅读完成。

主讲人:王鸿杰,云智慧 / 企业效力部 / 架构师

讲师简介:云智慧架构师,PHP/PECL 开发组成员,PECL/SeasClick、PECL/SeasLog Maintainer。6 年研发教训,2018 年退出透视宝团队,致力于 APM 产品的架构与研发,专一于服务的性能剖析与优化。2021 年退出效力工程团队,为高效而生,立足于应用起码的资源来解决最大的问题,钻研各种不同的 bot 技术,让整个团队更高效运行。

公司简介:云智慧团体成立于 2009 年,是国内当先的全栈智能业务运维解决方案服务商。通过多年自主研发,公司造成了从 IT 运维、电力运维到 IoT 运维的产业布局,笼罩 ITOM、ITOA、ITSM、DevOps 以及 IoT 几大畛域,为金融、政府、运营商、能源、交通、制作等上百家行业的客户,提供了数字化运维体系建设及全生命周期运维治理解决方案。云智慧秉承 Make Digital Online 的使命,致力于通过先进的产品技术,为企业数字化转型和晋升 IT 经营效率继续赋能。

从本篇内容你能失去:

1. Zabbix 是什么、能做到什么

2. Zabbix 组件详解、架构和解决工作流程

3. Zabbix 各监控项类型的采集实现(SNMP、ICMP、Ping、简略查看等)

4. Zabbix 模板组成构造与实现

5. Zabbix Agent 源码构造与实现剖析

6. Zabbix 主动发现逻辑的源码构造与实现详解

全栈监控是什么?

监控所有须要监控的货色,只有可能想到,可能用命令实现的都能用来监控。

根底层:次要偏硬件,监控主机和底层资源。比方 cpu、内存、网络吞吐、硬盘 I /O、硬盘应用等

中间层:包含 nginx、Redis、MQ、MySQL、Tomcat 等

应用层:HTTP 拜访的吞吐量、响应工夫、返回码、调用链路剖析、性能瓶颈,还包含用户端的监控等

日志:syslog、nginx log、mysql log 等

为什么应用 Zabbix?

目前开源的解决方案中,Zabbix 和 Prometheus 是应用较多的两个计划,这两个计划的区别和劣势是什么?

对于偏传统的行业,云环境较少的场景下,是比拟适宜于 Zabbix 的应用,当然 Prometheus 是将来倒退的方向。

Zabbix 是什么?

Zabbix 源码次要组成:

frontends:php,次要负责前端的业务操作

Zabbix agent:采集数据

Zabbx server:同步配置,解决数据,剖析告警等。

Zabbix 解决流程:

次要由四局部组成:

Portal-DB-Server-Agent

具体的工作流程如下:

具体流程可查看下图:

Zabbix 是怎么做的?

Zabbix Process

  1. 当增加(主动发现)一个 host,并且为 host 增加对应的模板的时候,Portal 会解析进去对应的 item,preprocess,trigger 而后放在对应的 Db 表外面。
  2. Server 的 dbconfig\_thread 会从 Db 拿到对应的数据放在共享内存中,而后 poller\_thread 过程读取到对应的 items,开启与 Agent 建设连贯,遍历 items 从 Agent(snmp,简略查看 等)获取到对应的指标数据
  3. 而后将 指标数据给 preprocessing\_manager\_thread 过程,preprocessing\_manager\_thread 过程会安顿对应的 preprocessing_worker 过程对数据进行 preprocess
  4. 最初由 dbsyncer_thread 过程将数据放入 Db 中,Portal 界面从 Db 拿到对应的数据信息绘制和显示
  5. dbsyncer\_thread 同步数据到 DB,遍历数据 并计算 expression 表达式计算指标,最初触发 escalator\_thread 和 alerter_thread 做出相应的动作。
  6. 对于可监控指标,Agent 自带多种可监控指标 cmd,Agent 只能监控内置的监控指标,能够通过插件拓展 可监控指标。

Zabbix Server

  • dbconfig_thread:配置同步到共享内存,保障所有过程都可读
  • poller_thread:被动监控,解析 items 调用 Agent
  • *trapper_thread:收集 Agent 上报上来的数据
  • pinger_thread:定期 ping 所有监控主机,简略查看 ICMP
  • *alerter_thread:告警音讯解决过程从 IPC 读出须要动员的音讯,收回告警
  • housekeeper_thread:管家过程,过期数据清理
  • discoverer_thread:主机、服务的主动发现
  • escalator_thread:依据触发器的值判断是否告警,具体执行什么动作
  • dbsyncer_thread:同步数据到 db,并计算触发器值也同步到 db
  • selfmon_thread:自监控
  • preprocessing\_worker\_thread:数据预处理过程,数据从 poller 和 trapper 过程过去

Zabbix Agent

  • collector_thread 周期采集根底信息,次要是内存和 CPU,贮存于共享内存中
  • listener_thread 用于接管 server 或者 proxy 调配的的采集工作,被动采采集
  • active\_checks\_thread 被动采集上报

指标类型

按过程(解决形式)划分指标类型

Poller 过程(被动)

  1. 1. snmp|SNMP 代理查看
  2. simple_checks| 简略查看(应用层状态查看)
  3. calculated| 计算监控项
  4. internal|Zabbix 外部查看
  5. ssh_checks|SSH 查看
  6. telnet_checks|Telnet 查看
  7. external| 内部查看
  8. aggregate| 汇总查看
  9. odbc_checks|ODBC 监控

httppoller 过程(被动)

  • http|HTTP 查看

ipmi\_poller\_thread 过程(被动)

  • ipmi|IPMI 查看

icmp pinger 过程(被动)

  • simple_checks| 简略查看(icmp 查看)

trapper 过程(被动)

  1. trapper| 捕获器监控项
  2. log_items| 日志文件监控
  3. snmptrap|SNMP traps

preprocess 过程(Follow me)

  • dependent_items| 相干我的项目 (隶属监控项)

按客户端依赖划分指标类型

无依赖

  1. snmp|SNMP 代理查看
  2. ipmi|IPMI 查看
  3. simple_checks| 简略查看
  4. external| 内部查看
  5. odbc_checks|ODBC 监控

依赖其余监控项

  1. calculated| 计算监控项
  2. aggregate| 汇总查看

依赖第三方

  1. zabbix_agent|Zabbix 代理查看(Agent)
  2. snmptrap|SNMP traps(snmptrap)
  3. log_items| 日志文件监控(Agent)
  4. ssh_checks|SSH 查看(ssh 秘钥或明码)
  5. telnet_checks|Telnet 查看(Telnet Server 和 Telnet 明码)
  6. trapper| 捕获器监控项(Zabbix Sender)
  7. http|HTTP 查看(http 接口)

IDEA

被动监控对 Zabbix Server 来说会有大的压力

从监控类型来看,Zabbix 更多的是被动监控,被动监控只有 Agent Active、SnmpTrap,Sender,然而因为 Zabbix Agent 的弱小,很多场景下被动监控的指标覆盖度齐全能跟被动监控硬怼。

所以要依据具体监控场景,被动和被动相互搭配,耗时的指标更加偏向于被动监控。

Zabbix 监控项类型梳理

附件:

请您增加:xiaoyuerwise,备注“附件”获取,或从本文底部扫码获取。

Zabbix 的主动发现

主动发现是随同着指标监控来的,当发现能有采集到预设的指标时,这台主机就会被标记为可用,而后触发预设的 Action,告诉或者主动增加监控模板等。

主动发现分类

  1. 简略查看类
  2. Agent 类型
  3. snmp 类型
  4. ICMP (ping) 类型

主动发现流程

  1. 配置 IP 段
  2. 配置主动发现指标
  3. 配置发现动作 Action
  4. 发现主机后增加 event
  5. escalator_thread 过程解决对应的 event

Zabbix 的模板构造

模板构造

隶属指标

计算指标

Agent 源码

附件:

请您增加:xiaoyuerwise,备注“附件”获取,或从本文底部扫码获取。

写在最初

近年来,在 AIOps 畛域极速倒退的背景下,IT 工具、平台能力、解决方案、AI 场景及可用数据集的迫切需要在各行业爆发。 基于此,云智慧在 2021 年 8 月公布了 AIOps 社区, 旨在树起一面开源旗号,为各行业客户、用户、研究者和开发者们构建沉闷的用户及开发者社区,独特奉献及解决行业难题、促成该畛域技术倒退。

成立近半年,社区先后开源了数据可视化编排平台 -FlyFish、运维治理平台 OMP、云服务治理平台 - 摩尔平台、Hours 算法等产品。 其中 FlyFish 斩获中国开源云联盟 2021 优良开源我的项目奖。OMP 运维治理平台入选 2021 年度 OSC 中国开源我的项目「最受欢迎我的项目」榜单。并在业内首次开源了智能运维开源数据集 -GAIA 数据集,填补了 AIOps 开源集数据畛域的空白。

2021 年 11 月,云智慧正式成为中国开源云联盟成员单位,2022 年 1 月,云智慧入选 SegmentFault 思否「2021 中国技术品牌影响力企业榜单」, 这所有都代表着开发者和社区对咱们的认可,这也更加动摇了云智慧开源策略的信心。

如果您对云智慧 AIOps 感兴趣,能够通过下方链接理解咱们,也能够增加小助手微信,申请加入开发者交换群,可与大咖进行 1V1 交换!

云智慧 AIOps 社区:https://www.cloudwise.ai/

Github 地址:https://github.com/CloudWise-OpenSource/FlyFish

Gitee 地址:https://gitee.com/CloudWise/fly-fish

正文完
 0