文档章节

[喵咪Liunx(4)Monit进程监控

l
 linjin200
发布于 04/17 09:36
字数 1544
阅读 2
收藏 0

[喵咪Liunx(4)Monit进程监控

喵了个咪233

 

发表于喵了个咪的博客空间订阅

361

在这篇文章中:

[喵咪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,多谢大家的支持!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于 2018-03-02

© 著作权归作者所有

l

linjin200

粉丝 26
博文 1005
码字总数 1170031
作品 0
福州
程序员
私信 提问
[喵咪Liunx(4)Monit进程监控

有一段时间没有更新博客了,最近因为公司项目全球化以及最近慢慢在偏向学习团队管理忙的有点不可开交了,不过这次要给大家带来两篇关于Liunx日常开发维护管理中非常好用的两款利器,其中一个就是...

喵了_个咪
2016/10/17
206
0
[喵咪Liunx(5)集群管理利器pssh

[喵咪Liunx(5)集群管理利器pssh 哈喽大家好呀!大家在管理服务器的时候如果只是一两台还好,当你管理三台以上的服务器的时候,你安装任何一个软件更改任何一个配置文件就要无比麻烦的每一台机器...

喵了_个咪
2016/10/17
101
0
[喵咪PHP]页面显示空白问题

哈喽!大家好啊,喵咪PHP第一次和大家见面了,熟悉的朋友呢也之道喵咪我也开了喵咪Liunx和喵咪Golang这两个坑目的呢是吧平常遇到的一些问题或者是在学习中的东西好工具分享出来和大家交流沟通,...

喵了_个咪
2016/06/09
518
0
[喵咪Golang(2)]安装和Helloworld

哈喽大家好啊!今天我们紧接着来学习关于Go语言的安装和使用Go打印出helloworld,本节内容将会讲解关于Go语言在Liunx下怎么安装,环境变量怎么配置分别起到了什么作用,然后我们把go运行起来并且...

喵了_个咪
2016/05/23
110
0
二, 跨语言微服务框架 - Istio环境搭建

当我们知道Istio是一个好东西,能够帮助我们快速实现微服务化中的一些关键节点,那么下一步就需要考虑怎么使用Istio了,Istio现在版本是和Kubernetes强关联在一起的,如果大家还不是太了解K...

喵了_个咪
2018/11/12
3.3K
2

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部