Icinga性能数据:直接管道进入数据库

时间:2013-05-06 12:29:22

标签: database performance storage pipe nagios

我刚刚阅读了一些关于性能数据收集和处理的icinga文档。但是现在有一些事情我不清楚:

  1. 写入文件/磁盘 - >这会翻身吗?如何?
  2. 我想跳过磁盘'缓冲区'并直接进入后处理脚本,将数据放入外部数据库。这可能吗?怎么样? (我看到有一个管道模式,但我不能完全看到它是如何工作的,因为大多数示例和设置都使用这些文件)。如果数据库无法访问或数据接收过程可能会死亡,使用管道会有什么风险?
  3. 如果使用中间文件,在繁忙的盒子上加载性能 - 我们遇到了一些高负载,并且不确定是否通过管道会更好(除了一些故障情况,请参阅第二个问题)
  4. 非常感谢!

    ps:在nagios下标记因为icinga还没有,到目前为止我没有足够的积分; - )。

1 个答案:

答案 0 :(得分:0)

ad 1)取决于所使用的方法,您可以定义文件轮换间隔以及使用其时间戳后缀移动文件的命令。那里有着名的grapher插件,比如pnp4nagios或ingraph,它们描述了它们的要求 - 例如http://docs.pnp4nagios.org/pnp-0.6/config#bulk_mode_with_npcd 关于核心轮换 - 您需要确保$ something处理性能数据文件 - 并且您应该监视该处理不要以“filesystem full”或类似方式结束。

ad 2)通过定义执行该操作的命令,可以直接将数据从核心传输到外部处理程序 - 但请记住,这不会发生异步并且可能会阻塞核心 - 您的处理应用程序需要获取数据正在喂食,然后把它放到队列中。如果数据库消失,这也可能会产生问题 - 如果你的处理程序由于连接超时而无法自行解决,这会损害你的监控核心的整体性能(是的,这是1.x体系结构的已知问题,这是为什么磁盘上的假脱机文件是一种更好的方法。)

ad 3)不确定我是否正确使用,但在磁盘上使用假脱机文件时,您应该记住一些事项

  • 如果在不同的文件系统之间发生轮换,则inode mv将花费比在同一
  • 上更长的时间
  • 如果使用相同的文件系统,请确保您的底层硬件(raid,hdd)足够快
  • 当然,您应该将icinga创建的所有临时数据放到同一个文件系统上 - 但与数据库或rrdtool存储位于
  • 上的数据不同
  • 如果您不关心未处理的假脱机数据,请创建一个tmpfs并在那里配置
  • 不要将具有快照/备份功能的高级文件系统用于此类过渡数据,例如zfs / xfs / btrfs - 这将显着降低大型系统的性能。
  • 监视等待和使用您的文件系统以了解可能的瓶颈
  • 如果之后使用rrdtool进行处理,请确保使用rrdcached来加速处理应用程序

返回同步模式将要求您的处理应用程序自己使用某种队列,这不是直接数据库访问将使用的。甚至ingraph(https://www.netways.org/projects/ingraph/wiki)也是使用收集器守护进程将数据插入数据库而构建的。简而言之 - 使用1.x这样做是危险的,因此有了icinga2,它就有可能拥有自己的排队机制。