[喵咪Liunx(4)Monit进程监控
[喵咪Liunx(4)Monit进程监控
前言
有一段时间没有更新博客了,最近因为公司项目全球化以及最近慢慢在偏向学习团队管理忙的有点不可开交了,不过这次要给大家带来两篇关于Liunx日常开发维护管理中非常好用的两款利器,其中一个就是Monit啦,Monit是什么呢?他是一个进程级别的一个监控软件,不卖关子我们就进入到今天的正文当中吧!
附上:
喵了个咪的博客:w-blog.cn
Monit官网地址:https://www.mmonit.com/monit/documentation/monit.html
1. 问题
在我们平时研究一样东西或者说遇到一项困难时我们会更具问题来寻找解决方案,那就看待Monit之前就要先了解遇到了什么问题?
Nginx挂啦~~~~
笔者就是有意思客户反映到领导那里去了,你们平台怎么用不了了?,最后一查居然是Nginx死掉了~~死掉的时候是下午5点完成8点才收到反馈,用户不反馈就算等到明天可能还不知道!
脚本死了
Liunx开篇推荐的软件Supervisor可以帮助你运行脚本或者说软件,但是运行的软件默认连续过快退出三次就结束了,这个时候你怎么知道没有运行了?
2. Monit能搞定吗?
Monit的核心功能就是邮件通知,当你配置好需要监控的进程之后,无论是进程死亡,或者是进程变更都会发送报警邮件并且会更具你的预先配置好的命令尝试重启它,更牛逼的事当monit被关闭的时候也会发送邮件通知Moint被关闭,并且它还可以完成如下功能!
附加功能
比如你不是用的云服务器自己管理的机器,但是机器数量又没有特别多没有到要搭建一套完整的监控系统的份上(zabbix或open-falcon)的份上Monit可以比较好的帮你低成本的解决这个问题
web管理
可以用过web界面监控服务的资源占用,开始,暂停,重启等.
3. 安装Monit
这里笔者还是使用的centos6.5进行安装,只需要简单的yum一下即可
yum install monit
然后通过service命令就可以开关monit了
service monit start
service monit stop
4. 配置文件解读
使用monit最重要的就是设置好配置文件,具体的可以在官方文档查看这里只说几个重要的
# 检查时间默认30秒一次
set daemon 30
# 邮箱配置({名称}替换成实际值)
set mailserver {smtp地址}
username "{邮箱用户名}" password "{邮箱密码}"
set mail-format {
# 邮件模板自定义
from: {邮箱用户名}
subject: monit alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Service: $SERVICE
Description: $DESCRIPTION
Your faithful employee,
Monit
}
set alert {接受的邮箱1}
set alert {接受的邮箱2}
# web访问配置 默认端口号2812
set httpd port 2812 and
use address {能访问到的外网地址}
allow 0.0.0.0/0 #限制的请求IP
allow admin:monit #登录用户名密码
基本配置就完成了,如果配置正确我们就会有道一封Monit启动的邮件
monit alert -- Monit instance changed {主机名}
Monit instance changed Service {主机名}
Date: Fri, 14 Oct 2016 23:23:52
Action: start
Host: {主机名}
Service: {主机名}
Description: Monit 5.14 started
Your faithful employee,
Monit
并且能够通过配置好的web端口访问得到如下界面(一下是配置好监控项才会有的)
注意:配置文件中还有系统报警等可以自行了解这里不做太多说明
5. 配置报警的几种方式
重中之重就是监控进程或者是服务器的报警,我们一般会选择**/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 #通过PID文件监控nginx
start program "/etc/init.d/nginx start" #启动程序 死亡自动启动
stop program "/etc/init.d/nginx stop" #关闭程序 web界面可以操作
按照程序绝对命令
还有一种就是我们运行的脚本,不如运行了一个php index.php需要对它进行监控需要如下配置:
/etc/monit.d/phpindex
check process taskEmail with MATCHING 'php index.php'
# 通过命令获取pid监控方式
if changed pid then alert
注意:这里有过有多个命令都是php index.php会会出现问题
6. 总结
大家今天GET到了没有啊,Monit在日常中可以在非常低的成本下帮助我们发现问题及时告知我们,并且还有一些简单的web界面的配合,那么今天就到这里下一节将给大家介绍一个多服务器管理利器pssh,多谢大家的支持!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
- objective-C 的OOP(上)--类定义、继承及方法调用
- jQuery打造智能提示插件二(可编辑下拉框)
- Nicholas Christakis:朋友多是由基因决定的?
- WPF中的MatrixTransform
- kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)
- ruby学习笔记(3)--语法层面的先见之明
- jQuery操作Select
- ruby学习笔记(11)--symbol与hash参数
- zabbix监控-基本原理介绍
- OpenStack构架知识梳理
- mysql操作命令梳理(4)-grant授权和revoke回收权限
- 问未来
- ruby on rails + mysql 开发环境搭建
- CentOS 7.2下安装Mono 5.0
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux一行命令处理批量文件详解
- Linux中jar包启动和jar包后台运行的实现方式
- Linux下实现不活动用户登录超时后自动登出
- Centos7下nginx的安装与配置教程详解
- Linux上进行常用软件的配置方法
- Ubuntu系统下网络配置文件解析与说明
- 详解Centos7扩展磁盘空间(LVM管理)
- 设置ssh无密码登录linux服务器的方法
- linux特殊字符及其作用大全
- CentOS7搭建gerrit 代码审查服务方法
- CNS图表复现08—肿瘤单细胞数据第一次分群通用规则
- Gunicorn运行与配置方法
- 如何使用Linux文本操作命令ed进行提权nov5详解
- linux系统用户管理与grep正则表达式示例教程
- 在Linux中如何查找最大的10个文件方法汇总