聊一聊几款流行监控系统,你知道几个?
Zabbix 由 Server,Agent,Proxy(可选项)组成:
Zabbix 的部署模式 Zabbix 的数据采集,主要有两种模式:Server 主动拉取数据和 Agent 主动上报数据。 以 Server 拉取数据为例,用户在 Web-portal 中,设置需要监控的机器,配置监控项,告警策略。Zabbix-Server 会根据策略主动获取 Agent 的数据,然后存储到 MySQL 中。 同时根据用户配置的策略,判定是否需要告警。用户可以在 Web 端,以图表的形式,查看各种指标的历史趋势。 在 Zabbix 中,将 Server 主动拉取数据的方式称之为 Active Check。这种方式配置起来较为方便,但是会对 Zabbix-Server 的性能存在影响。 所以在生产环境中,一般会选择主动推送数据到 Zabbix-Server 的方式,称之为 Trapper。 即用户可以定时生成数据,再按照 Zabbix 定义的数据格式,批量发送给 Zabbix-Server,这样可以大大提高 Server 的处理能力。 Proxy,作为可选项,起到收集 Agent 数据并且转发到 Server 的作用。 当 Server 和 Agent 不在一个网络内,就需要使用 Proxy 做远程监控,特别是远程网络有防火墙的时候。同时它也可以分担 Server 的压力,降低 Server 处理连接数的开销。 Prometheus(普罗米修斯) 随着这几年云环境的发展,Prometheus 被广泛地认可。它的本质是时间序列数据库,而 Zabbix 采用 MySQL 进行数据存储。 从上面我们对时间序列数据库的分析来看,Prometheus 能够很好地支持大量数据的写入。 它采用拉的模式(Pull)从应用中拉取数据,并通过 Alert 模块实现监控预警。据说单机可以消费百万级时间序列。 一起来看看 Prometheus 的几大组件:
Prometheus 架构图 说完了 Prometheus 的组件,再来看看 Prometheus 的架构: Prometheus Server 定期从 Jobs/Exporters 中拉 Metrics。同时也可以接收来自 Pushgateway 发过来的 Metrics。 Prometheus Server 将接受到的数据存储在本地时序数据库,并运行已定义好的 alert.rules(告警规则),一旦满足告警规则就会向 Alertmanager 推送警报。 Alertmanager 根据配置文件,对接收到的警报进行处理,例如:发出邮件告警,或者借助第三方组件进行告警。 WebUI/Grafana/APIclients,可以借助 PromQL 对监控数据进行查询。 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |