服务器巡检表-监控指标

1、巡检指标

  1. 系统资源
  2. K8S集群
  3. Nginx
  4. JAVA应用
  5. RabbitMQ
  6. Redis
  7. PostgreSQL
  8. Elasticsearch
  9. ELK日志系统

2、巡检项

检查项目

检查指标

检查标准

系统资源

CPU 使用率

正常:<70%
低风险:≥ 70%
中风险:≥ 85%
高风险:≥ 95%

内存使用率

正常:<70%
低风险:≥ 70%
中风险:≥ 85%
高风险:≥ 95%

磁盘使用率

正常:<80%
异常:≥ 80%

系统负载

正常:<70%
低风险:≥ 70%
中风险:≥ 85%
高风险:≥ 95%

日志文件是否有异常

正常:日志中风险无 ERROR报错
低风险:日志中风险少量ERROR报错且不影响业务
中风险:日志出现5%以上的ERROR报错且影响非核心业务
高风险:日志中风险出现10%以上的ERROR报错且已经影响核心业务或者集群状态

系统服务是否正常运行

正常:没有Failed和Down状态的服务
低风险:有Failed和Down状态的服务但不影响业务
中风险:有Failed和Down状态的服务且影响非核心业务
高风险:有Failed和Down状态的服务已经影响部分业务或者集群状态

检查系统是否有波峰波谷

正常:指标线没有明显的大波动
低风险:少数波峰波谷,一天2-5次且持续时间不长
中风险:频繁波峰波谷,一天≥5次且持续时间不长
高风险:一直处于波峰波谷,无法提供服务

K8S集群

节点状态

正常:节点状态为 Ready
低风险:出现1台状态为NotReady
中风险:出现2台状态为NotReady
高风险:大于2台状态为NotReady

Pod 状态

正常:所有 Pod 状态为 Running
低风险:Pod状态为Running但出现重启的情况
中风险:非核心业务Pod出现不可用状态
高风险:核心业务Pod不可用

持久卷状态

正常:所有持久卷状态均为 Bound
低风险:持久卷出现异常但不影响业务
中风险:持久卷出现异常且影响非核心业务
高风险:所有持久卷不可用且核心业务受影响

节点资源使用情况

正常:所有节点资源使用率均低风险于 70%
低风险:所有节点资源使用率大于70%且不影响业务
中风险:所有节点资源使用率大于80%且影响非核心业务
高风险:所有节点资源使用率大于95%且影响核心业务

节点间通信是否正常

正常:节点间通信延迟低风险于 50ms,无丢包
低风险:节点间通信延迟大于 50ms但不影响业务
中风险:节点间通信延迟大于 100ms出现丢包,且影响非核心业务
高风险:节点间通信延迟大于 150ms出现丢包,且影响核心业务

Nginx

端口监听

正常:监听端口包含nginx配置文件监听的端口
低风险:监听端口不包含且不影响业务
中风险:监听端口不包含且影响非核心业务
高风险:监听端口不包含且影响核心业务

访问正常

正常:响应状态码为 200
低风险:出现非200但不影响业务
中风险:出现非200影响非核心业务
高风险:出现非200且影响核心业务

日志记录

正常:日志中风险无 ERROR报错
低风险:日志中风险少量ERROR报错,不影响使用
中风险:日志出现2%的ERROR报错,影响非重要业务
高风险:日志中风险出现10%以上的ERROR报错且已经影响部分重要业务

连接数

正常:<1024
低风险:≥ 1024
中风险:≥ 2048
高风险:≥ 4096

JAVA应用

内存泄漏警报
  • 堆内存使用率超过阈值1且持续时间超过阈值2。

举例:堆内存使用率超过80%并且持续10分钟以上,则会触发该警报。具体配置可以根据服务器环境自定义。

GC 暂停时间警报
  • GC暂停时间超过阈值1并且持续阈值2

举例:GC暂停时间超过该阈值并且持续1分钟以上,则会触发该警报。具体配置可以根据服务器环境自定义。

程序运行状态

正常:服务正在运行
低风险:服务实例数<2但不影响业务
中风险:服务不可用数<2影响非核心业务
高风险:应用程序无法正常运行,核心服务不可用

检查Pod是否有波峰波谷

正常:指标线没有明显的大波动
低风险:少数波峰波谷,一天2-5次且持续时间不长
中风险:频繁波峰波谷,一天≥5次且持续时间不长
高风险:一直处于波峰波谷,无法征程提供服务

RabbitMQ

节点状态

正常:所有节点状态为 running
中风险:出现一个节点状态为down
高风险:所有节点状态为down

队列长度

正常:≤ 500
低风险:>500
中风险:>1000
高风险:> 2000

Redis

连接数

正常:<1024
低风险:≥ 1024
中风险:≥ 2048
高风险:≥ 4096

内存使用率

正常:<70%
低风险:≥ 70%
中风险:≥ 85%
高风险:≥ 95%

PostgreSQL

数据库连接数

正常:<1024
低风险:≥ 1024
中风险:≥ 2048
高风险:≥ 4096

磁盘空间使用率

正常:<80%
异常:≥ 80%

Elasticsearch

集群状态

正常:集群status为 green
低风险:集群status为 yellow
高风险:集群status 为 red,出现不可用状态

索引状态

正常:索引status为 open
高风险:索引status为 down

ELK日志系统

日志收集是否正常

正常:应用输出的日志是否与ELK收集的一致
低风险:日志出现不一致,收集不完全

索引状态

正常:索引status为 open
中风险:索引状态status为 down

3、巡检项目-重点配置

nginx

连接数

        Nginx默认情况下并没有限制连接数,它会根据系统的资源情况进行调整。然而,如果服务器的资源有限,或者遇到大量并发请求,可能会导致连接数过高,从而影响服务器的性能和稳定性。

        你可以通过参数worker_connections来调整Nginx的连接数,这个参数用于限制每个worker进程可以同时处理的连接数。默认值通常是1024,但可以根据服务器的实际情况进行调整。

        例如,如果你想将每个worker进程的连接数增加到2000,可以在Nginx配置文件中添加以下行:

worker_connections 2000;

注意:

        过大的连接数可能会导致资源过度消耗和性能下降,而过小的连接数可能会导致连接被拒绝或处理不足。根据您的服务器资源和需求进行适当的调整。

grafana监控

redis

设置Redis最大内存

为什么要设置最大内存?

        redis是一个内存数据库,它将所有数据存储在内存中,因此其内存使用量直接决定了性能和可靠性。如果Redis使用的内存超过了系统所能提供的内存大小,就会触发操作系统的内存换页机制,从而导致性能下降。

        为了避免这种情况的发生,我们需要在Redis中设置最大内存限制。当Redis的内存使用量接近最大内存限制时,Redis会触发内存淘汰机制,将一些不常访问的数据从内存中淘汰出去,以释放内存空间。

如何设置最大内存?

        Redis提供了一个配置项maxmemory用于设置最大内存限制。可以通过修改Redis的配置文件redis.conf来设置该项。

# 设置最大内存为1GB
maxmemory 1gb

上述配置设置了最大内存为1GB。除了使用gb表示G字节外,还可以使用mb表示M字节,kb表示K字节。也可以直接使用字节数,例如maxmemory 1073741824表示1GB。

java应用

prothums配置

内存泄漏警报

1、prom-jmx.yml

scrape_configs:- job_name: 'prometheus-jmx-scrape'jmx_url: 'service:jmx:rmi:///jndi/rmi://localhost:9010/jmxrmi'jmx_user: 'admin'jmx_password: 'password'static_configs:- targets: ['localhost']metrics_path: '/metrics'timeout: 30s

2、prom-alert-rules.yml

rule_files:- 'prom-alert-rules.yml'
alerting:alertmanagers:- static_configs:- targets: ['alertmanager@localhost:9093']

prom-alert-rules.yml文件中定义内存泄漏的警报规则:

groups:
- name: examplerules:- alert: MemoryLeakexpr: heap_used_percent > 80for: 10mlabels:severity: warningannotations:message: High heap memory usage ({[label]}%) detected. Leak suspected, action required.

        上述配置假设您的警报管理系统(如Alertmanager)在本地主机的9093端口上运行,并且您有一个运行在本地主机的Prometheus实例。警报规则定义了一个内存泄漏警报,如果堆内存使用率超过80%并且持续10分钟以上,则会触发该警报。

        请注意,这只是一个示例配置,您需要根据您的实际环境和需求进行适当的修改。

GC 暂停时间警报

1、prom-jmx.yml

scrape_configs:- job_name: 'prometheus-jmx-scrape'jmx_url: 'service:jmx:rmi:///jndi/rmi://localhost:9010/jmxrmi'jmx_user: 'admin'jmx_password: 'password'static_configs:- targets: ['localhost']metrics_path: '/metrics'timeout: 30s

2、prom-alert-rules.yml

rule_files:- 'prom-alert-rules.yml'
alerting:alertmanagers:- static_configs:- targets: ['alertmanager@localhost:9093']

prom-alert-rules.yml文件中定义GC暂停时间超过某个阈值的警报规则:

groups:
- name: examplerules:- alert: GCPauseWarningexpr: jvm_gc_pause_seconds{type=" CMS"} > 10 or jvm_gc_pause_seconds{type=" G1"} > 10for: 1mlabels:severity: warningannotations:message: GC Pause Warning (instance{{$labels.instance}})summary: GC Pause time exceeded 10 seconds in the last minute. Leak suspected, action required.

        上述配置假设您的警报管理系统(如Alertmanager)在本地主机的9093端口上运行,并且您有一个运行在本地主机的Prometheus实例。警报规则定义了一个GC暂停时间超过10秒的警报,无论使用的是CMS还是G1垃圾回收器。如果暂停时间超过该阈值并且持续1分钟以上,则会触发该警报。

        请注意,这只是一个示例配置,您需要根据您的实际环境和需求进行适当的修改。

grafana监控-jvm监控

JVM Statistics-Heaps 

  • G1 Eden Space (heap):新生代Eden 区堆内存使用情况,能够直观反应应用new 对象内存分配情况

    • Used:jvm.memory.max JVM最大内存

    • committed:jvm.memory.committed JVM可用内存 是 展示并监控堆内存和Metaspace 重要

    • used:jvm.memory.used JVM已用内存

  • G1 Old Gen (heap):老年代代堆内存使用情况,能够直观反应应用大对象、长生命周期对象内存分配情况

    • Used:jvm.memory.max JVM最大内存

    • committed:jvm.memory.committed JVM可用内存 是 展示并监控堆内存和Metaspace 重要

    • used:jvm.memory.used JVM已用内存

  • G1 Survivor Space (heap):新生代Survivor 区堆内存使用情况,对象年代提升情况,通过对该区的内存使用监控,可以防止应用出现“过早提升”问题

    • Used:jvm.memory.max JVM最大内存

    • committed:jvm.memory.committed JVM可用内存 是 展示并监控堆内存和Metaspace 重要

    • used:jvm.memory.used JVM已用内存

  • Code Cache (non-heap):JVM生成的native code存放的内存空间称之为Code Cache;JIT编译、JNI等都会编译代码到native code,其中JIT生成的native code占用了Code Cache的绝大部分空间

  • Compressed Class Space (non-heap): 类指针压缩空间(Compressed Class Pointer Space)内存分配。

  • Metaspace (non-heap):监控展示了Java元数据内存分配情况。元空间,Java8移除了持久空间,引入元空间内存模型

 JVM Statistics Threads/Buffers 

  • Threads:线程数量

  • Memory Allocate/Promote:GC时,年轻代分配的内存空间/GC时,老年代分配的内存空间监控

  • Classes :classes加载情况监控

    • Classes Unloaded:未加载的classes数

    • Classes Loaded:已加载的classes数
  • Direct Buffers: JVM缓冲区已用内存监控
  • Mapped Buffers: 内存映射区内存分配,可忽略

 JVM Statistics GC

JVM内存 垃圾回收统计分析,对jvm进行gc的时间、数量、jvm停顿时间的监控

  • GC Count:GC次数统计。
  • GC Stop the World Duration:GC全局停顿时间统计。

JVM常见的GC包括三种:Minor GC,Major GC与Full GC

  • 新生代收集(Minor GC/Young GC):只是新生代的垃圾收集
  • 老年代收集(Major GC/Old GC):只是老年代的垃圾收集
  • 整堆收集(Full GC):收集整个Java堆和方法区的垃圾收集

参考文章:

使用管理规则 (Sun GlassFish Enterprise Manager Performance Advisor 1.0 安装与快速入门指南)

https://www.toutiao.com/article/7273039473196368403/?app=news_article&timestamp=1693872382&use_new_style=1&req_id=20230905080622B7416A0C5BBBDC44F69A&group_id=7273039473196368403&wxshare_count=1&tt_from=weixin&utm_source=weixin&utm_medium=toutiao_android&utm_campaign=client_share&share_token=da41c642-f2d0-4f11-8833-3c0515f6e96d&source=m_redirect

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/77022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片怎么压缩大小?这样压缩图片很简单

在日常生活中,我们常常需要处理各种各样的图片文件,但有时候图片的大小可能会成为问题。比如在上传图片到网站或者将图片发送给朋友时,过大的图片可能会导致上传速度变慢或者占用过多内存。这时,我们就需要用到图片压缩了&#xf…

大数据课程L9——网站流量项目的实时业务处理代码

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握网站流量项目的SparkStreaming代码; ⚪ 掌握网站流量项目的HBaseUtil代码; ⚪ 掌握网站流量项目的MysqlUtil代码; ⚪ 掌握网站流量项目的LogBean代码; ⚪ 掌握网站流量项目的To…

Servlet基础

Servlet基础 一. 单选题(共5题,50分)二. 判断题(共5题,50分) 一. 单选题(共5题,50分) (单选题) 下面选项中, 哪个方法用于返回映射到某个资源文件的URL对象(&…

【Python】爬虫基础

爬虫是一种模拟浏览器实现,用以抓取网站信息的程序或者脚本。常见的爬虫有三大类: 通用式爬虫:通用式爬虫用以爬取一整个网页的信息。 聚焦式爬虫:聚焦式爬虫可以在通用式爬虫爬取到的一整个网页的信息基础上只选取一部分所需的…

使用生成式 AI 增强亚马逊云科技智能文档处理

数据分类、提取和分析对于处理大量文档的组织来说可能具有挑战性。传统的文档处理解决方案是手动的、昂贵的、容易出错的,并且难以扩展。利用 Amazon Textract 等 AI 服务,亚马逊云科技智能文档处理(IDP)允许您利用业界领先的机器学习(ML)技术来快速准确地处理任何扫描文档或图…

Blender之锁定摄像机到视图方位

文章目录 当你在blender 中时,想要让你的摄像机跟随你的视图方位,以方便你的后期的制作,那应该怎么半? 先点击摄像机的图标,进入摄像机视图 然后按一下键盘的N 键,进入编辑模式,选择视图 最后…

【业务功能107】微服务-springcloud-springboot-Sentinel容器安装-熔断降级限流

Sentinel 在微服务架构下,会涉及到 微服务A需要远程调用其他的微服务B,C,D等的接口,比如商品服务接口,需要调用库存服务数据,秒杀服务数据等,这里就会衍生一个长链路的调用过程,那么一旦下游需要被调用的数…

800V威迈斯车载充电机

800V威迈斯车载充电机VMAX二合一车载充电系统高压平台,将传统的6.6KW双向OBC、2.5KW DC\DC进行系统级的高功率密度集成;采用磁集成技术方案,创新性地将产品的原边绕组,高压绕组及低压Busbar进行系统级的集成;OBC功能转…

力扣(LeetCode)算法_C++——稀疏矩阵的乘法

给定两个 稀疏矩阵 :大小为 m x k 的稀疏矩阵 mat1 和大小为 k x n 的稀疏矩阵 mat2 ,返回 mat1 x mat2 的结果。你可以假设乘法总是可能的。 示例 1: 输入:mat1 [[1,0,0],[-1,0,3]], mat2 [[7,0,0],[0,0,0],[0,0,1]] 输出&am…

获取包名下的所有接口

1 通过包名获取下面所有的类名集合 2 通过类名集合反射获得类对象 -->可以选择拿到标记自定义注解的接口 .filter(clazz -> clazz.getAnnotation(TrpcApi.class) ! null) -->也可以不标记拿到全部接口 3 通过类对象拿到所有的接口 /*** 实现包扫描,通…

【STL】模拟实现map和set {带头结点的红黑树;红黑树的核心结构;红黑树的迭代器;红黑树的插入和查找;map和set的封装}

模拟实现map和set map和set是红黑树的两种不同封装形式,底层使用同一颗泛型结构的红黑树。set是红黑树的K模型;map是红黑树的KV模型。 下面的代码和讲解着重体现红黑树的底层实现和map\set上层封装的衔接。关于二叉搜索树性质,map和set的介…

UMA 2 - Unity Multipurpose Avatar☀️四.UMA人物部位的默认颜色和自定义(共享)颜色

文章目录 🟥 人物颜色介绍1️⃣ 使用默认颜色2️⃣ 使用自定义颜色🟧 UMA自定义颜色的作用🟨 自定义颜色还可作为共享颜色🟥 人物颜色介绍 UMA不同部位的颜色分为默认的内置颜色和我们新定义的颜色. 1️⃣ 使用默认颜色 比如不勾选UseSharedColor时,使用的眼睛的默认…

【搭建本地yum仓库源】

一、环境准备 1.准备两台虚拟机,一台为服务端(安装yum源),一台为客户端(测试yum源安装结果) IP地址主机角色备注192.168.200.21服务端上传镜像到此台机器192.168.200.18客户端 2.准备镜像文件&#xff0…

品牌策划经理工作内容|工作职责|品牌策划经理做什么?

一位美国作家曾说过“品牌是一系列期望、记忆、故事和关系,他们共同构成了消费者最终原则一个产品或者服务的原因。” 所以,品牌经理这个岗位主要是创造感知价值主张,激发消费者购买这个品牌后带来的感知价值,这种回报的本质相对…

Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】

文章目录 一、Git简介二、Git的下载安装三、Git常规命令四、新建本地仓库五、本地分支操作六、Git远程仓库七、远程仓库克隆、抓取和拉取八、总结九、学习交流 一、Git简介 Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS&…

使用rpm重新安装包

#查询 rpm -qa | grep cloudstack #卸载 rpm -e cloudstack-agent-4.18.0.0-1.x86_64 #安装 rpm -ivh cloudstack-agent-4.18.0.0-1.x86_64.rpm

linux 文件系统命令

文件系统命令 磁盘空间使用 linux 可以对组进行配额限制 1、vi /etc/fstab 文件 将要设置配额的分区设置开机自动挂载在添加行在 defaults 后面加上,usrquota(grpquota)表示要建立用户或组的磁盘配额 2、重新挂载文件系统 之前重启看效果&…

uniapp 微信小程序分享功能(打开右上角分享)

1. 新建share.js文件, 目录为: /static/js/share.js export default {data() {return {share: {// 转发的标题 (默认标题)title: 默认标题,// 默认是当前页面,必须是以‘/’开头的完整路径path: ,//自定义图片路径,可以是本地文件…

说说什么是间隙锁

分析&回答 间隙锁为了解决RR(可重复读)级别下当前读导致的幻读问题,锁的对象是索引叶子节点的next指针。 快照读 在RR隔离级别下:快照读有可能读到数据的历史版本,也有可能读到数据的当前版本。所以快照读无需用…

【PowerQuery】PowerQuery学习路径

PowerQuery这么好,怎么去学习呢?相信很多初读本书的朋友迫切的希望了解整个PowerQuery全景知识和它提供的相应的功能。但是对于PowerQuery来说,一开始就会进行自定义函数的构建当然也是不可能的,这里有相应的学习路径来进行由浅入深的学习,帮助读者更好的理解PowerQuery的…