服务器巡检表-监控指标
1、巡检指标
- 系统资源
- K8S集群
- Nginx
- JAVA应用
- RabbitMQ
- Redis
- PostgreSQL
- Elasticsearch
- ELK日志系统
2、巡检项
检查项目 | 检查指标 | 检查标准 |
系统资源 | CPU 使用率 | 正常:<70% |
内存使用率 | 正常:<70% | |
磁盘使用率 | 正常:<80% | |
系统负载 | 正常:<70% | |
日志文件是否有异常 | 正常:日志中风险无 ERROR报错 | |
系统服务是否正常运行 | 正常:没有Failed和Down状态的服务 | |
检查系统是否有波峰波谷 | 正常:指标线没有明显的大波动 | |
K8S集群 | 节点状态 | 正常:节点状态为 Ready |
Pod 状态 | 正常:所有 Pod 状态为 Running | |
持久卷状态 | 正常:所有持久卷状态均为 Bound | |
节点资源使用情况 | 正常:所有节点资源使用率均低风险于 70% | |
节点间通信是否正常 | 正常:节点间通信延迟低风险于 50ms,无丢包 | |
Nginx | 端口监听 | 正常:监听端口包含nginx配置文件监听的端口 |
访问正常 | 正常:响应状态码为 200 | |
日志记录 | 正常:日志中风险无 ERROR报错 | |
连接数 | 正常:<1024 | |
JAVA应用 | 内存泄漏警报 |
举例:堆内存使用率超过80%并且持续10分钟以上,则会触发该警报。具体配置可以根据服务器环境自定义。 |
GC 暂停时间警报 |
举例:GC暂停时间超过该阈值并且持续1分钟以上,则会触发该警报。具体配置可以根据服务器环境自定义。 | |
程序运行状态 | 正常:服务正在运行 | |
检查Pod是否有波峰波谷 | 正常:指标线没有明显的大波动 | |
RabbitMQ | 节点状态 | 正常:所有节点状态为 running |
队列长度 | 正常:≤ 500 | |
Redis | 连接数 | 正常:<1024 |
内存使用率 | 正常:<70% | |
PostgreSQL | 数据库连接数 | 正常:<1024 |
磁盘空间使用率 | 正常:<80% | |
Elasticsearch | 集群状态 | 正常:集群status为 green |
索引状态 | 正常:索引status为 open | |
ELK日志系统 | 日志收集是否正常 | 正常:应用输出的日志是否与ELK收集的一致 |
索引状态 | 正常:索引status为 open |
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×tamp=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(相当于现实生活中通过“字”找到“该字的含义” 我们前面所学习过的列表、元组、字符串以及集合都不能够提供通过某个东西找到其关联的东西的相关功能,字典可以。 例如 这里有一份成绩单…...

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 解决办法 环境介绍 某生产环境数据库启动后,dm_实例名_202309.log,偶尔报错cmd 90 validate error! 1 解决办法 接口用错了,消息非法,比如用 6 的 JDBC 连 7 或 7 的 …...

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

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

VMware16安装ghost版win7
文章目录 准备工作GHO 文件装机工具 新建虚拟机配置虚拟机还需要一个 CD/DVD PE 安装步骤分区还原挂载 CD/DVD开始还原 还原之后 准备工作 GHO 文件 可以去百度搜索这种文件,我这里是从系统之家下载的deepin win7 ghost 系统 装机工具 因为下载的 ghost 版的 w…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...
如何通过git命令查看项目连接的仓库地址?
要通过 Git 命令查看项目连接的仓库地址,您可以使用以下几种方法: 1. 查看所有远程仓库地址 使用 git remote -v 命令,它会显示项目中配置的所有远程仓库及其对应的 URL: git remote -v输出示例: origin https://…...