猫头虎分享已解决Bug || Logging and Monitoring Gaps: Missing logs or metrics

CI/CD——在Jenkins中pipeline解析与使用pipeline流水线自动化构建部署JavaWeb项目 本文介绍在Jenkins中使用pipeline流水线自动化构建与部署的CI/CD流程。通过声明式Pipeline定义流水线,涵盖代码拉取、Maven编译、远程部署等阶段,结合Jenkinsfile实现流程代码化、可追溯。利用Agent、Environment、Tools等核心概念,支持多环境并行部署与异常处理,提升开发效率与发布可靠性。推荐采用声明式语法,结合PublishOverSSH插件完成安全部署,适用于企业级标准化交付场景。 阅读详情

猫头虎分享已解决Bug || Logging and Monitoring Gaps: Missing logs or metrics 🐱🐯

摘要

👋 大家好,我是猫头虎!在云原生世界中,日志和监控 是我们稳定运行的基础。但有时候,我们会遇到日志缺失或监控指标缺失的问题,这让调试变得异常困难。今天我们就来深入探讨这个话题,帮助大家轻松解决这个棘手的Bug!🎉


关于猫头虎

大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评测图文、产品使用体验图文、产品优点推广文稿、产品横测对比文稿,以及线下技术沙龙活动参会体验文稿。内容涵盖云服务产品评测、AI产品横测对比、开发板性能测试和技术报告评测等。

目前,我活跃在优快云、51CTO、腾讯云开发者社区、阿里云开发者社区、知乎、微信公众号、视频号、抖音、B站和小红书等平台,全网拥有超过30万的粉丝,统一IP名称为 猫头虎 或者 猫头虎博主 。希望通过我的分享,帮助大家更好地了解和使用各类技术产品。

  • 原创作者: 猫头虎

博主 猫头虎 的技术博客

  • 全网搜索关键词: 猫头虎
    了解更多 猫头虎 的编程故事!
  • 作者微信号: Libin9iOak
  • 作者公众号: 猫头虎技术团队
  • 更新日期: 2024年6月22日
    🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能!

专栏链接:

🔗 精选专栏:

领域矩阵:

🌐 猫头虎技术领域矩阵:
深入探索各技术领域,发现知识的交汇点。了解更多,请访问:

在这里插入图片描述

在这里插入图片描述


一、问题描述 🧐

在云原生环境中,日志和监控是关键工具。然而,由于种种原因,我们常常会遇到以下问题:

  1. 缺少日志:某些服务没有记录日志,导致无法追踪问题。
  2. 监控指标缺失:关键指标没有被收集,无法进行有效监控。

二、原因分析 🔍

1. 日志配置错误 📝

日志系统需要正确的配置。如果某个服务未按规定记录日志,那么这部分日志就会缺失。

2. 监控系统未覆盖全部服务 📉

有时候,监控系统未能覆盖所有服务,导致某些关键指标无法收集。

3. 日志和监控系统故障 ⚠️

即使配置正确,如果日志和监控系统本身出现故障,也会导致数据缺失。


三、解决方法 🔧

1. 实施全面的日志和监控方案 🛠️

使用如ELK栈(Elasticsearch, Logstash, Kibana)、Prometheus和Grafana等工具,确保所有应用和服务都发送日志和指标到中央系统。

# 示例:使用Logstash配置日志收集
input {
  file {
    path => "/var/log/*.log"
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
  }
  stdout { codec => rubydebug }
}

2. 定期检查和更新配置 📅

确保所有配置定期检查和更新,避免因配置错误导致的日志或指标缺失。

# Prometheus配置示例
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'kubernetes-apiservers'
    kubernetes_sd_configs:
      - role: endpoints
    relabel_configs:
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
        action: keep
        regex: default;kubernetes;https

3. 监控日志和监控系统本身 🔄

通过实施自我监控机制,确保日志和监控系统运行正常。

# Grafana报警规则示例
apiVersion: 1

alert:
  - name: HighErrorRate
    rules:
      - alert: HighErrorRate
        expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
        for: 10m
        labels:
          severity: page
        annotations:
          summary: "High request latency"
          description: "Request latency is above 0.5s for more than 10 minutes."

四、操作步骤 🛠️

  1. 配置ELK栈:确保所有服务日志都发送到Elasticsearch。
  2. 配置Prometheus和Grafana:收集和展示所有服务的监控指标。
  3. 定期检查配置:使用脚本或工具定期检查配置文件。
  4. 实施自我监控:设置监控规则,确保日志和监控系统正常运行。

五、如何避免此类问题 🚫

  1. 严格遵循最佳实践:遵循官方文档和社区推荐的配置方法。
  2. 自动化部署和配置:使用CI/CD工具,确保配置的一致性和正确性。
  3. 定期培训和审计:对团队成员进行培训,并定期审计配置和运行状态。

六、代码案例演示 💻

以下是一个完整的示例,展示如何配置ELK和Prometheus来解决日志和监控缺失的问题:

# 安装Elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" elasticsearch:7.6.2

# 安装Logstash
docker run -d --name logstash --link elasticsearch:elasticsearch -p 5044:5044 -p 9600:9600 -v ~/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:7.6.2

# 安装Kibana
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.6.2

# 安装Prometheus
docker run -d --name prometheus -p 9090:9090 -v ~/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

# 安装Grafana
docker run -d --name grafana -p 3000:3000 grafana/grafana

七、QA部分 ❓

Q1: 如何确定日志缺失的根本原因?

A1: 首先检查服务的日志配置文件,确保正确配置了日志路径和格式。其次,检查日志收集系统的运行状态,确保没有出现故障。

Q2: 如何扩展现有监控系统以覆盖新服务?

A2: 更新Prometheus的配置文件,添加新的scrape配置,确保新的服务也被监控到。

Q3: 如果日志系统和监控系统都正常,但仍有数据缺失,该怎么办?

A3: 可以通过实施自我监控机制,检测日志和监控系统本身的运行状态。检查网络连接和系统资源,确保没有其他影响因素。


八、总结 📜

通过实施全面的日志和监控方案,定期检查和更新配置,以及监控日志和监控系统本身,我们可以有效避免日志和监控指标缺失的问题。未来,随着技术的发展,云原生环境的日志和监控工具将变得更加智能和高效。


九、未来行业发展趋势观望 🌐

未来,随着人工智能和机器学习技术的进步,日志和监控系统将能够自动检测和修复配置错误,进一步提高系统的稳定性和可靠性。


参考资料 📚

  1. Elasticsearch官方文档
  2. Prometheus官方文档
  3. Grafana官方文档

更多最新资讯欢迎点击文末加入领域社群🔗


在这里插入图片描述

👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击下方文末名片获取更多信息。我是猫头虎博主,期待与您的交流! 🦉💬

🚀 技术栈推荐:
GoLang, Git, Docker, Kubernetes, CI/CD, Testing, SQL/NoSQL, gRPC, Cloud, Prometheus, ELK Stack

💡 联系与版权声明:

📩 联系方式:

  • 微信: Libin9iOak
  • 公众号: 猫头虎技术团队

⚠️ 版权声明:
本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请访问猫头虎的博客首页。

点击下方名片,加入猫头虎领域社群矩阵。一起探索科技的未来,共同成长。

STM32 CAN发送丢包?3个邮箱轮询法实测有效(附代码) 本文深入分析了STM32 CAN总线发送丢包的根本原因,指出其内置CAN控制器的三个发送邮箱是硬件瓶颈。针对高负载场景,提供了实测有效的优化方案,重点介绍了非阻塞的邮箱状态轮询法,该方法通过主动轮询三个邮箱的空闲状态,充分利用硬件资源,显著提升发送稳定性并避免任务阻塞。文中附有可直接使用的示例代码。 阅读详情

相关推荐

SQL Prompt 9.0插件突然无法使用解决办法(附防联网激活)多图+文字

可能由于Redgate公司最近抓盗版抓得严,导致激活后的SQL Prompt联网后突然无法使用,无论卸载重装都没办法继续使用,本人同时使用SQL Assistant和SQL Prompt,我喜欢SQL Assistant代码提示功能,而SQL Prompt我喜欢将查询结果复制后可以直接生产插入脚本,这是最爽的一件事,即便对表有多么熟悉,没有这些插件,几行语法都要敲大半天,目前本人已经离不开这两个插...

骚团长的博客 1万+

linux部署项目日志设置,各位大哥 linux系统下部署项目,日志这样提示,怎么搞啊?...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼13-Nov-2019 16:25:40.031 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/8.5.4713-Nov-2019 16:25:40.032 INFO [main] org.apa...

weixin_35131453的博客 250

从零理解Brep:用Python玩转3D建模的边界表示法(附OpenCASCADE示例)

本文深入解析了边界表示法(Brep)在3D建模中的应用,通过Python和OpenCASCADE的实战示例,详细介绍了Brep的核心数据结构、布尔运算、网格转换及3D打印优化技巧。适合CAD设计、3D打印和计算机图形学领域的开发者学习与实践。

n4o5p6q7r的博客 426

Jenkins + Python 全自动跑通「禅道任务/BUG 导出 → 月度开发考核表」

Jenkins结合Python实现禅道任务与BUG全自动导出及月度开发考核统计。通过复现浏览器三步导出流程(重置筛选、初始化、提交表单),精准获取全量数据;基于代码剔除父任务重复工时,修正“指派给”与“解决者”归属偏差,避免0工时导致的BUG率失真。最终生成含开发人天、有效负责BUG数、加权BUG率等字段的考核表,口径固化为可复用规则,彻底杜绝手工统计误差,实现零干预、高可信的自动化考核闭环。

一个人的博客 359

别再手动算考勤了!教你用Python+企业微信API自动生成月度报表

本文介绍如何利用Python和企业微信API构建自动化考勤分析系统,实现从数据获取到可视化报表生成的全流程自动化。通过企业微信打卡接口获取数据,使用Pandas进行高效清洗和分析,并生成Excel和HTML格式的报表,大幅提升考勤统计效率。系统支持智能判定考勤状态,如迟到、早退等,并可通过定时任务实现月度自动化运行。

weixin_27875131的博客 289

secureCRT 破解方法

3、输入注册信息打开keygen.exe,点击path,选择SecureCRT的安装目录(例如D:\VanDykeSoftware\Clients)的securecrt.exe打开,继续下一步打开LicenseHelper.exe,如下。1、注册SecureCRT9.1打开keygen.exe,出现以下问题(没有关掉安全防护,一双击打开,Windows会自动识别keygen.exe为bingdu并删除)打开桌面SecureCRT,此界面不输入内容,直接点击下一步。2、存储配置文件夹(可以默认安装)

逆水行舟 1万+

“完成”是什么意思——Plan 步骤状态机的七个 Bug

本文剖析了Agent系统中“Plan步骤从pending到done”状态迁移的七个真实Bug,揭示其背后深层设计问题:状态机语义复杂、终态不闭合、状态与事件脱节、生命周期未递归终结等。教训聚焦于:终态应使用枚举而非布尔组合,同状态迁移需幂等,状态变更与事件发射必须原子化,父生命周期结束时须收口子状态,错误提示应引导模型行为。这些原则适用于任何多参与者、异步执行的智能工作流系统。

qinglongcn的博客 298

Java代码实现opc ua 事件订阅和数据变化订阅

OPC UA (Open Platform Communications Unified Architecture) 提供了两种主要的订阅机制:数据变化订阅(Data Change Subscription)和事件订阅(Event Subscription)。这两种订阅机制允许客户端实时接收来自服务器的数据更新或事件通知。

洛阳泰山的博客 2367

unity 照片墙插件(Pop-up Photo Wall)在触摸屏和红外框设备上的触发Bug

这不是一个好的办法,因为没有找到问题根源,只能先临时这样处理了,在电容屏上实测有效。在触摸屏和红外框设备上使用模板时,点击一张照片时会一次性触发展开多张照片。测试分析后发现以下方式可以避免这个bug。

梦想是世界和平 226

RK3568平台开发系列讲解(项目篇)手写数字识别

📢 本篇章带大家基于飞桨(PaddlePaddle),完成一个简单的手写数字识别任务。

内核笔记 1182

第十七章:载板成本结构分析

本文分析了ABF和BT载板的成本结构,其中ABF载板材料成本占比50%(主要来自ABF薄膜),制造成本35%,利润15%;BT载板材料成本45%,制造成本40%。ABF薄膜价格预计将从2023年的80-90美元/panel上涨至2026年的120-150美元。良率每提升1%可降低成本约5%,产能利用率每提高10%可降本3-5%。通过设计优化(如减少层数)、工艺改进(提升良率)和供应链优化(材料国产化)可有效降低成本。预计2024-2028年AI用ABF载板成本将上涨10-15%,而手机用BT载板涨幅约5%。

Open 315

fix bug

当你通过 cpolar 域名外网访问时,请求到达你本机的 Apache 时,如果 Apache 的虚拟主机配置(如。)默认匹配了本地环境,或者反向代理透传了本地 Host,它依然可能表现为本地地址。$_SERVER['REMOTE_ADDR']也永远指向127.0.0.1。

huxyc的博客 44

海康威视 2024届 数字逻辑设计 实习笔试分析

记录一下 5月11日晚,做的海康威视的一场笔试。分享给需要的IC人。 岗位:数字逻辑设计工程师(浙江 杭州) 转载需要本人同意! 我的见解不一定都是准确的,欢迎评论区交流指正~~

记录所学,分享知识,结识挚友 1万+

Autosar SecOC 需求场景BUG(需求不一致性)【草稿】

Autosar SecOC为实现安全报文在±2周期内的容错校验,引入格式15的规范表格。该表格设定ResetFlag=±2为关键条件,但另一图示中又出现丢弃-2的情况,导致逻辑矛盾,引发对机制一致性的质疑。

沿流不止 48

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

不收 PR、让 Agent 自己修 Bug:3,900 Star 的 Rust UI 框架 Rune,为“AI 写界面“重新设计

Rune:GPU 渲染的 Rust 原生 UI 框架,headless 模式让 Agent 渲染 PNG、导出元素树、脚本驱动输入并自检——UI 框架第一次把可被 AI 观测作为架构需求。更激进的是:它不收 PR,贡献和维护两端都是 Agent。

话梅糖の优快云 Blog 527

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

React 前端工程化在秒杀活动中的性能优化与 Bug 修

措施名称 | 实施成本 | 预期收益 | 风险等级 | |----------|----------|-----------|------------| | 使用 Redux Toolkit 管理状态 | 中等 | 提高可维护性和性能 | 中等 | | 引入 Suspense / Lazy Loading | 高 | 显著提升用户体验 | 高 | | 使用 Error Boundaries 捕获异常 | 中等 | 提高系统健壮性 | 中等 |在大型互联网企业中,秒杀与抢购活动是高频的业务场景之一。

wuchangjian的专栏 183

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

bug?nacos跑满内存!!!

手上一台 2 核 2G 阿里云服务器,用 docker-compose 搭微服务基础环境:Nacos、MySQL、Redis、RabbitMQ。本来以为拉起来就能用,结果直接翻车,Xshell 连不上服务器,折腾半天,终于找到根源。

2501_90507065的博客 203

【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜

你翻了一下代码,项目里大量使用了 [SerializeReference] 特性来做技能系统的多态序列化——大概有 200 多个不同的技能效果类,都挂在 SkillData 这个 ScriptableObject 上,通过 Addressables 动态加载和释放。Unity 的 Native 对象是引用计数管理的,而 C# 托管对象是 GC 管理的。SerializeReference 的多态对象,它们的 Native 侧表示是什么样的?托管堆内存 | 加载后释放,回到初始水平 | 正常,符合预期。

crystal_WJT的博客 651

如何降低 Claude Code 使用费用:同一个 Java 修 bug 任务实测 6 种设置,花费从 0.69 到 0.02 美元

Claude Code 费用怎么降?用同一个 Java 订单金额修 bug 任务实测 Opus、Sonnet、Haiku、effort、safe-mode 和缓存 TTL 共 6 种设置,花费从 0.69 到 0.02 美元,并按官方价格表拆出钱花在哪:多数花在写缓存,不在输出。

u011831527的博客 161

一个BUG导致的Oracle数据库实例重启:ORA-00600 [kjmchkiseq:!seq]

一个BUG导致的Oracle数据库实例重启:ORA-00600 [kjmchkiseq:!seq]

听雪楼主 256

AI答错一个数,先分清是bug还是语义问题

驻场做 AI 调优,听得最多的一句话是:这个数不对。新手的第一反应是马上改,改完交差。老手会先按住不动,因为答错的原因分两种,走的是完全不同的处理线,改错了地方就是白改。向量空间JBoltAI项目驻场几个月,我们把这条分流线磨成了固定动作,讲出来给做企业 AI 落地的同行参考。

xiancai_xianyu的博客 229

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 469

从瀑布到流水线:DevOps 入门与 GitLab + Jenkins + Docker 落地实践

先看清软件开发生命周期(SDLC)的全貌,再对比瀑布模型与敏捷开发,随后进入持续集成与 CI/CD 的机制内核;最后落到实操——在 GitLab、Jenkins、Docker 组成的四机实验环境里,走完源码托管、自动化构建、镜像封装与远程部署,直到参数化构建与版本回滚。概念与命令并重,既是入门地图,也是操作手册。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 248

docker -- Jenkins容器内使用宿主机的docker环境

我的Jenkins是直接用docker启动的,但是在Jenkins构建流水线的时候,需要使用到docker环境,因为容器内都是最基本的linux环境,要在容器内再弄一个docker环境就很麻烦,所以想办法直接共享宿主机的docker环境。可以看到没有docker用户组,其实这个988就是docker用户组,因为容器内没有docker这个用户组,所以就直接显示docker用户组的id 988。进入Jenkins容器,935e9371b59e 是容器id,进入到容器后,你会发现你的用户为jenkins。

DGH2430284817的博客 226

从0到打通CICD!SpringBoot+GitLab+Jenkins+Docker完整实验

开源Java编写CI/CD工具;依靠插件扩展能力。核心概念:Job任务、Pipeline流水线、Agent执行节点、Artifact构建产物、Plugin插件。Pipeline阶段:拉取代码 → 编译构建 → 单元测试 → 代码质量扫描 → 打包制品 → 部署测试环境 → 部署生产。IDEA提交代码不要提交.idea目录,会产生冲突。Docker daemon.json不能存在非法url,否则docker启动失败。

2403_87659444的博客 203

DevOps入门-下篇-GitLab-Jenkins-Docker实战

打开demo_web项目 → 菜单VCS→Git→Push(或Remotes)→字段值NameoriginURLURL 直接从 GitLab 项目首页复制(Clone →),别手打,容易多斜杠。实践对应概念解决的问题GitLab 托管 + 分支管理版本控制代码唯一可信来源Jenkins 拉取并自动构建持续集成不再手工打包,问题早发现Maven 统一构建可重复构建谁打出来的包都一样Publish over SSH 自动推送持续交付部署不再是手工活Dockerfile 进仓库。

weixin_45488455的博客 645
上一篇: 猫头虎分享已解决Bug || Secret Management Issues: Secrets not being mounted ️
下一篇: 猫头虎分享已解决Bug || Error response from daemon: Conflict. The name is already in use by another containe
AI云原生
博客等级 码龄3年 1万+粉丝 216原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值