部署 大家用什么工具来监控服务器的运行

zealinux · 2013年06月06日 · 最后由 JohnLu 回复于 2013年06月07日 · 12833 次阅读

比如有多个服务器, http,redis,mysql-server,

是不是有什么统一的平台,可以自动监控运行情况。

刚才不小心查看到 android 的数据后台服务器崩了。也不知道崩了几个小时。

一身冷汗。

god, nagios, supervisor, monit...

#1 楼 @Magic

就它了 https://newrelic.com/

看到上次 Youtube 视频的介绍了 感觉真的不错 专门为 Rails 服务的

软件层面监控工具 一般用 god 监测制定进程 cpu 内存 运行状态 保证一直可用。 app 整体性能监控就来 newrelic 现在 newrelic 也出了手机的监控 里面有 android 的 sdk 直接继承进去就可以分析 app 使用情况了

用 newrelic 吧,也别想着自己去搭个 nagios 之类的东西,维护成本不低。 newrelic 提供了服务器 和 app 的监控,再往手机上装个 newrelic 的应用,基本上有问题都会很及时的通知到的,并且,免费版就能满足需求。

根据我自己的经验,我建议用 monit 而不是 god 来监控并管理服务进程。

God 是用 Ruby 实现的一套进程监控管理工具,但是自己在长期使用过程中,经常遇到 God 无法杀死并重启已经挂掉的进程,无法根据 PID 文件检测到进程已经失败,在重启某个挂掉的进程过程中 出现死循环甚至 God 自己会变成僵尸进程等等各种稀奇古怪的问题,改用 monit 后情况好多了,monit 的缺点是配置文件没有 God 方便,但是这个比较容易克服。

#6 楼 @lgn21st

无法杀死并重启已经挂掉的进程

进程自己 fork 成 daemon 了吧

http://supervisord.org/subprocess.html#pidproxy-program

#1 楼 @Magic 在 Ubuntu 上安装时出错: Adding new group newrelic' (GID 129) ... groupadd: cannot lock /etc/group; try again later. adduser:/usr/sbin/groupadd -g 129 newrelic' returned error code 10. Exiting. chown: invalid group: root:newrelic' chown: invalid user:newrelic:newrelic' Unknown id: newrelic

god 真是神一样的存在。

按照 resque 官方的配置示例,用 god 启动 resque 后,进程状态一直是 init。再执行一次 god 才变成 start 或者 up。纠缠好几天也没能深入研究下去,无解。

但是换到测试服务器,有时候是正常的。郁闷。

在 Mac 上用 development 环境有问题;测试服务器是 centos,跑 production。

#8 楼 @JohnLu 安装命令都加上 sudo

#10 楼 @Magic 搞定了,要删除/etc/group.lock 文件

需要 登录 后方可回复, 如果你还没有账号请 注册新账号