首页 文章 精选 留言 我的

精选列表

搜索[系统],共10000篇文章
优秀的个人博客,低调大师

【监控体系】最全面系统的Zabbix讲解 | 含源码&监控类型整理

主讲人:王鸿杰,云智慧/企业效能部/架构师 讲师简介:云智慧架构师,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 当添加(自动发现)一个 host,并且为 host 添加对应的模板的时候,Portal 会解析出来对应的 item, preprocess,trigger 然后放在对应的 Db 表里面。 Server 的 dbconfig_thread 会从 Db 拿到对应的数据放在共享内存中,然后poller_thread 进程读取到对应的 items,开启与 Agent 建立连接,遍历 items 从 Agent(snmp,简单检查 等) 获取到对应的指标数据 然后将 指标数据给 preprocessing_manager_thread 进程,preprocessing_manager_thread 进程会安排对应的preprocessing_worker 进程对数据进行 preprocess 最后由 dbsyncer_thread 进程将数据放入 Db 中,Portal 界面从 Db 拿到对应的数据信息绘制和显示 dbsyncer_thread 同步数据到DB,遍历数据 并计算 expression 表达式计算指标,最后触发 escalator_thread 和 alerter_thread 做出相应的动作。 对于可监控指标,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. snmp|SNMP代理检查 simple_checks|简单检查(应用层状态检查) calculated|计算监控项 internal|Zabbix内部检查 ssh_checks|SSH检查 telnet_checks|Telnet检查 external|外部检查 aggregate|汇总检查 odbc_checks|ODBC监控 httppoller 进程(被动) http|HTTP 检查 ipmi_poller_thread 进程(被动) ipmi|IPMI检查 icmp pinger 进程(被动) simple_checks|简单检查(icmp 检查) trapper 进程(主动) trapper|捕捉器监控项 log_items|日志文件监控 snmptrap|SNMP traps preprocess 进程(Follow me) dependent_items|相关项目(从属监控项) 按客户端依赖划分指标类型 无依赖 snmp|SNMP代理检查 ipmi|IPMI检查 simple_checks|简单检查 external|外部检查 odbc_checks|ODBC监控 依赖其他监控项 calculated|计算监控项 aggregate|汇总检查 依赖第三方 zabbix_agent|Zabbix代理检查 (Agent) snmptrap|SNMP traps (snmptrap) log_items|日志文件监控 (Agent) ssh_checks|SSH检查 (ssh 秘钥或密码) telnet_checks|Telnet检查 (Telnet Server和 Telnet 密码) trapper|捕捉器监控项 (Zabbix Sender) http|HTTP 检查 (http 接口) IDEA 被动监控对 Zabbix Server 来说会有大的压力 从监控类型来看,Zabbix 更多的是被动监控,主动监控只有 Agent Active、SnmpTrap,Sender,但是由于 Zabbix Agent 的强大,很多场景下主动监控的指标覆盖度完全能跟被动监控硬怼。 所以要根据具体监控场景,主动和被动互相搭配,耗时的指标更加倾向于主动监控。 Zabbix监控项类型梳理 附件: 请您添加:xiaoyuerwise,备注“附件”获取,或从本文底部扫码获取。 Zabbix的自动发现 自动发现是伴随着指标监控来的,当发现能有采集到预设的指标时,这台主机就会被标记为可用,然后触发预设的Action,通知或者自动添加监控模板等。 自动发现分类 简单检查类 Agent 类型 snmp 类型 ICMP (ping) 类型 自动发现流程 配置 IP 段 配置自动发现指标 配置发现动作 Action 发现主机后添加 event 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

优秀的个人博客,低调大师

高性能分布式文件系统 FastCFS V3.1 发布

V3.1主要对核心组件FastDIR进行改进,实现了LRU淘汰算法,以有限内存支持海量文件。 分布式目录服务FastDIR的淘汰算法具有两大特性: 1. 按目录结构淘汰:先淘汰子节点,然后淘汰父节点; 2. 按数据线程淘汰:每个数据线程作为一个独立的数据单元,数据存取和淘汰均在其数据线程中以无锁方式完成。 其他改进和bug修复如下: 1. 采用引用计数方式,不再延迟释放 dentry; 2. delay free namespace string for lockless; 3. bugfixed: get trunk_file_size from ini file correctly。 欢迎大家下载体验,安装和使用过程中有任何疑问欢迎随时反馈。

优秀的个人博客,低调大师

高性能分布式文件系统 FastCFS V3.0 发布

经过整整5个月的潜心研发,FastCFS v3.0终于发布了。FastCFS 3.0 主要改进:核心组件FastDIR通过插件方式实现数据存储引擎,采用binlog + 存储引擎插件,按需加载inode数据,单机以有限内存(如64GB)支持100亿级的海量文件。 通过binlog实现数据持久化比较简单,程序重启时通过binlog重放将inode数据全部加载到内存中,这种方式存储海量文件存在如下两个问题: 1. 程序启动就绪时间长; 2. 对内存空间要求非常高。 V3.0引入存储引擎插件,很好地解决了单纯通过binlog实现数据持久化的两大问题。后续会有技术文章详细介绍FastDIR存储引擎的原理和特点,敬请期待。 另外,FastCFS 3.0 修复了如下3个bug: [fdir] increase/decrease parent's nlink on rename operation [fdir] set dentry->kv_array->count to 0 correctly [fstore] should init barray->count to 0 欢迎大家安装使用最新版本的FastCFS,有任何疑问和建议随时交流。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册