当前位置: 首页 > news >正文

服务器巡检表-监控指标

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

相关文章:

服务器巡检表-监控指标

1、巡检指标 系统资源K8S集群NginxJAVA应用RabbitMQRedisPostgreSQLElasticsearchELK日志系统 2、巡检项 检查项目 检查指标 检查标准 系统资源 CPU 使用率 正常:<70% 低风险:≥ 70% 中风险:≥ 85% 高风险:≥ 9…...

无涯教程-JavaScript - DDB函数

描述 DDB函数使用双倍余额递减法或您指定的某些其他方法返回指定期间内资产的折旧。 语法 DDB (cost, salvage, life, period, [factor])争论 Argument描述Required/OptionalCostThe initial cost of the asset.RequiredSalvage 折旧结束时的价值(有时称为资产的残值)。 该…...

uniapp打包微信小程序。报错:https://api.weixin.qq.com 不在以下 request 合法域名列表

场景:在进行打包上传测试时,发现登录失效,但在测试中【勾选不效应合法域名】就可以。 出现原因:我在获取到用户code后,直接使用调用官方接口换取openid 解决方案: 可以把code带给后端,让他们返…...

stm32之31.iic

iic双线制。一根是SCL,作为时钟同步线;一根是SDA,作为数据传输线 SDN #include "iic.h"#define SCL PBout(8)#define SDA_W PBout(9) #define SDA_R PBin(9)void IIC_GPIOInit(void) {GPIO_InitTypeDef GPIO_InitStructure;//使能时钟GR…...

新的 ChatGPT 提示工程技术:程序模拟

即时工程的世界在各个层面上都令人着迷,并且不乏巧妙的方法来推动像 ChatGPT 这样的代理生成特定类型的响应。思想链 (CoT)、基于指令、N-shot、Few-shot 等技术,甚至奉承/角色分配等技巧都是充满提示的库背后的灵感,旨在满足各种需求。 在本文中,我将深入研究一项技术,据…...

【Python】爬虫基础

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

leetcode分类刷题:队列(Queue)(三、优先队列用于归并排序)

1、当TopK问题出现在多个有序序列中时,就要用到归并排序的思想了 2、将优先队列初始化为添加多个有序序列的首元素的形式,再循环K次优先队列的出队和出队元素对应序列下个元素的入队,就能得到TopK的元素了 3、这些题目好像没有TopK 大用小顶堆…...

无线窨井水位监测仪|排水管网智慧窨井液位计安装案例

城市窨井在城市排水、雨水、污水输送等方面发挥着重要作用,是污水管网、排水管网 建设重要的组成部分。随着城镇精细化建设及人民安全防范措施水平的提高,对窨井内水位的监测提出了更高的要求,他是排水管网问题的晴雨表,窨井信息化…...

024 - STM32学习笔记 - 液晶屏控制(一) - LTDC与DMA2D初始

024- STM32学习笔记 - LTDC控制液晶屏 在学习如何控制液晶屏之前,先了解一下显示屏的分类,按照目前市场上存在的各种屏幕材质,主要分为CRT阴极射线管显示屏、LCD液晶显示屏、LED显示屏、OLED显示屏,在F429的开发板上,…...

Python数据容器:dict(字典、映射)

1、什么是字典 Python中的字典是通过key找到对应的Value(相当于现实生活中通过“字”找到“该字的含义” 我们前面所学习过的列表、元组、字符串以及集合都不能够提供通过某个东西找到其关联的东西的相关功能,字典可以。 例如 这里有一份成绩单&#xf…...

2023年基因编辑行业研究报告

第一章 行业发展概况 1.1 定义 基因编辑(Gene Editing),又称基因组编辑(Genome Editing)或基因组工程(Genome Engineering),是一项精确的科学技术,可以对含有遗传信息的…...

Spring MVC:请求转发与请求重定向

Spring MVC 请求转发请求重定向附 请求转发 转发( forward ),指服务器接收请求后,从一个资源跳转到另一个资源中。请求转发是一次请求,不会改变浏览器的请求地址。 简单示例: 1.通过 String 类型的返回值…...

按键灯待机2秒后灭掉

修改文件:/device/mediatek/mt6580/init.mt6580.rc chown system system /sys/class/leds/red/triggerchown system system /sys/class/leds/green/triggerchown system system /sys/class/leds/blue/triggerchown system system sys/devices/platform/device_info/…...

SpringBoot通过自定义注解实现日志打印

目录 前言: 正文 一.Spring AOP 1.JDK动态代理 2.Cglib动态代理 使用AOP主要的应用场景: SpringBoot通过自定义注解实现日志打印 一.Maven依赖 二.ControllerMethodLog.class自定义注解 三.Spring AOP切面方法的执行顺序 四.ControllerMethodL…...

代码随想录算法训练营第七天 |151.翻转字符串里的单词

今天是代码随想录的第七天,写了力扣的151.翻转字符串里的单词; 之后或许还要再琢磨琢磨 代码随想录链接 力扣链接 151.翻转字符串里的单词,代码如下: # class Solution: # def reverseWords(self, s: str) -> str: # …...

【WebRTC---源码篇】(十:一)WEBRTC 发送视频RTP包

RTPSenderVideo在整个框架中起到重要的作用,它把采集的数据进行编码,并且在流程中会进行将编码后的数据进行RTP打包,最后发送到网络层 RTPSenderVideo::SendVideo //对编码数据打包 bool RTPSenderVideo::SendVideo(int payload_type,absl::optional<VideoCodecType>…...

cmd 90 validate error!(达梦数据库日志报错)

达梦数据库报错 error-cmd 90 validate error! 环境介绍1 解决办法 环境介绍 某生产环境数据库启动后&#xff0c;dm_实例名_202309.log&#xff0c;偶尔报错cmd 90 validate error! 1 解决办法 接口用错了&#xff0c;消息非法&#xff0c;比如用 6 的 JDBC 连 7 或 7 的 …...

Shape Completion Enabled Robotic Grasping

摘要-这项工作提供了一个架构&#xff0c;使机器人能够通过形状完成抓取规划。形状完成是通过使用3D卷积神经网络(CNN)来完成的。该网络是在我们自己的新的开源数据集上训练的&#xff0c;该数据集包含了从不同视角捕获的超过44万个3D样本。运行时&#xff0c;从单个视角捕获的…...

【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )

文章目录 一、构造函数意义1、类的构造函数2、构造函数显式调用与隐式调用3、构造函数替代方案 - 初始化函数4、初始化函数缺陷5、默认构造函数6、代码示例 - 初始化函数无法及时调用 一、构造函数意义 1、类的构造函数 C 提供的 构造函数 和 析构函数 作为 类实例对象的 初始化…...

VMware16安装ghost版win7

文章目录 准备工作GHO 文件装机工具 新建虚拟机配置虚拟机还需要一个 CD/DVD PE 安装步骤分区还原挂载 CD/DVD开始还原 还原之后 准备工作 GHO 文件 可以去百度搜索这种文件&#xff0c;我这里是从系统之家下载的deepin win7 ghost 系统 装机工具 因为下载的 ghost 版的 w…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案

一、延迟敏感行业面临的DDoS攻击新挑战 2025年&#xff0c;金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征&#xff1a; AI驱动的自适应攻击&#xff1a;攻击流量模拟真实用户行为&#xff0c;差异率低至0.5%&#xff0c;传统规则引…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年&#xff0c;高端封装市场规模为 80 亿美元&#xff0c;预计到 2030 年将超过 280 亿美元&#xff0c;2024-2030 年复合年增长率为 23%。 细分到各个终端市场&#xff0c;最大的高端性能封装市场是“电信和基础设施”&#xff0c;2024 年该市场创造了超过 67% 的收入。…...

ZYNQ学习记录FPGA(二)Verilog语言

一、Verilog简介 1.1 HDL&#xff08;Hardware Description language&#xff09; 在解释HDL之前&#xff0c;先来了解一下数字系统设计的流程&#xff1a;逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端&#xff0c;在这个过程中就需要用到HDL&#xff0c;正文…...

无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技

无需布线的革命&#xff1a;电力载波技术赋能楼宇自控系统 在楼宇自动化领域&#xff0c;传统控制系统依赖复杂的专用通信线路&#xff0c;不仅施工成本高昂&#xff0c;后期维护和扩展也极为不便。电力载波技术&#xff08;PLC&#xff09;的突破性应用&#xff0c;彻底改变了…...

Springboot多数据源配置实践

Springboot多数据源配置实践 基本配置文件数据库配置Mapper包Model包Service包中业务代码Mapper XML文件在某些复杂的业务场景中,我们可能需要使用多个数据库来存储和管理不同类型的数据,而不是仅仅依赖于单一数据库。本技术文档将详细介绍如何在 Spring Boot 项目中进行多数…...