守护进程监控/登录linux(应用程序计数器)

时间:2013-08-16 15:33:58

标签: c++ linux monitoring daemon

我正在写一个守护进程,它将在后台继续运行并且做到这一点。我想监控性能和其他各种变量。这将包括Web请求延迟,错误,已处理项目数等等。

随后可以查看数据以及图表,报告(平均值,异常值)和超出限制时的警报。

Performance counters on Windows是我能找到的最接近的东西。您可以定义自己的计数器,然后从代码中轻松访问它们。

请注意,我不是在寻找“性能”计数器,因为它们被命名,它更像应用程序计数器 - 即我不关心执行指令和缓存未命中的数量,而是关于自定义计数器。 StackOverflow类似于此处的问题,答案错过了这一点:Application counters in Linux? (and OSX?)

我看过Cacti(以及替代品),但他们似乎按照提供数据的时间表运行脚本。这意味着我会在我的守护进程中存储计数器,以及等待某种IPC调用的线程。然后我需要创建第二个应用程序/脚本,它将通过这个IPC接口连接并检索存储的值。

有更好的方法吗?一些C库可以通过单个函数调用递增一个计数器,它会自动通过前端处理?

2 个答案:

答案 0 :(得分:3)

statsD是开始收集指标的好地方。

statsD将允许您直接从您的应用程序发送计数器,而不会产生任何重大开销。您的代码在执行时生成计数器,您无需在代码中跟踪它。

如果您想要一个具有一体化(但没有持久性)的包,您可以使用pup

如果您需要持久性和图表,可能需要查看graphite

graphite将连接到statsd并让您的图表生成任何计数器。它相当轻巧,并且可以说比Nagios更容易部署和维护(在部署和学习曲线方面更接近仙人掌)。

如果您想要与持久性和API更加集成的东西,可以使用许多服务来为您进行绘图。我在这里仅限于使用开源软件。

答案 1 :(得分:0)

我认为你正在重新发明轮子。

尝试Nagios http://nagios.org/

- 你可以为nagios编写任何自定义检查并监控你需要的任何东西的性能 - 比如你的应用程序。 - 您可以自定义您的警报以及发送的时间和方式。 - 您可以在服务/主机等之间建立关系......

插件/一些推广: http://exchange.nagios.org/