开源轻量级进程监控工具monit的使用以及monit进程监控工具常用的监控配置案例示例大全

一、开源轻量级进程监控工具monit的应用

    今天在服务器杀进程时,发现有一个进程一直在重启,寻找服务器各种定时任务未发现有定时程序,也没有发现supervisord的进程管理服务,后来才发现服务器上启用了monit这个工具,monit是一个开源的轻量级监控工具,功能挺强大,基本可以满足大多数的需求,它能从多个层面进行监控,比如可以通过PID文件,可以通过端口号等来监控进程,也可以对服务器的负载内存等各数据进行监制,以自动维护进程,发送报警等。monit介绍:

系统监控:进程状态,系统负载,cpu负载,内存占用等。
进程监控:monit可以监控守护进程,当被监控进程异常退出时,可以自动被拉起。
文件系统:Monit可以监控本地文件、目录、文件系统的变化,包括时间戳、校验值、大小的变化。例如,可以监控文件sha1以及md5的值,来监控文件是否发生变化
网络监控:monit可以监控网络连接,支持TCP、UDP、Unix domain sockets以及HTTP、SMTP等。

        monit安装使用起来都特别简单,一个命令安装完毕,修改一下配置文件,启动进程就完成了进程监控。

第一步:monit安装

        安装非常简单,sudo yum install -y monit

[online@ER9 src]$ sudo yum install -y monit
......
Resolving Dependencies
--> Running transaction check
---> Package monit.x86_64 0:5.25.1-1.el6 will be installed
--> Finished Dependency Resolution
Installed:......
Complete!

 第二步:配置文件整理

    修改配置文件,比如我这里用来监控nginx服务。编辑/etc/monit.conf,在最后添加以下四行配置文本,其中各行的意思是:
    第一行,check process searchd with pidfile指明nginx的pid文件位置。process后面的nginx为监控的名称,在status可以看到。
    第二三行,start program和stop program 分别编辑好进程启动和停止命令sh文件位置,必须是绝对路径
    第四行,指定if failed host IP地址的port失败,然后进行停止再启动。配置文本如下:

[online@ER9 nginx]$ vim /etc/monit.conf
#检测间隔时间配置,默认是120s
set daemon  30
set mailserver localhost
set mail-format { from: test@04007.cn }
set alert test@04007.cn
#在最后添加以下配置并编辑
check process nginx with pidfile /opt/data/pid/nginx/nginx.pidstart program = "/opt/modules/nginx/sbin/start.sh"stop program = "/opt/modules/nginx/sbin/stop.sh"if failed host 192.168.168.11 port 80 then restart#对应的启动停止命令文本
[online@ER9 nginx]$ sudo cat /opt/modules/nginx/sbin/start.sh
#!/usr/bin/env bash
cd /opt/modules/nginx/opt/modules/nginx/sbin/nginx
exit $?
[online@ER9 nginx]$ sudo cat /opt/modules/nginx/sbin/stop.sh 
#!/usr/bin/env bash
cd /opt/modules/nginx
killall nginx
exit $?

 第三步:启动monit进程

        可以通过monit status查看监控列表,比如监控的Process

[online@ER9 nginx]$ which monit
/usr/bin/monit
[online@ER9 nginx]$ sudo /usr/bin/monitNew Monit id: bfada1971c1890edd164f7951d5d1a69Stored in '/root/.monit.id'
Starting Monit 5.25.1 daemon with http interface at [localhost]:2812
#查看monit的状态
[online@ER9 nginx]$ sudo monit status
Monit 5.25.1 uptime: 0m
Process 'nginx'status                       OKmonitoring status            Monitoredmonitoring mode              activeon reboot                    startpid                          23273parent pid                   1uid                          0effective uid                0gid                          0uptime                       19mthreads                      1children                     16cpu                          -cpu total                    -memory                       0.0% [1.9 MB]memory total                 2.9% [454.3 MB]security attribute           (null)disk write                   0 B/s [8 kB total]port response time           0.140 ms to 192.168.168.11:80 type TCP/IP protocol DEFAULTdata collected               Tue, 19 Mar 2019 15:53:19System 'BFG-OSER-4469'status                       OKmonitoring status            Monitoredmonitoring mode              activeon reboot                    startload average                 [0.00] [0.00] [0.00]cpu                          0.0%us 0.0%sy 0.0%wamemory usage                 1.8 GB [11.6%]swap usage                   180 kB [0.0%]uptime                       746d 23h 59mboot time                    Thu, 02 Mar 2017 15:53:35data collected               Tue, 19 Mar 2019 15:53:19

 现在,可以在服务上执行stop.sh,然后等着monit起作用将nginx进程启来吧。

二、monit进程监控工具常用的监控配置案例示例大全

1. monit监控检测语法

IF <TEST> THEN ACTION [ELSE IF SUCCEEDED THEN ACTION]
【action】包括 altert,start,stop.restart,exec
【alert】 触发报警邮件
【start|stop|restart】 就是触发start、stop、restart program。restart就是先执行stop再执行start.

【exec】 可以自定义一个脚本来执行

2.monit监控配置常用写法及案例

        monit可以将启动停止命令写在单独的shell文件中,也可将启动停止命令直接写在配置中;可以监控服务IP,也可以指定域名host主机;可以指定监控循环周期,遵循分时日月周定时任务配置,也可以指定排除在哪些时间段不用检测等等设置。看到有一个网页有比较详细的介绍,链接:http://www.cnblogs.com/52fhy/p/6412547.html  此处也收集了很多monit的常用监控案例,如有需要可以搜索进来快速查看和应用,笔记收录于此:

#将启动停止命令写在单独的shell文件中
check process nginx with pidfile /opt/data/pid/nginx/nginx.pidstart program = "/opt/modules/nginx/sbin/start.sh"stop program = "/opt/modules/nginx/sbin/stop.sh"if failed host 192.168.162.11 port 80 then restartif failed host www.04007.cn port 443 then restart# 设置在10个监视周期内重,启了9次则超时,不再监视这个服务。if 9 restarts within 10 cycles then timeout# 如果在5个周期内该服务的cpu使用率都超过90%则提示if cpu usage > 90% for 5 cycles then alert# 若连续5个周期打开url都失败(120秒超时,超时也认为失败)则重启服务if failed url http://127.0.0.1:4000/ timeout 120 seconds for 5 cycles then restart#exec监控再执行另外的脚本check host 192.168.11.12 with address 192.168.11.12if failed port 80 with timeout 1 seconds for 2 cycles then exec "/opt/monit/contrab/notify.py"#也可将启动停止命令直接写在配置中
check process nginx with pidfile /usr/local/nginx/run/nginx.pid
start program = "/usr/local/nginx/sbin/nginx" with timeout 30 seconds
stop  program = "/usr/local/nginx/sbin/nginx -s stop"
if failed host 192.168.162.11 port 80 protocol http then restart
if 5 restarts within 5 cycles then timeout#可以指定监控循环周期,遵循分时日月周定时任务配置
check process nginx with pidfile /var/run/nginx.pidevery 2 cycles
Example 2: Check every workday 8AM-7PMcheck program checkOracleDatabase withpath /var/monit/programs/checkoracle.plevery “* 8-19 * * 1-5”
Example 3: 在这个时间端,就不要检测  Sunday 0AM-3AMcheck process mysqld with pidfile /var/run/mysqld.pidnot every “* 0-3 * * 0”#可以用expect做数据推送check process apache with pidfile /var/run/httpd.pidstart “/etc/init.d/httpd start”stop  “/etc/init.d/httpd stop”if failed host www.sol.no port 80 andsend “GET / HTTP/1.1\r\nHost: www.04007.cn\r\n\r\n”expect “HTTP/[0-9\.]{3} 200.*”then alert#监控配置文件修改后重启各种应用
check file monit.conf path /etc/monit.conf
group system
if changed sha1 checksum
then exec "/usr/bin/monit -c /etc/monit.conf reload"#监控sshd服务
check process sshd with pidfile /var/run/sshd.pidstart program  "/etc/init.d/sshd start"stop program  "/etc/init.d/sshd stop"if failed port 22 protocol ssh then restartif 5 restarts within 5 cycles then timeout#监控sshd服务
check process mysql with pidfile /var/run/mysqld/mysqld.pidgroup databasestart program = "/etc/init.d/mysqld start"stop program = "/etc/init.d/mysqld stop"if failed host 127.0.0.1 port 3306 then restartif 5 restarts within 5 cycles then timeout#监控phpcheck process php_fpm with pidfile /var/run/php_fpm.pidstart program = "/etc/init.d/php_fpm start"stop program  = "/etc/init.d/php_fpm stop"if failed host 127.0.0.1 port 9000 then restartif 5 restarts within 5 cycles then timeout

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1523579.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

上证50ETF期权交易策略有哪些?期权交易时要注意什么?

今天带你了解上证50ETF期权交易策略有哪些&#xff1f;期权交易时要注意什么&#xff1f;上证50ETF期权是一种以华夏50etf基金为标的物的金融衍生品&#xff0c;它允许投资者通过买卖期权合约来对冲风险或进行投机。 期权趋势型策略 趋势型的策略就是我们通常说的追涨杀跌&am…

Anaconda最新安装教程

1 概述 1 介绍 Anaconda是一个专注于数据分析的Python发行版本&#xff0c;它为科学计算和数据科学领域提供了强大的支持。Anaconda是一个开源的Python发行版&#xff0c;包含了conda、Python以及超过190个科学包及其依赖项。这些包涵盖了数据分析、机器学习、深度学习等多个…

自己动手写CPU_step5_移动指令

移动操作指令 define EXE_MOVN 6b001011 //不等于0转移 if rt ! 0 then rs -> rd define EXE_MOVZ 6b001010 //等于0转移 if rt 0 then rs -> rd define EXE_MFHI 6b010000 // hi -> rd define EXE_MFLO 6b010010 // lo…

828华为云征文|华为云Flexus X实例docker部署harbor镜像仓库

828华为云征文&#xff5c;华为云Flexus X实例docker部署harbor镜像仓库 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定不要错…

使用豆包 MarsCode 编程助手,兑换 4090 显卡!

关于豆包 MarsCode 编程助手 豆包 MarsCode 编程助手是一个智能化的编程工具&#xff0c;通过与 AI 的对话&#xff0c;用户可以轻松获取编程建议、解决问题并提高编程效率。无论您是编程新手还是经验丰富的开发者&#xff0c;MarsCode 都能为您提供极具价值的帮助。 点击直达…

查询电脑上已经连接的wifi密码

首先在电脑屏幕的右下角找到自己的wifi图标&#xff0c;右键wifi的图标&#xff0c;点击打开“网络和Internet设置” 进入设置后左侧先点击WLAN&#xff0c;然后在右侧找到并点击网络和共享中心 在网络和共享中心中点击连接后面&#xff0c;WLAN的名称 在WLAN状态中点击无线…

【ruoyi框架】开箱即用的管理系统框架

目录 1.简介 2.快速开始 2.1.仓库 2.2.环境初始化 3.使用介绍 3.1.权限与组件 3.2.开发与测试 1.简介 管理系统是当前软件市场上最常见的软件&#xff0c;管理系统在功能和界面上都有大量通用的点。 功能上通用的点包括但不限于&#xff1a; 角色、权限管理菜单管理鉴…

六西格玛项目:从定义问题到控制成果,全程无忧——张驰咨询

什么是六西格玛项目 六西格玛项目是一种旨在通过改善企业质量流程管理&#xff0c;以“零缺陷”的完美商业追求&#xff0c;带动质量大幅提高、成本大幅度降低&#xff0c;最终实现企业财务成效的提升与企业竞争力的突破的管理策略。它由摩托罗拉公司的工程师比尔史密斯于1986…

【学习AI-相关路程-工具使用-自我学习-jetson收集数据-图片采集-训练前准备-基础样例 (5)】

【学习AI-相关路程-工具使用-自我学习-jetson&模型训练-图片识别-使用模型检测图片-基础样例 &#xff08;5&#xff09;】 1 -前言2 -环境说明3 -先行了解&#xff08;1&#xff09;整理流程了解&#xff08;2&#xff09;了解模型-MobileNet1、MobileNetV2 的主要特性&am…

idea一键自动化部署项目

文章目录 前言一、 IDEA插件安装1. 首先下载 Alibaba Cloud Toolkit 插件2. 插件下载完成后重启IDEA 二、SpringBoot项目准备1. pom.xml 文件2. controller3. 启动类 三、SpringBoot项目jar包部署1. Alibaba Cloud Toolkit 插件服务器配置2. 主机 IP、用户名、密码 点击测试链接…

51单片机.之i2c读写eproom

1、i2c读写eeproom 通过uart发送数据&#xff0c;单片机接收数据后&#xff0c;显示到lcd&#xff0c;并写到eeprom保存。每次开机时&#xff0c;读取eeprom保存的数据&#xff0c;显示到 lcd。 程序框架 1、i2c驱动时序 2、uart中断收发数据 3、eeprom读写驱动 4、lcd驱动 5…

动手学深度学习(pytorch)学习记录19-参数管理[学习记录]

文章目录 参数访问目标参数一次性访问所有参数从嵌套块收集参数 参数初始化内置初始化自定义初始化 参数绑定延后初始化 本节内容&#xff1a; 访问参数&#xff0c;用于调试、诊断和可视化&#xff1b; 参数初始化&#xff1b; 在不同模型组件间共享参数&#xff1b; 延后初始…

第二证券:大牛股突发,停牌不超3天,此前22个涨停!

*ST富润晚间公告称&#xff0c;公司股票8月2日至9月3日已累计18个交易日涨停&#xff0c;股价涨幅为100.89%&#xff0c;股价不坚定较大&#xff0c;投资者较为重视。为保护投资者利益&#xff0c;公司姑息股票交易状况进行核对。经申请&#xff0c;公司股票自2024年9月4日开市…

给大模型加上“记忆”,深入探索 Mem0 项目

背景介绍 在之前的软件应用中&#xff0c;我们总会在应用中保留大量的用户历史操作记录&#xff0c;方便用户下次使用时可以快速查看和复用&#xff0c;甚至基于这些用户记录可以为用户提供个性化的服务。而这些记录往往都保存在传统的结构化或非结构化数据库中。 在大模型的…

JAVA毕业设计168—基于Java+Springboot+vue3的高校就业管理系统(源代码+数据库+14000字论文+开题+PPT)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3的高校就业管理系统(源代码数据库14000字论文开题PPT)169 一、系统介绍 本项目前后端分离(可以改为ssm版本)&#xff0c;分为用户、企业、管理员三种角色 …

shopify独立站分别有哪几类?难点在哪?

对于刚开独立站的业内人士来说&#xff0c;今天的文章将向您介绍Shopify店铺的类型以及运营店铺的难点。这使您可以更好地计划销售哪些产品以及如何运营。 ✅Shopify 类型 综合商店&#xff1a;又称全能商店 这种类型通常采用直销模式。卖家不需要提供自己的产品。您可以选择…

git 配置、下载、提交、更新、冲突解决学习

目录 一. 安装教程 二. git配置 1. 查看git配置参数 2. 设置邮箱和用户名 3. SSH配置 4. 配置git远程库公钥 5. 编码设置 三. git 提交流程 1. 整体操作流程图 2. Git仓库包含5个区域 3. 下载、提交、更新命令 3.1. 下载 3.2. 提交 3.3. 更新&#xff08;两种方式…

前端框架有哪些?

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

游戏应用|空地模型实景融合,还原《黑神话:悟空》游戏场景

古色斑驳&#xff0c;巍峨险峻&#xff0c;是历史的低语&#xff0c;诉说着千百年的沧桑与辉煌&#xff1b;飞檐翘角&#xff0c;雕梁画栋&#xff0c;凝聚着时代的文明与智慧。在数字化浪潮下&#xff0c;我们利用实景三维技术&#xff0c;翻开了中华古建筑这本伟大的史诗。 P…

基于物联网的低成本便携式传感器节点用于火灾和空气污染的检测与报警

目录 摘要 引言 材料和方法 传感器节点 IoT 微控制器 颗粒物传感器 环境和气体传感器 MQTT代理 Node-Red监控平台 系统结构 数据存储 工作描述 实验结果 讨论 结论 致谢 参考文献 这篇论文的标题是《Low-cost IoT-based Portable Sensor Node for Fire and Air…