怎样实时监控服务器运行状态?求助一点思路

2018-05-16 08:55:33 +08:00
 guoyu4126

php-fpm 在运行长时间后会突然出现假死情况,导致网站无法访问。还好客服反应快,能及时反馈到技术。 看了看日志 大概 2 个月左右会出现一次,问题一直没有排查出来。 也找不到原因

想到一种方案,在某个业务上写一些代码。 定时执行,如果返回非 200 直接发送短信到手机。。

不知道大 pro 们能不能提供一些思路, 如果能彻底解决问题更好了。

8851 次点击
所在节点    程序员
56 条回复
miyavis
2018-05-16 09:04:21 +08:00
心跳 检测?
wwqgtxx
2018-05-16 09:09:05 +08:00
不是有一些专门的监控网站比如监控宝之类的能隔多少分钟检测你的网站能否正常访问,一旦有问题就会给你发短信
owenliang
2018-05-16 09:10:48 +08:00
考虑升级一下版本先,按道理不存在那么严重的问题哈。
defunct9
2018-05-16 09:13:38 +08:00
直接 curl 发请求,1 分钟一次,如果掉了,拉起来。
tomczhen
2018-05-16 09:15:44 +08:00
php - fpm 配置参数了解一下。
Luckyray
2018-05-16 09:15:59 +08:00
直接写个脚本一分钟检测一次...
Quarter
2018-05-16 09:19:24 +08:00
服务器放一个定时任务,检测可不可以访问,不可以就重启服务?
alexsunxl
2018-05-16 09:20:51 +08:00
php-fpm 的子进程设置是不是太少了
你要别人帮忙, 要把配置也发出来呀
liwl
2018-05-16 09:21:20 +08:00
supervisord
wr410
2018-05-16 09:21:46 +08:00
免费的公网监测有 pingdom 可以了解一下

实际上监控不如自己写一个 crontab,挂了重启或者干脆直接定时重启就好了
d0m2o08
2018-05-16 09:22:14 +08:00
zabbix 有站点监控 或者 curl 获取状态码 非 200 调用钉钉机器人报警 加到 cron
nosay
2018-05-16 09:28:14 +08:00
楼上已经说了那么多了,我来个另类的思路。
每月定时重启一下 php-fpm,最好是整个服务器。
蹓了蹓了..
alen
2018-05-16 09:30:08 +08:00
monitorix 了解下
ucun
2018-05-16 09:38:45 +08:00
@defunct9 不用开 ssh 看看?
zhixiao
2018-05-16 09:39:52 +08:00
wwek
2018-05-16 09:41:19 +08:00
zhaojjxvi
2018-05-16 09:59:11 +08:00
Uptimerobot 可以做到宕了有提醒
defunct9
2018-05-16 10:01:02 +08:00
开 ssh,让我上去看看
guoyu4126
2018-05-16 10:16:45 +08:00
@defunct9 ...... 不可以有这等操作。
guoyu4126
2018-05-16 10:19:58 +08:00
@alexsunxl

;pm = dynamic
pm=ondemand

; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; CGI. The below defaults are based on a server without much resources. Don't
; forget to tweak pm.* to fit your needs.
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
; Note: This value is mandatory.
pm.max_children = 50

; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 10

; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5

; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 15

; The number of seconds after which an idle process will be killed.
; Note: Used only when pm is set to 'ondemand'
; Default Value: 10s
;pm.process_idle_timeout = 10s;

; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
;pm.max_requests = 500


这里自己配置的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/455160

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX