- 博客(222)
- 收藏
- 关注
原创 一次ceph节点时钟同步异常排查总结
使用命令可确认系统精确时间,经确认非误报,确实存在时钟同步异常。集群节点间采用chronyd进行时钟同步,所有节点的时钟源均配置为第一个mon。
2024-02-02 16:24:24 542
原创 Prometheus node_exporter计算CPU利用率的标准公式应该是哪一个
在实际使用中我们会发现,当节点的CPU实际利用率较低时,使用第一种公式计算出的CPU利用率与实际相差较大,这是因为该公式存在逻辑上的错误。第一种(rate和irate均可,一个反映区间值,一个反映瞬时值,新版本指标名为。使用irate/rate计算CPU利用率是不准确的,且CPU利用率越低计算结果越不准确。由此可见,只有在CPU利用率较高时,CPU各状态之和才近似等于节点运行时间。显示节点与单核CPU利用率约在75-85%左右,此时计算。显示节点与单核CPU利用率约在92-93%左右,此时计算。
2023-12-26 09:15:23 713
原创 【openstack】卷迁移导致的虚机热迁移失败问题排查及解决
可知迁移失败的原因为虚机有活跃的卷任务,执行。确定迁移源节点、目标节点。服务日志,未发现异常信息。有卷拷贝任务正在执行,执行。确定该卷有热迁移任务卡死。再次执行虚机热迁移成功。
2023-11-18 07:35:21 302
原创 ceph rados对象存储索引残留问题排查与处理
对象存储存储桶无法删除,检查发现生命周期过期后存储桶中有文件残留,未完全删除,但实际访问文件时为404,通过s3cmd无法删除对象,且无报错。拉取残余文件列表,首先获取pool、bucket。,判断为索引残留问题,及索引存在但数据已删除。列出bucket索引,发现所有索引。
2023-11-10 17:55:02 630
原创 Docker配置双栈网络引起的IPV6不通问题排查及解决
accept_ra参数,0表示不接受RA,1表示forwarding是关闭时就接受,2表示无论forwarding是否关闭,主机都接受RA。可见系统缺失默认路由。通过抓包可发现,系统未发rs(Router Advertisement)报文,导致接收不到ra通告,无法生成路由。forwarding作用是开启ipv6路由转发,默认是0关闭,容器化环境中,主机相当于路由器,会默认开启该参数。云主机配置了Docker双栈网络后,ipv6网络异常,无法ping通ipv6网关。
2023-09-28 17:51:16 1189
原创 如何解决Prometheus场景中的nodata告警问题
我们知道,prometheus会为所有的target生成一个up指标,可以使用这个指标来判断exporter但是在某些特殊场景下,例如等架构中,prometheus承担的角色是pullexporter指标并到远程端点。因此当某个Prometheus节点因为某些原因(如网络故障、prometheus节点本身故障等)离线,而无法向发送数据时(也即nodata场景),该节点所承载的监控数据(如}等)将全部丢失,并且监控系统无法感知该事件。在prometheus节点较少的情况下,我们可以通过枚举方法,配置。
2023-02-16 15:40:52 1472 2
原创 大规模Prometheus监控系统实践
刚毕业的几年,我的主攻方向是以zabbix为核心的监控系统构建与监控模板制作,那时候公司的基础设施形态以传统的裸金属集群为主,涵盖各种型号的服务器、交换机、防火墙、存储设施、专用设备等等。21年入职新司后,无缘再接触这些嗡嗡作响的大家伙,新司的基础设施则以虚拟机、云上服务、docker/k8s为主,主攻方向也由zabbix转向prometheus。两者孰优孰劣,网络上一直都有讨论。
2023-02-08 17:57:02 1200
原创 如何解决Prometheus的数据回填问题
去年10月底的时候,我们的监控系统因为一个偶然的网络离线问题,出乎意料地发生了重大的故障,这次故障暴露了当前监控系统存在的一下重大隐患,即无法处理Prometheus的数据回填,本文对该问题进行详细分析,并给出优化方案。
2023-01-18 18:03:57 2936
原创 如何监控NVIDIA GPU服务器?
可使用NVIDIA官方提供的dcgm-exporter监控GPU,项目地址:https://github.com/NVIDIA/dcgm-exporter,推荐使用docker安装:需要使用高版本docker,低版本docker无法使用参数。如上述镜像无法拉取,可使用我存在阿里云的镜像:指标地址为:Grafana dashboard:指标释义如下:指标释义可参看:
2022-12-05 17:21:28 1173
原创 ping回显间隔长或第一个包很久才显示是怎么回事?
在ping某些域名的时候,第一个回显十几秒才出现,但时延time正常,第二个包开始回显频率正常且最终统计结果为不丢包;或是每一个回显均间隔数秒才显示,但时延time又都是正常的,且统计结果为不丢包。从上述抓包结果可以看出,域名解析(序号151、154)、ICMP(序号167、170;序号186、189等)均在毫秒内即返回结果,因此域名解析及ICMP均是正常的,真正阻塞回显的序号155、158等。ping程序在成功解析域名后,试图查询IP的PTR记录(即反向解析记录,IP对应的域名/主机名)以打印回显,但经
2022-12-05 16:38:15 1783 1
原创 k8s集群内偶现无法访问外部域名怎么解?
容器内频现无法访问外部服务,是用测试有如下现象:从容器所在宿主机测试无异常,测试无异常。首先检查coredns pod运行是否正常:如果coredns pod不处于running状态,或pod频繁发生重启,则应检查pod运行异常原因:2、检查coredns日志如果pod状态正常,检查coredns日志:本次故障场景中,可在日志中看到大量如下报错:3、检查coredns负载情况看到上述报错,接着检查coredns pod负载情况:检查coredns资源限制情况:与top命令查询的负载情况比较
2022-12-05 12:12:20 2446
原创 云服务器重启后无法获取IP地址怎么办?
最近一位支撑厂家同事反馈,在执行了并重启服务器后,IP信息丢失,无法获取到IP地址,以下为该问题的排查思路。
2022-12-02 17:53:44 1882
原创 kubeadm kubernetes集群证书过期的处理方法
动态证书重载目前还不被所有组件和证书支持,所有这项操作是必须的。正确的重启方法是临时将清单文件从 /etc/kubernetes/manifests/ 移除并等待 20 秒(参考 KubeletConfiguration 结构 中的fileCheckFrequency 值)。此时kubelet 会自动终止这些pod。pod终止后再将文件移回去,kubelet将重新创建这些pod。
2022-11-16 10:53:26 855
原创 可观测性入门
可观测性是指可以在不了解系统内部运行机理的情况下,从外部诊断系统运行情况。它使我们能够轻松定位和处理新问题,并帮助我们了解为什么会发生这些问题。为了实现这个目标,必须正确地检测应用程序,也就是说应用程序代码必须发出调用链(trace)、指标(metric)和日志(log)。应用程序能够被正确检测,意味着开发人员不再需要添加更多的检测来解决问题,因为其已拥有所有的信息。
2022-10-19 11:27:30 628
原创 监控系统解决方案Thanos与VictoriaMetrics对比研究
目前主流的Prometheus长期存储及集群解决方案,包括Thanos、Cortex、VictoriaMetrics以及Grafana近期发布的Mimir,出现大一统趋势,其中以Thanos(receive模式)、Cortex、Mimir为代表的S3存储解决方案,架构、功能可以说基本一致。本文将从读写性能、资源成本、维护成本三个角度,简单对比Thanos与VictoriaMetrics的差异与优劣。
2022-10-12 16:31:45 1849
原创 process-exporter中namedprocess_namegroup_states指标的正确含义是什么
注意:process-exporter在计算指标namedprocess_namegroup_states时,会将进程名相同的进程合并(例如多个java进程),因此上述公式在这种情况下也是不准的。这个指标通过process-exporter采集,原意是计算节点上sleeping进程的数量,表面看起来没什么问题,实际上得出的结果却是完全错误的。这个指标的含义为处于Sleeping状态的进程sshd线程数为7,可以通过/proc/{pid}/status查看进程的状态及线程数。...
2022-08-30 17:06:43 846
原创 rsync: [sender] write error: Broken pipe (32) 问题排查
同步开始时进行正常,说明配置正确。中途"Broken pipe",检查源端与目标端之间的防火墙等安全设备配置,发现配置有DDOS防护,DDOS相关告警也佐证了传输中断的原因为数据同步因流量过大被判定为DDOS攻击,因此被拦截。同步初始化时总是中断,一般在传输4G左右暂停,重启lsyncd后传输一段时间再次中断。方法一:关闭DDOS防护。......
2022-08-16 10:19:23 2936
原创 Elasticsearch跨集群复制(CCR)介绍
跨集群复制(CCR,cross-clusterreplication)属于xpack增强包中的功能,需要白金级、企业级证书才可使用。对于分布在不同地域的Elasticsearch集群,您可以通过CCR进行数据备份。当其中一个集群发生故障时,您可以通过访问其他集群来获取故障集群的数据,保证数据不丢失。例如A集团下有多个子公司,各子公司所分布的地域不同。为了提高业务处理速度,可按照地理位置划分子公司要承担的业务,并通过CCR将业务数据分发给各地域中的Elasticsearch集群。...
2022-07-28 15:10:38 2226 1
原创 ping域名报错unknown host,nslookup/systemd-resolve可以正常解析,ping公网地址通怎么解决?
ping域名报错unknown host,nslookup/systemd-resolve可以正常解析,ping公网地址通。需要检查的异常点1、检查/etc/nsswitch.conf检查hosts行,是否为 files dns,files 表示使用 /etc/hosts 和 /etc/network 配置文件,dns 表示使用 /etc/resolv.conf文件中的DNS解析地址。ping 程序解析域名依赖于C库中的函数 gethostbyname() 和 gethostbyaddr...
2022-06-30 16:44:20 1112
原创 单节点高并发Linux服务器影响接入能力的因素有哪些
在单台服务器承载数十万并发的情况下,影响服务器接入能力的因素已经不在是CPU、内存、带宽等表层因素,而是内核参数、设备配置、应用优化等多种细节因素。Linux 中所有内容都是以文件的形式保存和管理的, 包括套接字、网络通信等资源,即一切皆文件,因此提升最大打开文件数是提高服务器并发性能的重要一步。Linux的最大打开文件数限制包括系统级(系统可打开的最大文件数)、用户级(单个用户可打开的最大文件数)、进程级(单个进程可打开的最大文件数),可分别通过如下方式修改:2、nf_conntrack对开启i
2022-06-29 17:43:12 1297
原创 K8S某些节点容器网络访问异常的一种原因——网卡“源/目的地址检查”
移动云环境,自建K8S,所有主机处于同一网段,CNI插件是用Calico,BGP模式。某些节点的容器无法与K8S其他node通信,表现为该节点的容器无法访问其他节点及节点上的容器和服务,其他节点和节点上容器也无法访问该节点上的容器,节点间通信正常,仿佛该节点的容器被隔离了一样。通过在容器内及节点上抓包可以看到,数据包在节点与节点网卡之间丢失,如图:异常节点的网卡开启了“源目的地址检查”。该选项移动云默认开启,但无相关介绍。我们从华为云的文档中找到了一些介绍:默认情况下,“源/目的检查”状态为“ON”,系统会
2022-06-28 10:58:03 1551 3
原创 Linux内核参数net.ipv4.ip_local_port_range对服务器连接数影响的正确解释
首先明确一下该参数的意义:net.ipv4.ip_local_port_range表示本机作为客户端对外发起tcp/udp连接时所能使用的临时端口范围。对于TCP连接,本机所能发起的tcp连接数受四元组(源地址*源端口*目标地址*目标端口)限制。而对于UDP连接,本机所能发起的udp连接数则受二元组(源地址*源端口)限制。(此处借用二元组的概念,并不表示udp套接字的二元组标识)。一个实际生产场景举例我们知道,在使用nginx作反向代理服务器时,会作为客户端向后端负载发起连接,在不考虑最大打
2022-04-29 16:57:09 3794
原创 关于Postgres主从复制延迟监控的错误告警问题
在使用Prometheus监控的Postgres数据库时, 会发生主从复制延迟产生告警,但实际上数据库正常的问题,我们使用的exporter为https://github.com/prometheus-community/postgres_exporter,告警表达式为:pg_replication_lag > 300这个指标的说明如下:# HELP pg_replication_lag Replication lag behind master in seconds# TYPE pg_r
2022-04-22 17:50:36 1878
原创 Thanos如何为不同租户配置不同的数据保留时长
在之前的实践中我们已经实现了prometheus的多租户读写:Prometheus和Thanos Receiver的“写多租户”实现_洒满阳光的午后的博客-CSDN博客新的需求是要为不同的租户配置不同的数据保留时长。目前compactor组件天然是不具备多租户能力的,但是它有一个参数--selector.relabel-config=<content> Alternative to 'selector.relabel-co
2022-04-20 17:45:18 598
原创 prometheus告警记录持久化(历史告警保存与统计)
前段时间碰到一个需求:将Prometheus的历史告警进行持久化保存,一遍进行分析统计。在尝试了一些工具后,最终选用了alertsnitch+grafana的方案。
2022-03-02 17:06:54 5404 15
原创 k8s安装kube-prometheus后,kube top命令没有数据的排查思路
最近碰到的一个问题,安装完kube-prometheus后,kubectl top node显示metrics not available yet,但kubectl top po可以使用:
2022-03-02 15:23:35 2313
原创 Prometheus监控influxdb的方法及指标释义
配置方法influxdb本身自带metrics(http://$ip:8086/metrics),但内容有限,需借助telegraf来扩展监控内容。wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpmyum localinstall influxdb-1.7.8.x86_64.rpmtelegraf在这里作为指标收集器,有两种使用方法:1、不使用influxdb_exporter,直接将tel
2022-02-21 17:03:06 4538 1
原创 Kubernetes CoreDNS常见问题资料参考
Kubernetes官方文档Pod与Service的DNS: https://kubernetes.io/zh/docs/concepts/services-networking/dns-pod-service/自定义DNS服务: https://kubernetes.io/zh/docs/tasks/administer-cluster/dns-custom-nameservers/调试DNS问题: https://kubernetes.io/zh/docs/tasks/administer-c.
2022-01-25 15:03:21 554
原创 Alertmanager重复/缺失告警现象探究及两个关键参数group_wait和group_interval的释义
生产中使用webhook对历史告警进行统计时发现,有些resolved消息没有对应的firing消息、有些的firing消息没有对应的resolved消息、有些resolved消息发送了多次、有些firing消息没有按照repeat_interval间隔重复且短时间内发送了多次。这些问题主要由group_wait和group_interval两个参数引起。
2022-01-21 16:54:06 7600 6
原创 Prometheus的relabel_configs和metric_relabel_configs解释及用法示例
先看两个配置的所处位置:global: ......# A list of scrape configurations.scrape_configs: # The job name assigned to scraped metrics by default. - job_name: <job_name> ........ # List of target relabel configurations. relabel_configs:
2021-11-29 11:06:04 2252
原创 Prometheus和Thanos Receiver的“写多租户”实现
Thanos Receiver的所谓“多租户”,主要体现在为不同的租户分配不同的Receiver(限制能向Receiver发送数据的来源),以及为不同的租户再实例本地创建不同的TSDB。Thanos Receiver组件接收Prometheus的remote_write请求,将数据写入本地TSDB,并定期将TSDB block上传到对象存储。Receiver组件同时还暴露Store API给Querer组件以实现指标实时查询。Thanos Receiver支持多租户,它从remote_write.
2021-11-24 16:39:28 1128
原创 使用prom-label-proxy实现Prometheus Thanos的基于标签的多租户读
Go安装go env -w GOPROXY=https://goproxy.cngo get github.com/prometheus-community/prom-label-proxycd ~/go/bin./prom-label-proxy --help
2021-11-24 11:40:21 1077
原创 Prometheus Thanos与Cortex组件比较
关于告警能力的配置:Thanos推荐除非有全局告警的特殊需求,否则应当使用Prometheus原生的告警能力。Cortex Thanos Distributor 接收Prometheus remote_write数据,进行验证并分发给Ingester Receiver 接收Prometheus remote_write数据,写入本地TSDB,并定期2h上传block到对象存储。 内部实现哈希环,不依赖外部存储。 Inges
2021-11-23 10:29:26 901
原创 Prometheus Thanos快速指南
Thanos系统构建于Prometheus之上,用于扩展Prometheus功能,提供了全局查询、高可用支持、历史数据备份到对象存储等核心能力。Prometheus在架构中扮演数据收集角色,告警功能仍然推荐使用各个Prometheus节点的本地数据及告警能力。Thanos组件Sidecar:连接到Prometheus,读取其数据并上传到对象存储。Store-gateway:提供对象存储中指标的查询能力。Compactor:对对象存储的数据进行压缩、降采样及配置保留时长。Receiver:
2021-11-22 15:34:11 2195
原创 Prometheus Cortex多租户读写的实现
Cortex的所有组件会从每个请求header的X-Scope-OrgID中获取租户ID。此处的租户表示的是一组数据的拥有者,它向Cortex写入数据,并拥有该数据的查询权限。所有的Cortex组件都会无条件信任带X-Scope-OrgID的请求,因此如果希望保护Cortex免受恶意调用,需要自行添加一个保护层。注意查询和写入请求的租户ID必须一致,否则无法查询到所需数据。启用多租户特性通过在配置文件中添加auth.enabled=true,或者命令行-auth.enabled=true启用多租
2021-11-19 15:02:41 906
原创 Prometheus Cortex使用Block存储时的相关问题
架构概述(必看)使用Block存储的相关问题使用Block存储时,需要运行额外两个服务,store-gateway和compactor。store-gateway负责查询block并被querier调用。compactor负责合并、去重block(因为replication factor的原因,同一序列会被N个Ingester存储N份,因此需要去重)。Ingester会被
2021-11-18 14:49:56 560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人