如何使用Monit部署服务器监控系统
Monit是什么?
Monit是
一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只
有500KB大小),并且不依赖任何第三方程序、插件或者库。然而,Monit可以胜任全面监控、进程状态监控、文件系统变动监控、邮件通知和对核心服务
的自定义动作等场景。易于安装、轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具。
我
已经在一些机器使用Monit几年了,而且我对它的可靠性非常满意。甚至作为全面的监控系统,对任何Linux系统管理员来说Monit也是非常有用和强
大的。在这篇教程中,我会展示如何在一个本地服务器部署Monit(作为后备监控系统)来监控常见的服务。在部署过程中,我只会展示我们用到的部分。
在Linux安装Monit
Monit已经被包含在多数Linux发行版的软件仓库中了。
Debian、Ubuntu或者Linux Mint:
$ sudo aptitude install monit
Fedora或者CentOS/RHEL:
在CentOS/RHEL中,你必须首先启用EPEL或者Repoforge软件仓库
# yum install monit
Monit
自带一个文档完善的配置文件,其中包含了很多例子。主配置文件在/etc/monitconf(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、myhostmydomainro和在局域网内部(19216800/16)访问。
Monit使用pem格式的SSL证书。
之后的步骤,我会使用一个基于Red Hat的系统。在基于Debian的系统中的步骤也是类似的。
首先,在/var/cert生成一个自签名的证书(monitpem):
# mkdir /var/certs # cd /etc/pki/tls/certs # /make-dummy-cert monitpem # cp monitpem /var/certs # chmod 0400 /var/certs/monitpem
现在将下列代码片段放到Monit的主配置文件中。你可以创建一个空配置文件,或者基于自带的配置文件修改。
set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monitpem allow monituser:romania allow localhost allow 19216800/16 allow myhostmydomainro
Global Configuration: Email Notification (全局配置:邮件通知)
然后,我们来设置Monit的邮件通知。我们至少需要一个可用的SMTP服务器来让Monit发送邮件。这样就可以(按照你的实际情况修改):
邮件服务器的机器名:smtpmonitro
Monit使用的发件人:monit@monitro
邮件的收件人:guletz@monitro
邮件服务器使用的SMTP端口:587(默认是25)
有了以上信息,邮件通知就可以这样配置:
set mailserver smtpmonitro port 587 set mail-format { from: monit@monitro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION Yours sincerely, Monit } set alert guletz@monitro
就像你看到的,Monit会提供几个内部变量($DATE、$EVENT、$HOST等),你可以按照你的需求自定义邮件内容。如果你想要从Monit所在机器发送邮件,就需要一个已经安装的与sendmail兼容的程序(如postfix或者ssmtp)。
Global Configuration: Monit Daemon (全局配置:Monit守护进程)
接下来就该配置Monit守护进程了。可以将其设置成这样:
在120秒后进行第一次检测。
每3分钟检测一次服务。
使用syslog来记录日志。
如下代码段可以满足上述需求。
set daemon 120 with start delay 240 set logfile syslog facility log_daemon
我们必须定义“idfile”,Monit守护进程的一个独一无二的ID文件;以及“eventqueue”,当monit的邮件因为SMTP或者网络故障发不出去,邮件会暂存在这里;以及确保/var/monit路径是存在的。然后使用下边的配置就可以了。
set idfile /var/monit/id set eventqueue basedir /var/monit
测试全局配置
现在“Global”部分就完成了。Monit配置文件看起来像这样:
# Global Section # status webpage and acl's set httpd port 1966 and SSL ENABLE PEMFILE /var/certs/monitpem allow monituser:romania allow localhost allow 19216800/16 allow myhostmydomainro # mail-server set mailserver smtpmonitro port 587 # email-format set mail-format { from: monit@monitro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION Yours sincerely, Monit } set alert guletz@monitro # delay checks set daemon 120 with start delay 240 set logfile syslog facility log_daemon # idfile and mail queue path set idfile /var/monit/id set eventqueue basedir /var/monit
现在是时候验证我们的工作了,你可以通过运行如下命令来验证存在的配置文件(/etc/monitconf):
# monit -t Control file syntax OK
如果monit提示任何错误,请再检查下配置文件。幸运的是,错误/警告信息是可以帮助你发现问题的,比如:
monit: Cannot stat the SSL server PEM file '/var/certs/monitpem' -- No such file or directory /etc/monit/monitrc:10: Warning: hostname did not resolve 'smtpmonitro'
一旦你确认配置文件没问题了,可以启动monit守护进程,然后等2到3分钟:
# service monit start
如果你使用的是systemd,运行:
# systemctl start monit
现在打开一个浏览器窗口,然后访问https://<monit_host>:1966。将<monit_host>替换成Monit所在机器的机器名或者IP地址。
如果你使用的是自签名的SSL证书,你会在浏览器中看到一个警告信息。继续访问即可。
你完成登录后,就会看到这个页面。
在这个教程的其余部分,我们演示监控一个本地服务器和常见服务的方法。你会在官方wiki页面看到很多有用的例子。其中的多数是可以直接复制粘贴的!
Service Configuration: CPU/Memory Monitoring (服务配置:CPU、内存监控)
我们先来监控本地服务器的CPU、内存占用。复制如下代码段到配置文件中。
check system localhost if loadavg (1min) > 10 then alert if loadavg (5min) > 6 then alert if memory usage > 75% then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 60% then alert if cpu usage (wait) > 75% then alert
你可以很容易理解上边的配置。最上边的check是指每个监控周期(全局配置里设置的120秒)都对本机进行下面的操作。如果满足了任何条件,monit守护进程就会使用邮件发送一条报警。
如果某个监控项不需要每个周期都检查,可以使用如下格式,它会每240秒检查一次平均负载。
if loadavg (1min) > 10 for 2 cycles then alert
Service Configuration: SSH Service Monitoring (服务配置:SSH服务监控)
先检查我们的sshd是否安装在/usr/sbin/sshd:
check file sshd_bin with path /usr/sbin/sshd
我们还想检查sshd的启动脚本是否存在:
check file sshd_init with path /etc/initd/sshd
最后,我们还想检查sshd守护进程是否存活,并且在监听22端口:
check process sshd with pidfile /var/run/sshdpid start program "/etc/initd/sshd start" stop program "/etc/initd/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
我
们可以这样解释上述配置:我们检查是否存在名为sshd的进程,并且有一个保存其pid的文件存在(/var/run/sshdpid)。如果任何一个
不存在,我们就使用启动脚本重启sshd。我们检查是否有进程在监听22端口,并且使用的是SSH协议。如果没有,我们还是重启sshd。如果在最近的5
个监控周期(5x120秒)至少重启5次了,sshd就被认为是不能用的,我们就不再检查了。
Service Configuration: SMTP Service Monitoring (服务配置:SMTP服务监控)
现在我们来设置一个检查远程SMTP服务器(如192168111102)的监控。假定SMTP服务器运行着SMTP、IMAP、SSH服务。
check host MAIL with address 192168111102 if failed icmp type echo within 10 cycles then alert if failed port 25 protocol smtp then alert else if recovered then exec "/scripts/mail-script" if failed port 22 protocol ssh then alert if failed port 143 protocol imap then alert
我
们检查远程主机是否响应ICMP协议。如果我们在10个周期内没有收到ICMP回应,就发送一条报警。如果监测到25端口上的SMTP协议是异常的,就发
送一条报警。如果在一次监测失败后又监测成功了,就运行一个脚本(/scripts/mail-script)。如果检查22端口上的SSH或者143端
口上的IMAP协议不正常,同样发送报警。
[本主题是预发布文档,在以后的发布中可能需要更改。 空的主题以占位符形式包括在内。]
若要监视信任边界的不使用网关服务器的管理服务器之外的计算机,您需要安装和手动维护管理服务器和要监视的计算机上的证书。而不是使用网关服务器使用此配置时,附加的端口必须打开代理与管理服务器通信。所需的所有端口的列表,请参阅 System Center 2012--操作管理器的系统要求。过程概述请求代理,网关服务器,管理服务器链中的任何计算机的证书。这些证书导入到的目标计算机使用 MOMCertImportexe 工具。将分发到管理服务器 MicrosoftEnterpriseManagementGatewayApprovalToolexe。运行MicrosoftEnterpriseManagementGatewayApprovalToolexe 工具,以启动管理服务器与网关之间的通信安装网关服务器。准备安装在开始之前网关服务器的部署所需的证书。您需要有权访问证书颁发机构 (CA)。这可以是公用 CA (如 verisign),也可以使用 Microsoft 证书服务。此过程提供的步骤申请、 获得,并从 Microsoft 证书服务将证书导入。代理管理的计算机之间的网关服务器和网关服务器和管理服务器之间必须存在可靠的名称解析。此名称解析通常通过 DNS。但是,如果不可能通过 DNS 中获得正确的名称解析,则可能需要手动在每台计算机的主机文件中创建条目。注释 Hosts 文件位于 \Windows\system32\drivers\ 目录中,并且包含有关如何配置的说明。
从Microsoft 证书服务获取计算机证书有关详细信息,请参阅Windows 计算机的身份验证和数据加密。分发MicrosoftEnterpriseManagementGatewayApprovalToolMicrosoftEnterpriseManagementGatewayApprovalToolexe 工具需要只有在管理服务器上,并只具有运行一次。要将MicrosoftEnterpriseManagementGatewayApprovalToolexe 复制到管理服务器从目标管理服务器,打开Operations Manager安装媒体 \SupportTools 目录。从安装介质中复制 MicrosoftEnterpriseManagementGatewayApprovalToolexe Operations Manager的安装目录。注册与管理组的网关此过程将注册的网关服务器的管理组中,并完成此操作后,网关服务器的管理组中已发现的库存视图中将显示。若要运行网关审核工具在管理服务器上所针对在网关服务器安装过程中,在使用登录Operations Manager管理员帐户。打开命令提示窗口,然后定位到Operations Manager安装目录或复制到 MicrosoftEnterpriseManagementgatewayApprovalToolexe 目录。在命令提示符下,运行MicrosoftEnterpriseManagementgatewayApprovalToolexe /ManagementServerName=<managementserverFQDN> /GatewayName=<GatewayFQDN> /Action=Create如果审核成功,您将看到 The approval of server <GatewayFQDN> completed successfully如果您需要从管理组删除的网关服务器,运行相同的命令,但替换/Action=Delete标志的 /Action=Create标志。打开[监控] 视图操作控制台。选择发现清单视图,网关服务器存在。 安装网关服务器该过程安装网关服务器。将网关服务器是服务器应与将向其报告代理管理的计算机位于同一域的成员。提示 (例如,双击 MOMGatewaymsi 安装网关服务器) 启动 Windows 安装程序时,安装将会失败如果本地安全策略的用户帐户控制:所有管理员批准模式中的管理员已都启用运行。
若要从命令提示符窗口运行操作管理器网关 Windows 安装程序在Windows 桌面上,请单击开始,指向 程序,指向 附件,用鼠标右键单击 命令提示符处,然后单击 以管理员身份运行。 在管理员:命令提示符处 窗口中,定位到本地驱动器,承载 Operations Manager的安装媒体。 定位到msi 文件所在的目录键入msi 文件的名称,然后按 enter 键。若要安装网关服务器登录到具有管理员权限的网关服务器上。从Operations Manager开始安装媒体中, Setupexe。在安装 区域中,单击 网关管理服务器链接。在欢迎 屏幕中,单击 下。在目标文件夹 页面,接受默认值,或单击 更改 以选择一个不同的安装目录,然后单击 下。在管理组配置 页上,键入目标管理组的名称中 管理组名称 字段中,键入中的目标管理服务器名称 管理服务器 字段中,检查 管理服务器端口 字段是 5723,然后单击 下一步。如果您已启用另一个端口的管理在操作控制台中的服务器通信,则可以更改此端口。在网关操作帐户 页面上,选择 本地系统帐户选项,除非您专门创建基于域或本地计算机基于的网关操作帐户。单击“下一步”。在Microsoft 更新 页面上,还可以指示您是否要使用 Microsoft 更新,然后单击 下。在“已准备好安装”页上,单击“安装”。在正在完成 页面上,单击 完成。若要使用命令提示符窗口来安装网关服务器登录到具有管理员权限的网关服务器上。使用“以管理员身份运行”选项打开命令提示符窗口。运行以下命令,其中 path\Directory Momgatewaymsi,位置和 path\Logs 是想要保存日志文件的位置。可以在中找到 Momgatewaymsi Operations Manager的安装媒体。 %WinDir%\System32\msiexecexe /i path\Directory\MOMGatewaymsi /qn /lv path\Logs\GatewayInstalllog ADDLOCAL=MOMGateway MANAGEMENT_GROUP="<ManagementGroupName>" IS_ROOT_HEALTH_SERVER=0 ROOT_MANAGEMENT_SERVER_AD=<ParentMSFQDN> ROOT_MANAGEMENT_SERVER_DNS=<ParentMSFQDN> ACTIONS_USE_COMPUTER_ACCOUNT=0 ACTIONSDOMAIN=<DomainName> ACTIONSUSER=<ActionAccountName> ACTIONSPASSWORD=<Password> ROOT_MANAGEMENT_SERVER_PORT=5723 [INSTALLDIR=<path\Directory>] 使用MOMCertImportexe 工具导入证书执行此操作,每个网关服务器,管理服务器和将代理管理,即不受信任的域中的计算机上。若要通过使用 MOMCertImportexe 导入计算机证书将MOMCertImportexe 工具复制从安装媒体 \SupportTools\<平台>(x86 或 ia64) 目录根或到目标服务器的Operations Manager如果目标服务器是管理服务器安装目录。作为管理员,打开命令提示符窗口,并将目录更改为 MOMCertImportexe 所在的目录,然后运行 momcertimportexe /SubjectName <certificate subject name>这会使证书可用的 Operations Manager为管理服务器之间的故障转移配置网关服务器虽然网关服务器可以使用管理组中的任何管理服务器通信,必须配置此。在这种情况下,辅助管理服务器标识为网关服务器故障切换的目标。使用集中-开始管理服务器-gatewayManagementServer 命令中的 Operations Manager 外壳,如配置网关服务器故障转移到多个管理服务器在下面的示例所示。可以从任何管理组中的命令外壳程序运行这些命令。若要配置管理服务器之间的网关服务器故障切换登录到管理服务器是管理组的管理员角色的成员的帐户上。在Windows 桌面上,请单击开始,指向 程序,指向 系统中心运营经理,然后单击 命令行解释器。在命令外壳程序,请按照下一节中介绍的示例。描述下面的示例可用于配置网关的服务器故障切换到多台管理服务器。代码 $GatewayServer = Get-SCOMGatewayManagementServer –Name “ComputerNameContosocom” $FailoverServer = Get-SCOMManagementServer –Name “ManagementServerContosocom”,”ManagementServer2Contosocom” Set-SCOMParentManagementServer -GatewayServer $GatewayServer -FailoverServer $FailoverServer 注释机器翻译免责声明:本文由计算机系统在未经人为干预的情况下翻译。Microsoft 提供机器翻译来帮助非英语用户阅读有关 Microsoft 产品、服务和技术的内容。由于本文为机器翻译,因此可能包含词汇、句法或语法方面的错误。
另请参阅其他资源部署网关服务器
1、打开windows server 2008管理工具。
2、在弹出的RemoteApp管理器右边,点击“添加RemoteApp程序”
3、在弹出的RemoteApp向导继续下一步
4、在下一步之后弹出选择程序列表,假如我们需要添加的程序没有在程序列表中,我们可以点击“浏览”,找到自己要添加的程序
5、选择添加IE浏览器为例,选中IE浏览器程序,点击打开,然后继续下一步
6、完成添加程序之后,选中刚添加的程序,右键,选择创建rdp文件。
7、在这里注意服务远程端口是否有做修改,默认是3389,如果把远程端口改为13389,那这里你也要把端口改为13389,点击下一步。
8、完成之后会自动打开刚创建rdp文件的保存位置
9、把这个文件复制到客户端电脑运行即可,运行起来就像程序运行在本地电脑一样,这个技术非常适合客户端配置比较差但是又要运行ERP的公司,因为程序本身是位于服务器,不需要在客户端安装,运行速度只和服务器性能和局域网是否通畅有关。
0条评论