调整zabbix:在服务器上认为合理的过程数是多less

是的,所以我正在掌握(并爱好)zabbix,并已开始微调alerts

我有一个在Linux服务器上有超过300个进程触发的警报。

现在,这是一个中央服务器,作为一个防火墙,运行一堆东西..即代理/ HTTPD服务器/ MySQL /开放式VPN / ZABBIX

在popup警报触发器到350个进程之前,有什么需要注意的吗?

CPU的负载还是比较低的,我想也许有人会在提醒之前检查其他的东西。

我需要检查机器是否瓶颈在哪里,即IO限制?

任何好的build议,这个好的文档(希望写得很好,容易理解)一如既往,将不胜感激。

就像@sam所说的,这一切都取决于服务器在做什么以及服务器硬件有多强壮。 只运行less量极其CPU,内存和/或I / O密集型进程,即使是function强大的服务器也可轻松过载。 特别是如果有东西让你的服务器交换,一切都会比蜗牛或乌龟慢。

另一方面,类似Postfix的服务器可以很容易地将进程数到数百或数千,因为Postfix所做的一切都是非常轻量级的。

在我看来,监视(或者至less是因为)全局进程计数是没有用的。 虽然如果你确定X中的某个过程不应该超过X个实例,那么监视它,并在突然出现X个以上的事件时发出警报。

您还可以绘制一些趋势图的数量:例如,我倾向于绘制Cyrus IMAP / POP过程计数,以便我们可以看到它们是否在当前硬限值附近hover。

如果你有一些可预测的进程行为,你可以使用类似于psmon的东西来自动重新启动/查杀(通过可选的日志logging/电子邮件发送有关事件psmon处理的信息)的行为exception的进程。 当然,Zabbix也可以用于这个,但是psmon很容易configuration这种任务。

我将图表和监视

一般来说, (和监视器)至less有以下几点:

  • 平均负载
  • 内存使用情况
  • 磁盘使用情况
  • CPU使用率
  • networkingstream量
  • 如果你需要的话,一些单独的过程的数量
  • 响应时间为您的服务
  • 服务器正常运行时间(可以是一个非常有用的graphics;如果某个服务器开始不正常,需要经常重新启动,从问题出现的时刻开始很容易发现)

然后监视至less以下内容:

  • 是应该正确响应的过程; 在我看来只是testing端口是否升起,或者如果stream程不够,则是否存在。 相反,如果要检查Web服务器是否正在运行,请查看它是否返回HTTP 200 OK,最好查看testing页是否包含一些预期的string。
  • 服务器ping。 如果ping失败,立即提醒。
  • 内核日志,用于诸如I / O错误,SAN环境多pathconfiguration中的失败path,内核恐慌,OOM事件等严重事件

我希望这可以帮助你。 🙂

我想这个问题很难回答,但是我会放弃。

这取决于;

有五个FFMPEG线程在单个核心服务器上渲染高清video会太多,但它可能相当高兴地运行数百,甚至数千个5行Python脚本,没有任何问题。 一般来说, 监控你所能想到的一切! 如果它输出一个数字,监视它并logging下来,你永远不知道你可能需要什么样的数据。 进程的数量本身可能是性能不佳的一个performance,它可以与其他信息结合使用,例如,如果服务器刚刚closures,查看运行的特效,CPU /负载,内存,磁盘IO等是非常有用的。但我可能会说,除非你能确切地确定CPU /内存/等等。 每个进程使用它都没有用处。

如果你有一个非常可预测的应用程序,每个用户在服务器上启动一个进程,并且每个进程在运行过程中持续使用10MB内存,1%可用CPU使用率和1%可用磁盘IO。 假设系统的基本使用率是持续3%的CPU和500MB的内存,除了你的应用程序以外,没有其他的进程会被启动。 由此可以很容易地预测在问题出现之前可以运行多less个线程,但是我不认为我曾经见过一个具有这种精确用法的应用程序。

一个更好的策略是监视特定进程/进程使用的资源,比如说如果你使用mod_php运行Apache服务器,监视httpd进程的平均内存,CPU和磁盘IO,这会给你一个很大的更好地了解你的服务器在做什么。 对stream程使用情况进行警报并不是很有用,监控它是有用的。 有很多东西可以推动进程不受影响,但是一个进程可能会把服务器closures。

TL; DR

  • 进程计数对警报没有用处
  • 你仍然应该logging它
  • 弄清楚你的服务器正在做什么,并监视什么是相关的