关于监视Web服务器是否已在Linux上运行的软件的任何技巧?它应该可以在不了解URL的情况下运行。并且它必须具有在网站出现故障时发送电子邮件警报的功能。为自己编写脚本应该不难,但是如果已经有了一些不错的东西,那似乎毫无意义。
请注意,我将监视内部服务器,因此该工具必须是在同一网络上的计算机上运行的工具,而不是基于外部Web的服务。
并请注意,小型和简单的解决方案是首选。
更新:我最终创建了一个我目前正在使用的小python脚本,可以在此处找到。
关于监视Web服务器是否已在Linux上运行的软件的任何技巧?它应该可以在不了解URL的情况下运行。并且它必须具有在网站出现故障时发送电子邮件警报的功能。为自己编写脚本应该不难,但是如果已经有了一些不错的东西,那似乎毫无意义。
请注意,我将监视内部服务器,因此该工具必须是在同一网络上的计算机上运行的工具,而不是基于外部Web的服务。
并请注意,小型和简单的解决方案是首选。
更新:我最终创建了一个我目前正在使用的小python脚本,可以在此处找到。
Answers:
您可以在像这样的脚本中使用wget
wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com
if [ $? -ne 0 ];then
echo "Site Down" | mail -s "Site Down" admin@yourdomain.com
fi
如果wget在三秒钟内第一次无法访问该站点,您将收到一封电子邮件。
设置一个cron作业,每隔几分钟运行一次脚本。
还有许多其他选择,但这可能是从头开始设置的最简单方法。
--no-check-certificate
呢?警告有关TLS部署已损坏的信息也是有价值的信息。
我赞成Richard和Janne的回答,但是如果您想进一步了解您的Web服务器发送和接收的内容,Clinton Wong撰写的O'Reilly著作“使用Perl进行Web客户端编程”的前几章对此进行了概述。 HTTP协议。如果您想要不仅仅是上/下更详细的监控,并且想要包括响应代码等,那么这是一个很好的起点。
这本书很旧,但仍然有效。O'Reilly出版于1997年,作为其OpenBook计划的一部分,已在http://oreilly.com/openbook/webclient/上免费在线发布了该书的内容。
如果您喜欢Nagios的功能,但又不想深入研究内部结构,则还可以查看Opsview。它是Nagios和其他几个工具,但通过一个不错的GUI交付。这是一个很好的起点。
我同意Nagios是一个很棒的软件,但是如果您想要一个免费软件,我建议您看一下AppPerfect Agentless Monitor。带有AppPerfect的Linux Server Monitoring非常轻巧,并且在监视时对目标系统的开销可忽略不计。您可以使用此工具监视与CPU,磁盘,网络和内存有关的所有重要统计信息。设置非常简单,软件也非常易于使用。此处还提供了用于Linux服务器监视的清晰文档和教程。
我一直在使用的一种解决方案是HashiCorp的领事。
当然,它不仅仅是一个带有电子邮件输出的简单脚本,但是设置您正在谈论的监视类型仍然非常容易(几行YAML或JSON)。
您很可能会创建一个模板,但是可以按以下步骤监视单个服务器:
{
"service": {
"name": "web",
"tags": ["production"],
"port": 80,
"check": {
"id": "front-end",
"name": "HTTP front-end for web service",
"http": "http://web.domain.tld",
"interval": "10s",
"timeout": "1s"
}
}
}
提出此建议的原因之一是,它确实使您不仅可以监控Web前端,而且还可以按服务对检查进行分组(例如,您的report_server
服务可以检查Web前端,一端,一个用于Web后端,一个用于主数据库,所有这些都将提供与此一项服务相关的警报。