可观测学堂

可观测问答

聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

Docker 的 Fluentd 日志驱动如何处理多行日志? cover
概念指南

Docker 的 Fluentd 日志驱动如何处理多行日志?

Docker fluentd 日志驱动本身按行切割堆栈等多行日志,需配 fluentd 的 concat 过滤器按模式合并(如 Java 堆栈以空白开头并入上行)。本文给出 fluentd 侧 concat 配置与容器标签方案。

Filebeat 应该直连 Elasticsearch 还是经过 Logstash? cover
概念指南

Filebeat 应该直连 Elasticsearch 还是经过 Logstash?

日志结构化良好(JSON)或只需轻处理时 Filebeat 直连 ES 最简单;需要复杂解析、多路输出、聚合富化时加 Logstash 中间层。本文给出两种架构的适用场景与对比。

Filebeat 与 rsyslog 转发日志,怎么选? cover
概念指南

Filebeat 与 rsyslog 转发日志,怎么选?

Filebeat 擅长文件日志采集(offset 跟踪、背压、ES 生态),rsyslog 擅长 syslog 协议与系统日志转发(性能极高、系统原生)。本文对比两者并给出选型建议。

Python 如何查找列表中元素的索引? cover
概念指南

Python 如何查找列表中元素的索引?

list.index(x) 返回元素首次出现的索引,找不到抛 ValueError;找全部匹配用 enumerate 列表推导;NumPy 数组用 np.where。本文给出各场景写法与安全用法。

Fluent Bit 如何把 JSON 日志拆分成 Elasticsearch 的结构化字段? cover
概念指南

Fluent Bit 如何把 JSON 日志拆分成 Elasticsearch 的结构化字段?

Fluent Bit 用 json parser 解析日志行,嵌套对象用 Nest 过滤器的 Operation lift 提升到顶层;输出到 ES 后字段即结构化可检索。本文给出 parser 与 nest 过滤器的完整配置。

Fluentd 提示 "log unreadable, it is excluded" 怎么办? cover
概念指南

Fluentd 提示 "log unreadable, it is excluded" 怎么办?

该提示表示 Fluentd 读取日志文件失败,文件被暂时跳过。常见原因:权限不足、文件损坏、轮转冲突、路径通配符问题。本文给出逐项排查与修复方法。

Fluentd 输出到文件时如何做日志轮转(Rotation)? cover
概念指南

Fluentd 输出到文件时如何做日志轮转(Rotation)?

Fluentd 的 out_file 通过 time slice 按时间切片输出(如 path /var/log/agg/app.%Y%m%d.log)自然实现按天轮转;配合 buffer timekey 控制粒度。

Python 如何生成 X 到 Y 之间的随机整数? cover
概念指南

Python 如何生成 X 到 Y 之间的随机整数?

random.randint(x, y) 生成含两端点的随机整数;random.randrange(x, y+1) 等效;secrets.randbelow 用于安全场景。本文给出各写法与区间开闭差异。

Gunicorn 访问日志格式详解与自定义 cover
概念指南

Gunicorn 访问日志格式详解与自定义

Gunicorn 访问日志默认类似 Apache combined 格式,用 --access-logformat 自定义:%(h)s 客户端 IP、%(r)s 请求行、%(s)s 状态码、%(D)s 响应微秒等。

HAProxy 的日志没有进 rsyslog,怎么排查? cover
概念指南

HAProxy 的日志没有进 rsyslog,怎么排查?

HAProxy 无日志通常是三处断点:HAProxy 配置的 log 指令、rsyslog 未启用 UDP 514 监听、或 chroot 导致 /dev/log 不可达。本文给出完整排查链路与配置示例。

Nginx 如何把 access_log 和 error_log 输出到 stdout/stderr? cover
概念指南

Nginx 如何把 access_log 和 error_log 输出到 stdout/stderr?

容器化 Nginx 把日志输出到标准流:access_log /dev/stdout 与 error_log /dev/stderr;官方镜像用软链接 /var/log/nginx/access.log → /dev/stdout …

Graylog 中如何按日志级别(syslog severity)查找消息? cover
概念指南

Graylog 中如何按日志级别(syslog severity)查找消息?

Graylog 按级别检索:搜索栏写 level:3(数值 severity)或 level:ERROR(视字段映射);数值越小越严重(0=emerg 到 7=debug)。本文给出查询语法与级别对照表。