怎么使用Monit部署服务器监控系统(monit,服务器,开发技术)

时间:2024-05-02 01:38:07 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Monit 对系统管理员来说所谓是神器,它是一款功能非常丰富的进程、文件、目录和设备的监测软件,下面就和大家详细介绍一下使用Monit部署服务器监控系统。

怎么使用Monit部署服务器监控系统

在Linux安装Monit

Monit已经被包含在多数Linux发行版的软件仓库中了。

Debian、Ubuntu或者Linux Mint:

$sudoaptitudeinstallmonit

Fedora或者CentOS/RHEL:

在CentOS/RHEL中,你必须首先启用EPEL或者Repoforge软件仓库.

#yuminstallmonit

Monit自带一个文档完善的配置文件,其中包含了很多例子。主配置文件在/etc/monit.conf(Fedora/CentOS/RHEL 中),或者/etc/monit/monitrc(Debian/Ubuntu/Mint 中)。Monit配置文件有两部分:“Global”(全局)和“Services”(服务)。

Global Configuration: Web Status Page (全局配置:Web状态页面)

Monit可以使用邮件服务来发送通知,也可以使用HTTP/HTTPS页面来展示。我们先使用如下配置的web状态页面吧:

  • Monit监听1966端口。

  • 对web状态页面的访问是通过SSL加密的。

  • 使用monituser/romania作为用户名/口令登录。

  • 只允许通过localhost、myhost.mydomain.ro和在局域网内部(192.168.0.0/16)访问。

  • Monit使用pem格式的SSL证书。

之后的步骤,我会使用一个基于Red Hat的系统。在基于Debian的系统中的步骤也是类似的。

首先,在/var/cert生成一个自签名的证书(monit.pem):

#mkdir/var/certs#cd/etc/pki/tls/certs#./make-dummy-certmonit.pem#cpmonit.pem/var/certs#chmod0400/var/certs/monit.pem

现在将下列代码片段放到Monit的主配置文件中。你可以创建一个空配置文件,或者基于自带的配置文件修改。

sethttpdport1966andSSLENABLEPEMFILE/var/certs/monit.pemallowmonituser:romaniaallowlocalhostallow192.168.0.0/16allowmyhost.mydomain.ro

Global Configuration: Email Notification (全局配置:邮件通知)

然后,我们来设置Monit的邮件通知。我们至少需要一个可用的SMTP服务器来让Monit发送邮件。这样就可以(按照你的实际情况修改):

  • 邮件服务器的机器名:smtp.monit.ro

  • Monit使用的发件人:monit@monit.ro

  • 邮件的收件人:guletz@monit.ro

  • 邮件服务器使用的SMTP端口:587(默认是25)

有了以上信息,邮件通知就可以这样配置:

setmailserversmtp.monit.roport587setmail-format{from:monit@monit.rosubject:$SERVICE$EVENTat$DATEon$HOSTmessage:Monit$ACTION$SERVICE$EVENTat$DATEon$HOST:$DESCRIPTION.Yourssincerely,Monit}setalertguletz@monit.ro

就像你看到的,Monit会提供几个内部变量($DATE、$EVENT、$HOST等),你可以按照你的需求自定义邮件内容。如果你想要从Monit所在机器发送邮件,就需要一个已经安装的与sendmail兼容的程序(如postfix或者ssmtp)。

Global Configuration: Monit Daemon (全局配置:Monit守护进程)

接下来就该配置Monit守护进程了。可以将其设置成这样:

  • 在120秒后进行第一次检测。

  • 每3分钟检测一次服务。

  • 使用syslog来记录日志。

如下代码段可以满足上述需求。

setdaemon120withstartdelay240setlogfilesyslogfacilitylog_daemon

我们必须定义“idfile”,Monit守护进程的一个独一无二的ID文件;以及“eventqueue”,当monit的邮件因为SMTP或者网络故障发不出去,邮件会暂存在这里;以及确保/var/monit路径是存在的。然后使用下边的配置就可以了。

setidfile/var/monit/idseteventqueuebasedir/var/monit

测试全局配置

现在“Global”部分就完成了。Monit配置文件看起来像这样:

#GlobalSection#statuswebpageandacl'ssethttpdport1966andSSLENABLEPEMFILE/var/certs/monit.pemallowmonituser:romaniaallowlocalhostallow192.168.0.0/16allowmyhost.mydomain.ro#mail-serversetmailserversmtp.monit.roport587#email-formatsetmail-format{from:monit@monit.rosubject:$SERVICE$EVENTat$DATEon$HOSTmessage:Monit$ACTION$SERVICE$EVENTat$DATEon$HOST:$DESCRIPTION.Yourssincerely,Monit}setalertguletz@monit.ro#delaycheckssetdaemon120withstartdelay240setlogfilesyslogfacilitylog_daemon#idfileandmailqueuepathsetidfile/var/monit/idseteventqueuebasedir/var/monit

现在是时候验证我们的工作了,你可以通过运行如下命令来验证存在的配置文件(/etc/monit.conf):

#monit-tControlfilesyntaxOK

如果monit提示任何错误,请再检查下配置文件。幸运的是,错误/警告信息是可以帮助你发现问题的,比如:

monit:CannotstattheSSLserverPEMfile'/var/certs/monit.pem'--Nosuchfileordirectory/etc/monit/monitrc:10:Warning:hostnamedidnotresolve'smtp.monit.ro'

一旦你确认配置文件没问题了,可以启动monit守护进程,然后等2到3分钟:

#servicemonitstart

如果你使用的是systemd,运行:

#systemctlstartmonit

现在打开一个浏览器窗口,然后访问https://:1966。将替换成Monit所在机器的机器名或者IP地址。

如果你使用的是自签名的SSL证书,你会在浏览器中看到一个警告信息。继续访问即可。

怎么使用Monit部署服务器监控系统

你完成登录后,就会看到这个页面。

怎么使用Monit部署服务器监控系统

在这个教程的其余部分,我们演示监控一个本地服务器和常见服务的方法。你会在官方wiki页面看到很多有用的例子。其中的多数是可以直接复制粘贴的!

Service Configuration: CPU/Memory Monitoring (服务配置:CPU、内存监控)

我们先来监控本地服务器的CPU、内存占用。复制如下代码段到配置文件中。

checksystemlocalhostifloadavg(1min)>10thenalertifloadavg(5min)>6thenalertifmemoryusage>75%thenalertifcpuusage(user)>70%thenalertifcpuusage(system)>60%thenalertifcpuusage(wait)>75%thenalert

你可以很容易理解上边的配置。最上边的check是指每个监控周期(全局配置里设置的120秒)都对本机进行下面的操作。如果满足了任何条件,monit守护进程就会使用邮件发送一条报警。

如果某个监控项不需要每个周期都检查,可以使用如下格式,它会每240秒检查一次平均负载。

ifloadavg(1min)>10for2cyclesthenalert

Service Configuration: SSH Service Monitoring (服务配置:SSH服务监控)

先检查我们的sshd是否安装在/usr/sbin/sshd:

checkfilesshd_binwithpath/usr/sbin/sshd

我们还想检查sshd的启动脚本是否存在:

checkfilesshd_initwithpath/etc/init.d/sshd

最后,我们还想检查sshd守护进程是否存活,并且在监听22端口:

checkprocesssshdwithpidfile/var/run/sshd.pidstartprogram"/etc/init.d/sshdstart"stopprogram"/etc/init.d/sshdstop"iffailedport22protocolsshthenrestartif5restartswithin5cyclesthentimeout

我们可以这样解释上述配置:我们检查是否存在名为sshd的进程,并且有一个保存其pid的文件存在(/var/run/sshd.pid)。如果任何一个不存在,我们就使用启动脚本重启sshd。我们检查是否有进程在监听22端口,并且使用的是SSH协议。如果没有,我们还是重启sshd。如果在最近的5个监控周期(5×120秒)至少重启5次了,sshd就被认为是不能用的,我们就不再检查了。

怎么使用Monit部署服务器监控系统

Service Configuration: SMTP Service Monitoring (服务配置:SMTP服务监控)

现在我们来设置一个检查远程SMTP服务器(如192.168.111.102)的监控。假定SMTP服务器运行着SMTP、IMAP、SSH服务。

checkhostMAILwithaddress192.168.111.102iffailedicmptypeechowithin10cyclesthenalertiffailedport25protocolsmtpthenalertelseifrecoveredthenexec"/scripts/mail-script"iffailedport22protocolsshthenalertiffailedport143protocolimapthenalert

我们检查远程主机是否响应ICMP协议。如果我们在10个周期内没有收到ICMP回应,就发送一条报警。如果监测到25端口上的SMTP协议是异常的,就发送一条报警。如果在一次监测失败后又监测成功了,就运行一个脚本(/scripts/mail-script)。如果检查22端口上的SSH或者143端口上的IMAP协议不正常,同样发送报警。

至此关于使用Monit部署服务器监控系统的教程就暂时分享到此,这只是Monit功能的冰山一角。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么使用Monit部署服务器监控系统的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:C++中的引用类型是什么下一篇:

10 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18