怎么监控服务器上的应用有没有挂掉
怎么监控服务器上的应用有没有挂掉?
-
写一个自动化脚本来实现定时触发,从而检查服务器的功能和性能是否正常;
在jar目录下创建脚本:sys.shwhile : do run=$(ps -ef |grep "Kenner-service-sys-1.0-SNAPSHOT-exec.jar" |grep -v "grep") if [ "$run" ] ; then echo "The service is alive!" else echo "The service was shutdown!" echo "Starting service ..." nohup java -jar Kenner-service-sys-1.0-SNAPSHOT-exec.jar & echo "The service was started!" fi echo "每10秒钟监听一次" sleep 10 done
启动脚本并打印日志sysLog.txt
nohup ./sys.sh > sysLog.txt &
-
如果是单体项目集群,就看集群监控的那台服务器能不能用(或能否正常处理请求);
-
如果是微服务的服务器集群,那就从注册中心看服务节点是否挂了。
Netty心跳服务器
实时监控多台机器的ping值是否正常,当然你也可以通过定时请求http接口来判断是否应用正常,熟知http接口的请求耗费资源,使用ping方式消耗网路开销非常的小,响应快。
如何实时主动监控你的网站接口是否挂掉并及时报警?
其实,国内的一些服务商已经提供了这些功能,即主动型服务监控,比如「监控宝」,但我并不想用这些服务,一是需要额外花钱,二是数据上并不安全,三是我需要把我的服务集成到公司内部的监控体系下。
如何搭建一套健全的监控系统体系?
基于 Kubernetes + Prometheus + Grafana + Alert Manager(可选) + Influxdb(可选)
-
Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,可以利用 Kubernetes 的 Cronjob 定时重启。
-
Prometheus是一个开源的系统监控和报警系统,在kubernetes容器管理系统中,通常会搭配prometheus进行监控。Prometheus监控平台主要是提供了数据采集和存储功能。如果要根据事件触发告警则需要依赖Alertmanager组件来完成。
-
AlertManager主要负责对Prometheus产生的告警进行统一处理。
-
Grafana可视化工具,由于Prometheus的图表功能相对较弱,于是就用第三工具Grafana用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。
-
Influxdb数据库,使用influxdb作为prometheus持久化存储。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步