让我们看看 Monit 的用法,假设我们要监控 Nginx 进程,一旦其 CPU 使用率连续 5 次轮询周期里均超过 50% 的话,就重启进程,此时就可以按照如下方式设置: check process...如果进程本身不存在 pidfile,那么也可以使用 matching 语法来匹配进程。...再让我们看看 Supervisor 的用法,假设我们要监控 100 个 PHP 实现的 Worker 进程,用来提供 Gearman 之类的服务,由于 PHP 本身运行模式的缘故,为了避免严重的内存泄漏问题...不管用什么来监控进程,如果监控者本身挂了,那么被监控者无疑就失控了。...此时需要考虑如何监控监控者本身,这似乎是一个递归问题,不过文章开头我们说过,Linux 本身的初始化系统就能实现简单的监控功能,以 SysVinit 为例,编辑 /etc/inittab 文件: SU:
print("running") [root@bogon ~]# python monitor.py running [root@bogon ~]# 反思:返回值可以设置成1 或者0 然后结合zabbix做监控
,可以通过 pstree 命令查看进程与子进程的关系,但是其输出图形,不太方便获取所有子进程ID,因此打算自己编写 C++ 代码来实现 思路 用伪码表示: 当待查询进程存在: 遍历用户所有进程,...获取每个进程的ID和父进程ID及内存 维护一个表,记录与待查询进程相关的子进程及其内存,初始化只有待查询进程 遍历所有进程: 如果当前进程的父进程在表中:...将此进程及对应内存加入表 汇总表,得出总内存,并打印 这里细节是如何高效的更新表,可以将问题抽象为由一组边来构建树的过程,每个进程都有唯一的进程id(pid)和父进程id(ppid),正常来说一个系统所有的进程可以构建成一棵树.../pm 25201 2 监控 id 为25201的进程,刷新间隔为2秒 结果输出: 2020-09-18 17:37:05 1932 2020-09-18 17:37:07 1932 2020-09-18...17:37:09 1932 这里输出的内存单位是 KB 注意:由于需要进程启动之后才能开启监控,导致进程内存无法从0开始;当进程结束,则监控程序也会退出 关于结果展示,直接将输出结果的第二列和第三列拷贝到
supervisord是用Python编写的工具,用于进程监控。...supervisord命令的一些常用命令行参数: c 指定配置文件 n 在前台运行 u 指定用户运行 d 工作目录 l 日志文件路径 e 日志级别 运行supervisorctl supervisorctl用于管理监控的程序
Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误....var/monit chmod -R 750 /var/monit/ 然后启动monit /etc/init.d/monit start 进入配置目录 cd /etc/monit.d/ 添加mysql服务监控...添加http服务监控 vi http check process http with pidfile /usr/local/apache/logs/httpd.pid start program...,然后查看进程是否启动 如果需要监控tomcat,需要开启tomcat的pid文件,默认是没有的 修改脚本,添加蓝色部分 vi /usr/local/tomcat/bin/catalina.sh # .../etc/init.d/monit restart 注意: Monit是是根据被监控的进程的pid文件来检测的,如果没有pid文件,是无法使用的。
Monit的核心功能就是邮件通知,当你配置好需要监控的进程之后,无论是进程死亡,或者是进程变更都会发送报警邮件并且会更具你的预先配置好的命令尝试重启它,更牛逼的事当monit被关闭的时候也会发送邮件通知...附加功能 比如你不是用的云服务器自己管理的机器,但是机器数量又没有特别多没有到要搭建一套完整的监控系统的份上(zabbix或open-falcon)的份上Monit可以比较好的帮你低成本的解决这个问题...) 注意:配置文件中还有系统报警等可以自行了解这里不做太多说明 配置报警的几种方式 重中之重就是监控进程或者是服务器的报警,我们一般会选择/etc/monit.d/下面建立和监控的进程名一样的文件,Monit...会自动读取解析,这里先来介绍几种常见的配置 按照PID进行监控 使用PID进行监控的基本上是一些程序组件比如Nginx,PHP-FPM,Supervisor,KafKa等,它们都会有一个共同点就是会有一个...*.pid的文件来记录系统进程标示,所以我们如下配置: /etc/monit.d/nginx check process nginx with pidfile /var/run/nginx.pid #通过
新建监控项: 重点!!!...proc.num[,,,] 第一个参数是进程名字,没必要填写,填了反而会使监控不太准确(仅个人测试) 第二个参数是运行进程的用户名 第三个为进程的状态 ,一般选则all 包括:all (default)..., run, sleep, zomb 第四个参数用来指定进程名中包含的字符,对进程进行过滤。
需要后台运行,一般会用 nohup command & nohup /usr/bin/php /www/test.php >> /var/log/test.log 2>&1 & 但这样会有一些问题,不能监控进程状态...password=123456 保存后reload一下,使生效 supervisorctl reload 然后访问 http://localhost:9001/,即可看到如下界面 常用命令 #启动进程...supervisorctl start xxx #重启进程 supervisorctl restart xxx #重启所有属于名为group的分组进程 supervisorctl stop group...#停止全部进程 supervisorctl stop all #载入最新配置的文件 supervisorctl reload #根据最新的配置文件,启动新配置或有改动的进程 supervisorctl
在终端输入top: top -u xiximayou:监控指定用户 查看之后输入k,回车,再输入进程id,可以终止相关进程。...查看网络使用情况:netstat 基本语法:netstat 选项 -an:按一定顺序排列输出 -p:显示哪个进程在调用 比如:输入netstat -an | more:
这时我们就需要 Supervisor 来监控程序的运行,在意外终止时自动重启程序。...command 为需要执行的命令,如果需要在程序退出后自动重启,设置 autostart=true 即可;directory 为程序运行目录,startretries 可以设置启动失败时的尝试次数;user 则是进程运行的用户身份...#启动所有程序 supervisorctl stop all #停止所有程序 supervisorctl restart all #重启所有程序 最后需要注意的是,如果使用 Supervisor 监控
pm2 npm install -g pm2 npm install -g pm2-web //linux有效 command pm2 logs,实时显示日志 pm2 list,查看启动进程 pm2...stop id[name],关闭进程,all所有 pm2 kill,关闭所有 pm2 monit,查看详细信息 pm2 start,启动程序 –watch,修改app.js后自动重启 debug
自从上次 Log4j2 的漏洞问题升级了 Logstash 之后,每到凌晨 2 点,进程就会挂掉,那段时间会有一个日志切割的操作导致文件不可读,因此写了一个脚本通过 crontab 来监控进程是否存在:.../bin/bash process=$1 pid=$(ps -ef | grep 进程名称 | grep -v grep | awk '{print $2}') if [ !..."msgtype": "text", # "text": { # "content": "正式环境 Logstash 进程异常..., # "mentioned_list": ["@all"] # } # }' fi 刚开始我的进程名称填的一直是 logstash...,然而每次 kill 掉进程后,依旧能输出 2 个进程号,但是如果手动查询进程号的话输出就是空,最后通过查询 Java 进程来变相达成目的。
为了使Promethuse可以对进程进行监控,可以用利用process-exporter来检测所选进程的存活状态 一、安装process-exporter 1、安装部署 wget https://github.com...linux-amd64.tar.gz mv process-exporter-0.6.0.linux-amd64 /usr/local/exporter/process-exporter 2、配置文件,监控特定进程...- name: "{{.Matches}}" cmdline: - 'org.apache.hadoop.hdfs.qjournal.server.JournalNode' 监控所有服务进程...process_exporter systemctl enable process_exporter 4、访问 curl localhost:9256/metrics 二、配置prometheus采集进程数据
Zabbix通过进程名监控进程状态配置详解 有时候我们只能通过进程名监控一个进程是否停掉了,因为有的进程并没有对外提供端口号,以下记录了下详细步骤,通过这个示例会学到很多zabbix核心配置相关的东西。...总的来说,配置一个完整的监控流程如下: 1.创建监控项,即配置要监控的指标,如内存的使用率,CPU的使用率,进程的运行状况等,配了监控项后就会定时收集机器的配置信息,然后等待zabbix server收集...下面配置监控服务器的logstash(开源实时日志同步项目)进程是否在运行: 1.首先创建监控进程的监控项: 监控项的组成:key[参数] 例如获取5分钟的负载情况:system.cpu.load...www.ttlsa.com/zabbix/zabbix-agent-types-and-all-keys/ 在这里我们需要的是proc.num这个key,以下是对此key的详解: 可以看到此监控项的返回值是进程数量...,其中cmdline参数可以是进程名字包含的关键字,在这里我的进程的关键字是logstash,因此按如下方式创建监控logstash进程的监控项,表示机器所有用户所有状态的logstash进程数量:
进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具。...当然了,本地,远程和web管理的时候,需要调用supervisor的xml_rpc接口,这个也是后话。 supervisor管理的进程,进程组信息,全部都写在一个ini格式的文件里就OK了。...当然了,本地,远程和web管理的时候,需要调用supervisor的xml_rpc接口,这个也是后话。 精确 为啥说精确呢?因为linux对进程状态的反馈,有时候不太准确。为啥不准确?...而supervisor监控子进程,得到的子进程状态无疑是准确的。...XML-RPC interface: XML-RPC接口,提供XML-RPC服务来对子进程进行管理,监控 四安装部署 为了统一python版本和各种依赖库,推荐使用pyrun代替系统的python进行部署
需求: 运行环境为CentOS 7系统,我们开发了一个程序,需要在开机时启动它,当程序进程crash或者开机之后,守护进程立即拉起进程。...解决方案: 使用CentOS 7中的init进程systemd systemd简介 Linux Init & CentOS systemd Linux一直以来采用init进程。...Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。(这也是CentOS5的主要特征) 2、启动脚本复杂。Init进程只是执行启动脚本,不管其他事情。...PID为1.其他所有的进程都是它的子进程。 systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本。...创建被监控脚本 $ cd ~ $ vim test_init_watch.sh //脚本任务:间隔一秒钟输出一个date时间戳到指定到指定文件 #!
top top与ps类似,他们都是用来显示正在执行的进程。 两者最大的不同之处就是top在执行一段时间可以更新正在运行的进程。...基本语法: top +选项 选项 功能 -d 秒数 指定top指令每隔几秒更新,默认为3秒 -i 使top不显示任何闲置或者僵死进程 -p 通过指定监控进程ID来仅仅监控某个进程的状态 上述图片中...0 zombie 代表僵死进程 %Cpu(s): 0.7 us, 0.0 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st cpu...Swap分区内存占用情况 交互模式 操作 功能 M 以内存的使用率排序 P 以cpu使用率排序,默认就是此项 N 以PID排序 q 退出top 1.想要监视特定的用户 首先: top 回车,查看执行的进程...u 回车,再输入用户名即可 想要终止指定进程 首先: top 回车,查看执行的进程 k 然后输入k 回车,再输入要结束的进程ID号 监控网络状态 查看系统网络情况 netstat 基本·语法
https://blog.csdn.net/haluoluo211/article/details/77693818 本文主要内容: shell日志date format shell poll监控重新运行...最终决定使用shell一直监控指定的进程,如果没有运行,则重新启动重新。...相信监控重新是否运行,如果重新意外挂了,需要对重新重新启动这个场景应该十分常见吧,(下面是shell的log截图) ?
环境介绍 操作系统:centos 7.4 zabbix版本:zabbix server 3.4.7 客户端:zabbix-agent 3.4.7 监控进程:mysqld 监控端口:3306 tcp 进程监控...确认客户端已经安装且运行agent 查看进程 查看属于那个用户的 几个进程 mysql 的进程为root用户 两个进程 添加监控项 名称随便写 类型zabbix客户端 键值选则进程数返回数 应用集选则...prosesses 进程 proc.num[,,,] 以下是对mysql进程的监控配置,key中的参数说明, 第一个参数是进程名字,...稍等几分钟观察看看能不能触发触发器 收到邮箱警告 吧测试的进程改为正常的(因为mysql 运行的进程为两个我这变设置的触发器为进程小于两个进程就发出告警) 保存更新观察是否回复正常 监控端口...添加监控项 修改端口 保存更新 同监控进程一样(先测试) 收到触发警告 吧之前的值调整为0 测试回复正常
领取专属 10元无门槛券
手把手带您无忧上云