yinxin
作者yinxin·2020-02-04 11:48
项目经理·某金融机构

monit介绍和配置

字数 2965阅读 916评论 0赞 0

1.介绍

monit监控和管理进程、程序、文件、目录和Unix系统的文件的工具。可以进行自动维护和修理,在错误的情况下执行有意义的因果关系的行动。比如,某个进程没有运行启动它;没有响应重启它;占用太多资源停止该进程等等。也可以用来监控文件、目录或系统文件的变化,如时间戳的改变,检验和的改变或大小的改变

2.安装:(需先装epel源)

yum install monit -y

3.配置

3.1 monit 的配置文件monit.conf

set daemon 30 监控检查的时间间隔

set logfile syslog 默认日志为syslog,还可以设置为自定义路径下的文件

set pidfile /var/run/monit.pid 设置pid文件的位置

set idfile /var/.monit.id 设置监控项目唯一ID的文件位置 默认在$HOME/.monit.id

set statefile /var/.monit.state 默认存储每个周期内monitorinig 状态的文件

set mailserver mail.bar.baz 主的邮件服务器

backup.bar.baz port 10025 备的邮件服务器

mailserver 支持格式为:

SET MAILSERVER , ...

[with TIMEOUT X SECONDS]

[using HOSTNAME hostname]

set eventqueue #默认当邮件服务器不可用时使用eventqueue存储报警事件

basedir /var/monit

slots 100 #限制队列大小

set mail-format { 设置邮件告警的格式

from: monit@$HOST

subject: monit alert -- $EVENT $SERVICE

message: $EVENT Service $SERVICE

Date: $DATE

Action: $ACTION

Host: $HOST

Description: $DESCRIPTION

Your faithful employee,

Monit

}

set alert sysadm@foo.bar 设置接收告警的邮箱

以上是全局的配置,具体的services监控语法后面会介绍

3.2 进程监控

在 /etc/monit.d/下创建 nginx ,,并重启monit。内容如下

  1. check process nginx with pidfile /usr/local/xywy/nginx/run/nginx.pid
  2. start program = "/usr/local/xywy/nginx/sbin/nginx" with timeout 30 seconds
  3. stop program = "/usr/local/xywy/nginx/sbin/nginx -s stop"

3.3 监控文件

在 /etc/monit.d/下创建monit_test ,并重启monit,内容如下

  1. check file monit.conf path /etc/monit.conf
  2. group system
  3. if changed sha1 checksum
  4. then exec "/usr/local/bin/monit -c /etc/monit.conf reload"

3.4 监控文件设备

  1. check device VAR_LOG with path /var/log
  2. if space usage > 85% then alert
  3. check filesystem tmpfs with path /var
  4. if space usage > 80% then alert

下面是配置综合案例

  1. check process sshd with pidfile /var/run/sshd.pid
  2. start program "/etc/init.d/sshd start"
  3. stop program "/etc/init.d/sshd stop"
  4. if failed port 22 protocol ssh then restart
  5. if 5 restarts within 5 cycles then timeout
  6. check process mysql with pidfile /var/run/mysqld/mysqld.pid
  7. group database
  8. start program = "/etc/init.d/mysqld start"
  9. stop program = "/etc/init.d/mysqld stop"
  10. if failed host 127.0.0.1 port 3306 then restart
  11. if 5 restarts within 5 cycles then timeout
  12. check process nginx with pidfile /var/run/nginx.pid
  13. start program = "/etc/init.d/nginx start"
  14. stop program = "/etc/init.d/nginx stop"
  15. if failed host www.vpsee.com port 80 protocol http
  16. then restart
  17. check process php_cgi with pidfile /var/run/php_cgi.pid
  18. start program = "/etc/init.d/php_cgi start"
  19. stop program = "/etc/init.d/php_cgi stop"
  20. if failed host 127.0.0.1 port 9000 then restart
  21. if 5 restarts within 5 cycles then timeout
  22. check process apache with pidfile /var/run/httpd.pid
  23. group www
  24. start program = "/etc/init.d/httpd start"
  25. stop program = "/etc/init.d/httpd stop"
  26. if failed host www.vpsee.com port 8080 protocol http
  27. then restart
  28. if cpu is greater than 80% for 2 cycles then alert
  29. if cpu > 80% for 5 cycles then restart
  30. if totalmem > 512 MB for 5 cycles then restart
  31. if children > 200 then restart
  32. if loadavg(5min) greater than 10 for 8 cycles then stop
  33. if 3 restarts within 5 cycles then timeout

3.5 monit命令使用

-c 指定配置文件

-d 后台运行

-l 指定logfile

-p 指定pid file

-s 指定statefile

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广