一、软件综合对比
对比项\软件 | Zabbix | Nagios | Open-Falcon | Prometheus |
---|---|---|---|---|
开发语言 | C+PHP | C | Golang | Golang |
成熟度 | 高 | 高 | 中 | 中 |
扩展性 | 高 | 中 | 中 | 高 |
性能 | 低 | 中 | 高 | 高 |
社区活跃度 | 中 | 低 | 中 | 高 |
容器支持 | 低 | 低 | 中 | 高 |
企业使用情况 | 高 | 低 | 中 | 高 |
部署难度 | 中 | 中 | 高 | 低 |
二、应用场景说明
1.Zabbix
A.软件说明
1 | Zabbix是由Alexei Vladishev开源的分布式监控系统,是一个企业级的分布式开源监控方案。能够监控各种网络参数以及服务器健康性和完整性的软件。使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,提供了出色的报告和数据可视化功能。 |
B.软件采集架构
1 | zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。 |
C.总结
1 | 如果想要监控传统的软硬件资源,Zabbix首当其冲。比如监控交换机、F5、路由器、防火墙、物理服务器、Linux、Windows、Unix、Nginx、Mysql、Redis、Tomcat等等,而且考虑到稳定性和数据实时性、功能的高度集成、那就选择Zabbix吧,毕竟运维监控必不可少掌握的技能。 |
2.Nagios
A.软件说明
1 | Nagios是一款开源软件,能有效监控 Windows 、Linux、VMware 和 Unix 主机状态,交换机、路由器等网络设置等。当监控出异常时提醒系统管理员,当异常恢复时也会通知。Nagios提供一个基于浏览器的web界面,方便管理人员查看系统的运行状态,网络状态、服务状态、日志信息,以及其他异常现象。 |
B.数据采集架构
当Nagios需要监控某个远程linux主机的服务或者资源情况时:
- nagios运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.
- check_nrpe插件会通过SSL连接到远程的NRPE daemon.check_nrpe插件会通过SSL连接到远程的NRPE daemon.
- NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.
- NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.
注意:NRPE daemon需要nagios插件和Nrpe一起安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以需要安装SSL
C.总结
1 | 在监控主机的服务状态、服务器资源状态、网络服务状态、甚至网络设备(交换机、路由器)都是没问题的,但在配置所有监控的过程都需要通过插件来完成,但在开源社区和企业使用情况来看的话,稳定性和后续新功能扩展几率很少,终究是一款小众的监控软件,针对基础的应用进行监控。 |
3.Open-Falcon
A.软件说明
1 | * 强大灵活的数据采集:自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持、opentsdb data model like(timestamp、endpoint、metric、key-value tags) |
B.数据采集架构
1 | 每台服务器,都有安装falcon-agent,falcon-agent是一个golang开发的daemon程序,用于自发现的采集单机的各种数据和指标,这些指标包括不限于以下几个方面,共计200多项指标。 |
C.总结
1 | open-falcon是小米开源的监控软件,前端比较简单,但可以监控Linux主机的200多项指标数据,主要包括CPU、内存、磁盘、文件系统、内核参数、Socket连接等等,同时支持自定义监控脚本。 |
4.Prometheus
A.软件说明
1 | Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库。从字面上理解,Prometheus由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)。 |
B.数据采集架构
1 | Prometheus的基本原理是通过HTTP周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口并且符合Prometheus定义的数据格式,就可以接入Prometheus监控。 |
C.总结
1 | Promethues出身自带云原生光环,注定在K8S容器监控领领域有一定的地位,同时更能与耦合在一起,统一监控入口,服务端也能横向扩展实现分布式部署,基本企业在使用K8S或者容器的时候,Prometheus作为监控是最好的一个选择。也因为开发语言是GO,近年来Go语言排行一直往上爬,更贴近云原生,另外部署成本极低,一个核心的组件+一条命令既可以实现监控。但入门成本相对Zabbix要高一些,但入门之后后面扩展可以实现更加灵活。 |
三、价值体现
1.实现自动检查及采集数据
2.统一资源监控管理平台入口
3.实现实时告警及自动修复。
4.安全可控,将数据安全可控性精细化。
5.开源社区,更灵活使用自定义扩展或者插件。
6.实现设备自动发现及自动注册。
7.去中心化,防止单点故障。
四、软件监控示例
1.Zabbix
2.Nagios
3.open-falcon
4.Prometheus
- 本文作者: Leoheng
- 本文链接: http://www.leoheng.com/2021/08/10/常用运维监控工具详细对比/
- 版权声明: Design by leoheng