我尝试使用Zabbix 2.2和SNMP监视大约60台服务器。 我能够监视很多值,但是我正面临一个与linux服务器上进程的识别状态有关的问题。 当服务启动并运行时,我可以使用OID通过SNMP收集数据: HOST-RESOURCES-MIB::hrSWRunStatus [ "index", "HOST-RESOURCES-MIB::hrSWRunPath", "name_of_the_service_or_process" ] 问题是服务何时closures。 Zabbix不承认,只是显示最后的价值。 可以确定图中的故障,其中的行甚至不在级别1或级别0上。它只是缺less(因为没有数据)。 有没有可能,如何通过使用SNMP监视服务/进程? 有没有人有这方面的经验? 非常感谢 …
我有一个Windows服务正在运行的另一个进程,打印到STDERR和STDOUT许多行。 我正在捕获这些行,并将其redirect到一些日志文件。 我想login这个日志文件,如果它的大小变得太大,不能创build另一个文件,并保存前一个。 而不是自己实现它,我想使用一些像spdlog的第三方logrotate库。 问题是,我不能明显地使进程使用logging器API和如果
我有几个Ubuntu服务器14.04.03 LTS盒,偶尔会产生数百个僵尸sh进程。 这个过程将会被监视系统拾取,并发送警报。 我发现这个过程是通过运行top -b -d 15 -n 150 >> top-file ,然后在顶层文件中search显示这个峰值的顶级快照。 有没有更好的方法来获取这些信息? 我想能够看到父进程,并找出为什么发生这种情况。
在这个假设的例子中,我们有一个跨电子商务公司的多个工程团队的数据stream。 这些团队在stream程的不同点提供服务,生成数据和使用数据。 例如; “团队订单”维护订单数据库和接口 “团队stream量”生成networkingstream量数据 “团队仓库”维护数据仓库 “团队stream量”取决于“团队订单”的服务来检索订单数据并将其与networkingstream量相关联 “团队仓库”依赖于“团队stream量”的数据来构buildDW表格 想象一下,“团队订单”遇到一个数据库问题(负载,等待时间,无论如何) – 他们的监控系统提醒开始调查数据库问题的工程师。 与此同时,“团队交通”也被警告,因为他们看到了不好的反应。 他们开始调查,很快意识到问题出在“团队订单”的服务上,并提出“团队订单” 所有这些下游,“团队仓库”正在接收不良的数据。 他们的DW监测警告他们这种差异,所以他们开始寻找根本原因。 问题是,现在我们至less有三名工程师正在调查同一个问题,他们甚至可能不知道其他团队也在做同样的事情。 重要的一点是,三支队伍都在使用不同的监控和报警系统。 团队订单正在监控数据库服务器问题,而团队仓库正在查找logging数量的差异。 还有其他的方法; 仅在pipe道顶部发出警报(阻止下游升级)或在pipe道底部向上游系统发出警报。 是否有任何最佳实践,白皮书或工程解决scheme可供我们研究,以了解跨多个英/支持团队的不同方式来提醒和升级数据问题?
我有一个由多个进程和docker容器组成的大系统。 我想系统初始化系统,但我有几个进程之间的约束: 应该有一个特定的开始顺序的过程 每个进程在下一个启动之前应该完成初始化 在其中一个进程下降的情况下,一些进程应该按照约束编号1以相同的顺序重新初始化 我应该能够启动所有的系统(所有的进程),并停止一个命令。 我已经阅读了几个关于如何使用systemd的教程: https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files https://coreos.com/docs/launching-containers/launching/getting-started-with-systemd/ 和更多 但是,如何与目标合作,实施适当的服务等级仍然是我的一个谜。 任何人都可以请build议一个更好的教程或解释给我不知何故? 或者,如果我错了,不可能用systemd来包含我所有的约束,请说出来并解释。 谢谢,
在一些虚拟机上,看起来每个ssh会话在退出时都会成为孤立的进程。 我可以通过login到机器上,然后退出或^ D,然后用ps -elf |来重现它 grep解散我有一个更多的SSH进程。 我们的监控是使用ssh很多,所以在早上有成百上千的孤儿僵尸,而在大约20个虚拟机上 这是一个ps输出的例子: 5 Z user 3197 1 0 80 0 – 0 exit 10:00 ? 00:00:00 [sshd] <defunct> 我试着做一个父(sshd)strace来看,这是当我退出ssh会话的输出: — SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=24025, si_status=255, si_utime=0, si_stime=2} — wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 255}], WNOHANG, NULL) = 24025 wait4(-1, 0x7ffc0d57901c, WNOHANG, NULL) = 0 rt_sigaction(SIGCHLD, NULL, {0x7f164fee7d70, [], SA_RESTORER, […]
我正在寻找一种方法来查找没有父进程运行的进程(孤立进程)。 我试图做到这一点使用win32_process。 我有查询,返回所需的属性,它的比较im挣扎着: gwmi win32_process -ComputerName $hostname | select ProcessID,ParentProcessID,@{l="Username";e={$_.getowner().user}} | where{$_.Username -like $username} 我已经尝试了对两个数组的比较对象-includeequal,并得到了绝大多数的结果 – 太多了,所以我怀疑操作员的真相给予我喂它的数组。 我认为在diff命令中增加了一些值,但是除了提供数组之外,我还不熟悉这个用法。 有没有人有差异的命令和/或其他解决scheme的经验? 最终目标是比较或区分上述wmi调用的两个数组: $proc_all = gwmi win32_process -ComputerName $hostname | select ProcessID,ParentProcessID,@{l="Username";e={$_.getowner().user}} | where{$_.Username -like $username} $sub_procs = $proc_all.Processid #ARRAY1 $par_proces = $proc_all.ParentProcessId #ARRAY2 然后只返回那些不出现在两个(孤儿)的。 提前致谢!
我在Red Hat Linux 6.6上运行 我有一个每天开始的过程,我知道他的名字和PID。 user 13697 13583 0 02:15 ? 00:00:21 /a/b/my_process 我怎样才能find: 这个过程消耗多less内存? 这个过程在一个给定的周内平均消耗多less内存? 假设没有内存泄漏。 我们正在这样做负载平衡应用程序。
我试图使用戴尔Poweredge R900作为一个计算池我得到了二手(4x四核给我16核心运行模拟)。 它现在正在运行Windows Server 2008 R2企业。 我正在运行自定义.net代码,并可以指定线程的数量是我想要的任何东西。 通常(例如,在我的Windows 10 quadcore机器),一个线程轨道CPU核心10分钟左右。 如果我在我的服务器上启动7个线程(例如),我看到我的16个内核中的7个以20%的利用率点亮。 如果我启动16个线程,我看到所有16个核心在〜20%。 所以我试图烧掉48个线程,期望我的16个内核现在应该有3个线程,因此达到60%的利用率,但没有骰子。 我再次得到20%(每个线程明显慢了3倍,所以每个内核的所有3个线程得到处理)。 无论我发射多less线程,我的使用率都不会超过每核心20%。 现在,如果我以每个16+线程启动我的代码的两个实例,则所有内核都将达到40%。 三分之一,60%。 所以这不是FSB限制或任何东西。 有些东西必须将每个实例的内核压缩到每个核心20%。 我不能为了我的生活找出瓶颈在哪里。 这是一个Windows服务器的东西? 一个戴尔BIOS的东西? 我已经将操作系统从后台进程优化翻转到针对程序优化…似乎没有影响。 我是全新的Windows服务器,所以任何想法将不胜感激!
如何能够安全地杀死一个进程组,并在必要时强制杀死? 我们的目标是用SIGTERM(-15)杀死,如果树中的应用程序在超时(例如60秒)之后没有死,请执行SIGKILL(-9)。 我们有一个父进程和一个subprocess的场景,共享一个pgid,例如 Parent Process pid=123, pgid=123 |- Child Process pid=456, pgid=123 目前我们正在发送SIGTERM(-15)给进程组,如果父进程已经死了,那么就假设成功。 但是,有时候我们发现父进程死了,subprocess没有死。 所以这可以归结为两个问题: 为什么父母死亡,如果孩子没有死(这是可能的,或者我的假设是错误的)? 在将kill -9发送到进程组之前,检查进程组中是否有任何进程是确保树中所有进程都已经死亡的最好方法?