阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用M/Monit进行可视化集中进程管理

155次阅读
没有评论

共计 3467 个字符,预计需要花费 9 分钟才能阅读完成。

一:前言

Monit 是一个开源监控管理工具(类似 supervisor),能够监控 linux 系统的负载、文件、进程等。当系统负载过高、监控文件被篡改、进程异常退出时,能够发送邮件报警,并能够自动启动或关闭异常进程。Monit 内嵌 web 界面,能够看到当前主机上的监控项状态。

M/Monit 是一个集中式管理多台 Monit 的可视化工具,也是收费工具,可以免费试用 30 天。

二:规划

M/Monit(集中管理)192.168.0.1

Monit(监控机)192.168.0.2

Monit(监控机)192.168.0.3

三:安装 M /Monit

(1)安装 M /Monit

$cd /opt
$wget https://mmonit.com/dist/mmonit-3.5.1-linux-x64.tar.gz
$tar xf mmonit-3.5.1-linux-x64.tar.gz
$cd mmonit-3.5.1

(2)配置 M /Monit

1:MMonit 的配置文件是 conf/server.xml,不需要任何改动即可使用,默认配置是 8080 端口。

<Connector address=”*” port=”8080″ processors=”10″ />

2:MMonit 默认使用的是包内自带的 sqlite3 数据库,默认配置如下

<Realm url=”sqlite:///db/mmonit.db?synchronous=normal&heap_limit=8000&foreign_keys=on&journal_mode=wal”
                  minConnections=”5″
                  maxConnections=”25″
                  reapConnections=”300″ />

也可以改成 mysql 和 postgresql 数据库. 以 myqsl 为例(使用默认的 sqlite 可以跳过):

修改 sqlite 配置为

<Realm url=”mysql://mmonit:passwd@10.10.10.10/mmonit”
                  minConnections=”5″
                  maxConnections=”25″
                  reapConnections=”300″ />

并导入 mysql 数据库

$mysql -ummonit -ppasswd < /opt/mmonit-3.5.1/db/mmonit-schema.mysql

(3)启动 M /Monit

$bin/mmonit -c conf/server.xml

(4)启动 M /Monit

访问 192.168.0.1:8080,显示登录页。

默认用户名

 user

 password

 权限

 admin

 swordfish

 管理员

 monit

 monit

 普通用户

使用 M /Monit 进行可视化集中进程管理

使用 M /Monit 进行可视化集中进程管理

登录进去后,里面是空白的,No hosts,这是因为 monit 还没有加入进来,下面配置 monit

四:安装配置 monit

(1)安装 Monit

192.168.0.2 192.168.0.3

$cd /opt
$wget https://mmonit.com/monit/dist/binary/5.19.0/monit-5.19.0-linux-x64.tar.gz
$tar xf monit-5.19.0-linux-x64.tar.gz
$cd monit-5.19.0

(2)配置 Monit

$vim conf/monitrc
# 检测周期
set daemon  30
# 进程文件配置
set logfile syslog
set pidfile /var/run/monit.pid
set idfile /var/.monit.id
set statefile /var/.monit.state
# 事件队列
set eventqueue basedir /var/monit slots 100         
# 配置 mmonit(将监控数据发送至 MMonit 进行统一展示)
set mmonit http://monit:monit@192.168.0.1:8080/collector
# 邮件服务器地址
set mailserver 10.10.10.10 port 25
  username “monit@linuxidc.com” password “monit”
# 自定义发送邮件格式($DATE 等都是 monit 内置变量)
set mail-format {
  from:    Monit@linuxidc.com
  subject: monit alert —  $EVENT $SERVICE
  message: $EVENT Service $SERVICE
                Date:        $DATE
                Action:      $ACTION
                Host:        $HOST
                Description: $DESCRIPTION
 }
# 设置报警收件人
set alert zhangsan@linuxidc.com
set alert lisi@linuxidc.com
# 配置 https,用于 web 界面,由于使用 MMonit 的界面管理,也可以不配置.
set httpd port 2812 and
    use address localhost 
    allow localhost       
    allow admin:monit     
#—- 以下为监控项,以几个常见监控项为例 —-#
# 检查 monit 配置文件更新
check file monitrc path /opt/monit-5.19.0/conf/monitrc
    if changed sha1 checksum
    then exec “/opt/monit-5.19.0/bin/monit -c /opt/monit-5.19.0/conf/monitrc reload”
# 检查系统负载
check system 192.168.0.2
    group system
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if cpu usage > 95% for 10 cycles then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
# 磁盘各目录空间
check filesystem root with path /
    group system
    if space usage > 90% then alert
check filesystem usr with path /usr
    group system
    if space usage > 80% then alert
check filesystem var with path /var
    group system
    if space usage > 90% then alert
# 监控 ssh 服务
check process sshd with pidfile /var/run/sshd.pid
    start program “/etc/init.d/sshd start”
    stop program “/etc/init.d/sshd stop”
    if failed host 127.0.0.1 port 22 protocol ssh then restart
# 监控 nginx(不仅可以监控进程 PID 文件的变化,还可以监控 80 端口)
check process nginx with pidfile /var/run/nginx.pid
    start program = “/etc/init.d/nginx start” with timeout 60 seconds
    stop program  = “/etc/init.d/nginx stop”
    if changed pid for 5 cycles then restart
    if failed port 80 protocol http with timeout 2 seconds then alert

(3)启动 monit

$bin/monit -c conf/monitrc

(4)访问 MMonit,192.168.0.1:8080

使用 M /Monit 进行可视化集中进程管理

使用 M /Monit 进行可视化集中进程管理

已经能够看到 192.168.0.2 和 192.168.0.3 两台机器。

使用 M /Monit 进行可视化集中进程管理

点进去机器,可以看到该机器的监控项,包括系统监控、进程监控、文件系统、配置文件监控。

大功告成!!!!!

此时,你可以去机器上试一试,手动 kill 掉 nginx 进程,你会发现进程会自动被拉起。

下面放两张我使用监控 ELK 集群的图,机器多一点。

使用 M /Monit 进行可视化集中进程管理

使用 M /Monit 进行可视化集中进程管理

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-03/142154.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3467字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中