服务器巡检表-监控指标
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…...
项目集成swagger,访问不到swagger页面
项目集成swagger 文章目录 前言一、背景二、问题复现1.Full authentication is required to access this resource2.Illegal DefaultValue null for parameter type integer 总结 前言 项目集成swagger这个没啥好整的,maven项目就在pom文件导入依赖,ser…...
微信小程序怎么隐藏顶部导航栏(navigationBar)变透明的解决方案
怎么隐藏小程序顶部导航栏(navigationBar)? 官网说:Navigation是小程序的顶部导航组件,当页面配置 navigationStyle 设置为 custom 的时候可以使用此组件替代原生导航栏。 那么,我们就知道这种效果是可以…...
RabbitMQ基础概念-02
RabbitMQ是基于AMQP协议开发的一个MQ产品, 首先我们以Web管理页面为 入口,来了解下RabbitMQ的一些基础概念,这样我们后续才好针对这些基础概念 进行编程实战。 可以参照下图来理解RabbitMQ当中的基础概念: 虚拟主机 virtual hos…...
从构建者到设计者的低代码之路
低代码开发技术,是指无需编码或通过少量代码就可以快速生成应用程序的工具,一方面可降低企业应用开发人力成本和对专业软件人才的需求,另一方面可将原有数月甚至数年的开发时间成倍缩短,帮助企业实现降本增效、灵活迭代。那么&…...
Linux创建进程 及父子进程虚拟空间 多进程GDB调试
父子进程的资源是读时共享,写时拷贝,用到某一个资源,比如说改变变量的值的时候才去拷贝这个变量到一个独立的空间 父子进程的关系: 区别: 1.fork()函数的返回值不同 父进程中:>…...
uni-app 之 表格设置
uni-app 之 表格设置 image.png <view style"padding: 3%; border: #1296db;"><table style"width: 100%; border-collapse: collapse; "><tr style"height: 50px;border: 2px solid;border-color: #F7F7F7;"><td style&qu…...
Linux易混淆知识点
1. 使用 vi 编辑某个文件时,执行删除某行/某几行的操作: dd:删除光标所在行; 6dd:表示删除当前行开始 6 行数据。 ndd: 删除当前行开始的连续 n 行; n1,n2d:删除 n1 到 n2 行&#x…...
移植FlashDB、SFUD到STM32f407
个人上篇文章 搭建STM32F407的SPI-Flash(基于STM32CubeMX)_小刚学長的博客-CSDN博客 主要是解决STM32CubeMX这边的配置,对code端侧是简单介绍了下 实际项目上一般都是拿片外flash存储一些东西,比如一些比较多的配置、参数&…...
【算法基础】时间复杂度和空间复杂度
目录 1 算法的评价 2 算法复杂度 2.1 时间复杂度(Time Complexity) 2.1.1 如何计算时间复杂度: 2.1.2 常见的时间复杂度类别与示例 2.2 空间复杂度 2.2.1 如何计算空间复杂度 2.2.2 常见的空间复杂度与示例 3 时间复杂度和空间复杂度…...
解决微信小程序不支持TextEncoder/TextDecoder对象
问题描述:在使用小程序开发者工具开发小程序中使用到了CRC算法,其中有一行代码使用到了TextEncoder对象,在开发工具中一切正常,到手机上会报出错误错误如下: MiniProgramError TextEncoder is not defined ReferenceEr…...
问鼎电子娱乐下载官方网站/seo百度推广
SDOUG简介 SDOUG会员项目(SDOUG MEMBERSHIP PROGRAM),又称为Oracle山东用户组,简称SDOUG,是由葛云杰、杨云龙、类延良等共同发起,旨在认可和表彰那些在SDOUG技术社区有贡献的人士。这些人的技术娴熟并且乐于分享他们的知识和经验。Oracle…...
温州网站制作要多少钱/郑州seo优化外包
然后再配置监听,web.xml配置:12com.test.OnlineUserListenerlistener-class>3listener>一旦监听器发现调用了sessionDestoryed方法就会把其用户从在线人数中delete,在下面两种情况下会发生sessionDestoryed事件a.执行session.invalidat…...
文化传媒有限公司网站建设/自己建网页
这个实现起来很简单,就两步,先读取excel文件单元格的值,然后插入SQL数据库中。下面我介绍一下如何从excel文件读取数据,并插入到mysql数据库中,主要用到openpyxl和pymysql这两个包,实验环境win7 python3.6 …...
网站建设相关论文/北京seo排名优化网站
软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。 当你接到…...
wordpress不能将请求写入临时文件./免费推广广告链接
第二十九讲 抽象类 抽象类:专门用于继承的类1.声明一个抽象类使用abstract关键字2.一个抽象类中可以包含几个抽象方法。也使用abstract3.抽象类中可以存在非抽象的方法4.抽象类不能被直接被实例化 覆盖父类中的抽象方法 override 代码部分 private void Form1_Load(…...
嘉兴做网站哪家好/今日头条郑州头条新闻
前言iOS中,当我们需要解析xml或html时,我们可以使用libxml2来进行解析。但由于libxml2的api设计比较繁琐,使用起来并不方便。Hpple则是基于libxml2的oc库,使我们可以用其方便地进行xml或html的解析。使用方法我们先来看看…...