让我们看看 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被关闭的时候也会发送邮件通知...service命令就可以开关monit了 service monit start service monit stop 配置文件解读 使用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 #通过
需要后台运行,一般会用 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
新建监控项: 重点!!!...proc.num[,,,] 第一个参数是进程名字,没必要填写,填了反而会使监控不太准确(仅个人测试) 第二个参数是运行进程的用户名 第三个为进程的状态 ,一般选则all 包括:all (default)..., run, sleep, zomb 第四个参数用来指定进程名中包含的字符,对进程进行过滤。
在终端输入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...,其中cmdline参数可以是进程名字包含的关键字,在这里我的进程的关键字是logstash,因此按如下方式创建监控logstash进程的监控项,表示机器所有用户所有状态的logstash进程数量:...3.配置动作发送短信和邮件报警: 以下是短信配置方式,邮件配置类似,其中应用集是自己创建的,主要用来分类,具体的自行研究: 参考文章: zabbix item key详解 zabbix
进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具。...Supervisor是一个Python开发的client/server系统,可以管理和监控*nix上面的进程。...# 启动监控的进程 supervisorctl start all # 关闭监控的进程 supervisorctl stop all # 查看状态 supervisorctl...重新加载配置文件: supervisorctl reload 其实,可以通过supervisorctl打开supervisor的命令行控制台,然后输入help可以查看看用的命令,然后help+命令可以查看每个命令的具体功能...八、监控告警 如果需求只是自动拉起crash的进程,通过命令行对进程进行管理,以上内容足矣。supervisor 3.0版本引入了事件,利用这个特性我们实现实时监控进程状态并告警。
需求: 运行环境为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时间戳到指定到指定文件 #!
业务上的一个需求: 监控进程是否存在,如果检测时不存在则发送告警短信,如果连续10次检测都不存在则发送告警电话。 最近一直在学前端vue.js,今天试着拿python练下,以免手生。.../procmonitor.py DESCRIPTION 解析进程xml,监控进程标示符,不存在sms告警,不存在uwork电话告警 DEMO ....def __init__(self, parse_xml, path, sms_id, uwork_id, threshold): """ parse_xml:要解析的进程文件.../procmonitor.py DESCRIPTION 解析进程xml,监控进程是否存在,不存在sms告警,不存在此uwork告警 DEMO .
原文地址 本文介绍利用VisualVm和jstatd来远程监控Java进程的方法。...要实现远程监控Java进程,必须在远程主机(运行Java程序的主机)上跑一个jstatd进程,这个进程相当于一个agent,用来收集远程主机上的JVM运行情况,然后用VisualVm连接到这个jstatd...,从而实现远程监控的目的。...还有要注意一点,运行jstatd的用户必须和运行Java程序的用户相同,或者是root,否则会监控不到远程主机上的Java进程。...这是正常的,如果需要这些信息(就像监控本地Java进程一样),那么就需要用JMX,相关内容会在另一篇文章中讲解。
pidstat 命令用来监控所有进程的状态,如进程占用的 CPU、内存、IO 可以指定监控具体的进程ID、监控时间间隔等 执行 pidstat 命令,默认显示出所有进程CPU相关的统计信息 各列含义 PID...进程ID %usr 在用户态运行时占用cpu时间的比率 %system 在内核态运行时占用cpu时间的比率 %CPU 进程总的cpu使用率 CPU 正在运行这个进程的CPU编号 Command 这个任务的命令名称...(kB) RSS 该进程使用的物理内存(kB) %MEM 该进程使用内存的百分比 (3)统计IO使用情况 # pidstat -d 信息含义 kB_rd/s 进程从磁盘每秒读取的数据量(kB) kB_wr.../s 进程向磁盘每秒写的数据量(kB) (4)综合统计 #pidstat -urd -h 统计每个进程的CPU 内存 IO数据 -h 意思为在一行显示所有信息 (5)统计指定进程的情况 # pidstat...mysql命令所有子进程的信息
领取专属 10元无门槛券
手把手带您无忧上云