Linux部署ThinkPHP监控告警法

云静姑娘_5312

云静姑娘_5312

2026-09-07

922人浏览

原创

真正有效的thinkphp监控需同时验证进程、端口、业务三层状态:用supervisor守护进程,systemd管理服务依赖,shell脚本三合一检测防误报,并通过prometheus暴露指标实现根因分析。

linux部署thinkphp监控告警法

Linux部署ThinkPHP后,光靠启动命令(如 php think run)远远不够——进程可能静默退出、内存溢出、被OOM killer干掉,或因依赖服务中断而卡死。真正有效的监控告警,必须同时确认“进程在不在”“端口通不通”“业务是否真可用”,三者缺一不可。

用Supervisor守活进程,自动拉起不掉线

Supervisor是专为常驻进程设计的守护工具,适合ThinkPHP这类长期运行的服务。它不只看进程是否存在,还能在崩溃后秒级重启,并提供统一状态接口。

  • 安装后创建配置文件 /etc/supervisor/conf.d/thinkphp.conf,关键项包括:
    command=/usr/bin/php /var/www/myapp/think run(务必写绝对路径)
    autorestart=unexpected(仅非正常退出才重启)
    startretries=3(避免反复失败循环)
    stdout_logfile=/var/log/thinkphp.out.log(日志必须落盘)
  • 启用后执行 supervisorctl update && supervisorctl start thinkphp
  • 日常检查用 supervisorctl status thinkphp:显示 RUNNING 才算真正存活;若为 STARTING 或 FATAL,直接查 stdout_logfile 定位启动失败原因

用systemd做系统级服务,状态可追溯可依赖

相比Supervisor,systemd更贴近系统内核,支持开机自启、依赖管理(比如等MySQL就绪后再启ThinkPHP),且状态查询更精准。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 新建服务文件 /etc/systemd/system/thinkphp.service,重点配置:
    Type=simple(主进程即think run)
    User=www-data(避免root权限过大)
    Restart=on-failure(不盲目always,防止配置错误无限重启)
    RestartSec=10(留出资源释放时间)
  • 启用服务:systemctl daemon-reload && systemctl enable --now thinkphp
  • 验证状态:systemctl is-active thinkphp 返回 active 即进程运行中;systemctl status thinkphp 可看到PID、最近日志和启动耗时,比ps更可靠

写轻量Shell脚本,三合一验证+防误报

仅靠进程存在性检测极易误判(比如master进程还在但worker全挂了)。真实可用的脚本必须组合检查:

  • 进程层:用 pgrep -f "php.*think run"(-f匹配完整命令行,避开grep自身进程)
  • 端口层:用 ss -tln | grep ":80\b"(\b确保只匹配80端口,不误判8080)
  • 业务层:用 curl -s --connect-timeout 3 -m 5 http://127.0.0.1/health | grep -q "ok"(健康检查接口需ThinkPHP自己提供,返回JSON{"status":"ok"})
  • 三者任一失败即触发告警,但需加冷却机制:用 /tmp/thinkphp_alert_ts 记录上次告警时间,15分钟内不再重复发

集成到Prometheus,把告警变成可分析的数据

如果已有Prometheus生态,建议让ThinkPHP主动暴露指标,而非被动轮询。这样既能监控进程状态,也能关联请求错误率、响应延迟等业务指标。

  • 在ThinkPHP中引入 prometheus/client_php 包,于入口或中间件中注册指标:
    $counter = $registry->getOrRegisterCounter('thinkphp_process_up', 'Process alive status');
    在定时任务里每30秒调用一次 $counter->set(1)(存活)或 $counter->set(0)(异常)
  • Prometheus配置抓取该指标,Alertmanager中设规则:
    expr: thinkphp_process_up == 0 for: 1m(连续1分钟为0即告警)
  • 优势:告警可与CPU、内存、HTTP错误率等指标联动分析,定位根因更快

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php thinkphp linux linux部署

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

10944

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

6381

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

2155

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

4028

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4754

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3731

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

5337

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

4182

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

12102

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习