Monit的编译(交叉编译)及使用

       在单片机程序开发中,为了避免程序跑飞,经常会用到看门狗。其原理其实就是一个定时器在计数,时间到了就会将程序复位。在我们程序正常运行的逻辑中会定期进行喂狗操作(计数清零),保证程序不会被复位。一旦程序没有按照正常逻辑运行,看门狗就会将整个程序复位,从异常中快速恢复。

       而在linux程序开发中,也需要来监控程序是否正常运行,通常会采用守护进程来监控。下面介绍Monit就是一个功能十分强大的守护进程。

       Monit是一个用于管理和监控类Unix系统的小型开源实用程序。它可以自动修复那些已经停止运作的程序,特别适合处理那些由于多种原因导致的软件错误,同时Monit 包含一个内嵌的 HTTP(S) Web 界面,你可以使用浏览器方便地查看 Monit 所监视的应用。

一、下载源码

Monit源码官网下载地址:https://mmonit.com/monit/

二、编译monit

1、配置configure

--without参数指不依赖指定库,根据个人的需求和编译环境,可加可不加,具体参考configure提示信息。

linux配置参考如下:

./configure prefix=/home/fangye/libs_build/monit/build_linux --without-zlib --without-pam --without-ssl

ARM配置参考如下:

./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/fangye/libs_build/monit/build_arm_gnueabi --without-zlib --without-ssl --without-pam libmonit_cv_setjmp_available=yes libmonit_cv_vsnprintf_c99_conformant=yes

2、make

3、make install

4、编译结果

三、配置文件monitrc

monit运行后,默认会先查找~/.monitrc文件,如果文件不存在,则会尝试去/etc/目录和当前目录寻找monitrc文件。

也可以运行monit时候,通过-c参数指定配置文件。

编写测试程序test:

如下为监控可执行文件的配置示例:

#配置文件大小写不敏感
set daemon 30    #每隔30s检查一次服务
#with start delay 240    #将第一次检查延迟240s
set log syslog        #设置系统日志
set mmonit http://monit:[email protected]:8080/collector #设置monit服务器

set httpd port 2812 and         #设置端口号
    use address localhost  # 只接受本地访问
    allow localhost        # 允许本地连接
    allow admin:monit      # 登录账号 'admin' 密码 'monit'

CHECK PROGRAM test WITH PATH /home/fangye/libs_build/monit/build_linux/bin/test  #监控test进程
    if status != 0 then alert

# include /etc/monit.d/*    #可通过include命令包含某个目录下所有的配置文件

除监控程序(Program)之外,monit还能监控进程(Process)、文件(File)、管道(Fifo)、文件系统(Filesystem)、目录(Directory)、远程主机(Remote host)、系统(System)、网络(Network)。

注:修改monitrc文件后,建议使用monit -t来测试配置文件是否合法。

四、启动monit

此处为手动运行,仅用来做测试。实际使用时,都会讲monit加到开机启动脚本中,开机启动时自动运行monit,再由monit监控要运行的服务、程序等。

提示http启动了,进入浏览器,输入账号admin 密码monit登录即可查看:

其中就可以看到我们监控的test程序。

若手动将test程序杀掉,monit进程会自动重新启动test程序。

如下所示,kill掉test后,其pid发生改变。

monitrc详细配置请参考:

https://www.jianshu.com/p/248d6456e83f

https://blog.csdn.net/arnold_wang/article/details/39855331

猜你喜欢

转载自blog.csdn.net/fangye945a/article/details/86534736