问题描述
您使用什么工具来监控Ubuntu Web服务器?更具体地说,我想监控服务器的正常运行时间,资源使用情况(RAM,CPU,带宽等),Apache,MySQL和PHP。
最佳解决办法
Nagios是我最喜欢的监控工具。它可以监控Web服务器,服务,主机等。它是高度可定制的,有很多插件可用于各种目的。
nagios的一些功能:
-
监控网络服务(SMTP,POP3,HTTP,NNTP,PING等)
-
监控主机资源(处理器负载,磁盘使用情况等)
-
允许简单的插件设计
-
进行并行服务检查
-
使用定义网络主机层次结构
-
发生服务或主机问题时联系管理员
-
定义要在服务或主机事件期间运行的事件处理程序,以便主动解决问题
-
自动日志文件轮换
-
支持冗余监控主机的实施
-
提供可选的Web界面,用于查看当前网络状态,通知和问题历史记录,日志文件等
这是一个在线演示:http://nagioscore.demos.nagios.com/
次佳解决办法
munin
及其插件是您所需要的。
它会检查资源(就像其他人一样),但与它们不同,它完全是non-interactive。它每次更新时都会写出一批HTML文件和图形。您可以自动将这些邮件压缩并通过电子邮件发送给您(脚本必须是您的工作,但这很简单),或者您可以通过Apache等人将它们提供(只需将虚拟主机的根绑定到/var/www/munin/
)。
与其他(交互式)途径相比的巨大优势是它不是安全风险。运行Webmin(作为一个示例)意味着有一个人们可以与之通信的进程。这是你系统的攻击媒介。并且作为一个相当受欢迎的应用程序意味着它是script-hack服务器的人们的目标。
它可能有点”tinfoil hat”但是当你只有几个向量来覆盖时,安全性确实更容易使用。
第三种解决办法
对于实时视图,我将使用ssh登录,然后运行htop
(对于cpu,mem)和nload
进行网络加载。
第四种办法
这取决于需求。但这是我的监控堆栈
-
Nagios:我使用nagios作为集中监控系统来检查每台服务器的运行状况。如果出现问题,它会提醒我。例如,我为某些情况设置了警报,例如我对API的响应时间是否超出阈值。
-
Monit:如果事情变得完全疯狂,monit会照顾它。假设我的堆栈中的任何组件都出现故障。它会提醒我并为我提供帮助。
-
Logstash:我的日志中记录了任何可疑活动,它让我知道。
-
SeaLion:现在以上所有内容让我知道我的堆栈是否存在问题。但是导致问题的原因是我使用SeaLion进行调试。之前我用来记录系统分析工具的输出,如
sar
,top
,uptime
,iostat
,vmstat
,netstat
等文件。但管理这些巨大的日志对我来说变得不可能了。 SeaLion执行所有这些命令并以漂亮的时间轴格式显示它。还要提到的是,安装非常容易和简单。
第五种办法
如果您需要快速简单的信息,ubuntu有一个名为landscape-sysinfo
的工具
这将打印输出:系统负载,hard-disk使用情况,内存使用情况,进程数和您的IP地址
只需进入您的控制台:
landscape-info
第六种办法
如果你需要可扩展的东西(换句话说,你可能最终监控多个web服务器,dns服务器等),那么我推荐Cacti。
它有steeper-than-most学习曲线,但我过去用它来从各种来源每分钟收集800多个统计数据。收集过程,因为它的线程,在大约40秒内完成。
它使用RRDtool来绘制源图。它是基于Web的,它位于存储库中。
第七种办法
我喜欢使用大多数人可能会使用的名为Webmin的软件包
它是一个基于Web的程序,允许您监视几乎任何服务器统计信息,它允许您更改电源选项(如关机,重启)。您可以添加用户,启动/停止服务以及您需要为服务器执行的任何操作。我建议你试一试!
Here是一个很好的安装教程
它说Jaunty,但应该适用于任何版本的Ubuntu 🙂
然而,Webmin被认为是非常不安全的。