怎么监控服务器上的应用有没有挂掉

怎么监控服务器上的应用有没有挂掉?

  1. 写一个自动化脚本来实现定时触发,从而检查服务器的功能和性能是否正常;
    在jar目录下创建脚本:sys.sh

    while : 
    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 &
    
  2. 如果是单体项目集群,就看集群监控的那台服务器能不能用(或能否正常处理请求);

  3. 如果是微服务的服务器集群,那就从注册中心看服务节点是否挂了。

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持久化存储。

本文作者:盗梦笔记

本文链接:https://www.cnblogs.com/zhaojinhui/p/16799942.html

版权声明:本作品采用zhaojh许可协议进行许可。

posted @   盗梦笔记  阅读(459)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示