版权声明:本文为博主原创文章,转载请注明出处:https://twocups.cn/index.php/2021/06/14/37/

写在前面

我最近需要组一套监控系统来完成对数据库、对机器、甚至对整个平台的监控。由于公司的云环境体量很大,所以需要考虑的东西就非常多。再加上云规模一旦达到一定的级别,各种问题也会开始层出不穷。所以我在学习和实际部署 Zabbix 的同时,也开了它的博客,当作自己的一个记录。当然了,博客里会隐去所有的业务情况,单单只谈技术。

Zabbix

Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。它可用于监视各种网络服务、服务器和网络机器等状态。

Zabbix 使用 MySQL、PostgreSQL、SQLite、Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 前端则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。它可以只使用 Simple Check 而不需要安装 Client 端,也可基于 SMTP 或 HTTP 等各种协定做死活监视。在客户端如 UNIX、Windows 中安装 Zabbix Agent 之后,可监视 CPU 负荷、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP检查,以及利用 IPMI、SSH、telnet 对目标进行监视。另外,Zabbix 包含 XMPP 等各种 Item 警示功能。

为什么选择Zabbix?

业界对于监控系统已经有很多优秀的开源方案了,我在各种比较之下选择了 Zabiix。下面是我搜集到的各类开源方案的优缺点。这些并不是全部的优缺点,而是我觉得比较重要的、有影响的优缺点。

其中,Zabbix 挺符合我的要求的。它有稳定的 LTS 版本,有丰富的插件支持,能够进行二次开发。而缺点中比较明显的有,数据量大时读取数据库缓慢、缺少数据汇总和展示功能。不过这些问题对于我来说是可以解决的,正好和前面的 Elastic Stack 联动,一起组成一套优秀的监控体系。

zabbix

优点:

  1. 部署方便、模版也多
  2. 支持多种条件报警
  3. 故障时可以执行自定义命令
  4. 提供多种api,支持脚本调用

缺点:

  1. 批量修改麻烦
  2. 数据量大时,需要直接读取数据库,会有卡慢
  3. 缺少数据汇总功能
  4. 没有告警收敛功能

nagios

优点:

  1. 配置灵活,可以自定义shell脚本
  2. 自动日志回滚
  3. 支持冗余监控主机
  4. 报警设置多样

缺点:

  1. 看不到历史数据
  2. 对性能流量指标处理能力差
  3. 事件控制台能力差

ganalia

优点:

  1. 适合监控系统性能
  2. 可以自定义监控项
  3. 部署简单

缺点:

  1. 没有报警机制
  2. 没有消息通知系统

prometheus

优点:

  1. 监控数据的精细程度高,可以精确到1s
  2. 部署方便
  3. 插件丰富

缺点:

  1. 对资盘资源耗费较大
  2. 独有数学命令行学习难度大
  3. 不支持集群(?)
  4. 仪表盘页面渲染速度慢
  5. 不善于处理长期的历史归档数据

小米的Open-Falcon

优点:

  1. 单机支撑200万metric上报、归档、存储
  2. 采用rrdtool的数据归档策略,秒级返回上百个metric一年的历史数据
  3. 通过插件可以支持mysql等的监控

缺点:

  1. 很多功能还不够完善
  2. 插件很少

cacti

阿里云监控

专用于监控数据库的LEPUS天兔

林皓伟

发表回复

您的电子邮箱地址不会被公开。