
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
在Kubernetes中,守护进程集(DaemonSet)确保部分或所有节点运行一个Pod副本。本实现通过Fluentd DaemonSet收集Kubernetes日志。Fluentd具备足够的灵活性,并拥有适当的插件可将日志分发到Logz.io等第三方平台。
logzio-k8s镜像预配置了Fluentd,可收集Kubernetes节点环境中的所有日志,并为日志附加适当的元数据。
您有两种部署选项:
apiVersion: rbac.authorization.k8s.io/v1beta1。ClusterRole和ClusterRoleBinding的API版本位于logzio-daemonset-rbac.yaml和logzio-daemonset-containerd.yaml中。若运行K8S 1.17或更高版本,守护进程集默认使用apiVersion: rbac.authorization.k8s.io/v1,无需修改。logzio/logzio-fluentd拉取镜像。早期版本从logzio/logzio-k8s拉取。对于大多数环境,推荐使用默认配置。若环境需要,也可部署自定义配置。
1. 创建监控命名空间
守护进程集将部署在monitoring命名空间下。
shellkubectl create namespace monitoring
2. 存储Logz.io凭证
将Logz.io传输凭证保存为Kubernetes密钥。
将<<SHIPPING-TOKEN>>替换为要发送到的账户的令牌。
将<<LISTENER-HOST>>替换为您所在区域的监听器主机(例如listener.logz.io)。有关查找账户区域的更多信息,请参见账户区域。
shellkubectl create secret generic logzio-logs-secret \ --from-literal=logzio-log-shipping-token='<<SHIPPING-TOKEN>>' \ --from-literal=logzio-log-listener='https://<<LISTENER-HOST>>:8071' \ -n monitoring
3. 部署守护进程集
对于RBAC集群:
shellkubectl apply -f https://raw.githubusercontent.com/logzio/logzio-k8s/master/logzio-daemonset-rbac.yaml -f https://raw.githubusercontent.com/logzio/logzio-k8s/master/configmap.yaml
对于非RBAC集群:
shellkubectl apply -f https://raw.githubusercontent.com/logzio/logzio-k8s/master/logzio-daemonset.yaml -f https://raw.githubusercontent.com/logzio/logzio-k8s/master/configmap.yaml
对于containerd运行时:
shellkubectl apply -f https://raw.githubusercontent.com/logzio/logzio-k8s/master/logzio-daemonset-containerd.yaml -f https://raw.githubusercontent.com/logzio/logzio-k8s/master/configmap.yaml
4. 在Logz.io中查看日志
等待一段时间让日志从系统传输到Logz.io,然后打开Kibana。
如果仍未看到日志,请参见日志传输故障排除。
您可以自定义Fluentd容器的配置,通过ConfigMap覆盖默认的守护进程集配置。
1. 创建监控命名空间
守护进程集将部署在该命名空间下。
shellkubectl create namespace monitoring
2. 存储Logz.io凭证
将Logz.io传输凭证保存为Kubernetes密钥。
将<<SHIPPING-TOKEN>>替换为要发送到的账户的令牌。
将<<LISTENER-HOST>>替换为您所在区域的监听器主机(例如listener.logz.io)。有关查找账户区域的更多信息,请参见账户区域。
shellkubectl create secret generic logzio-logs-secret \ --from-literal=logzio-log-shipping-token='<<SHIPPING-TOKEN>>' \ --from-literal=logzio-log-listener='https://<<LISTENER-HOST>>:8071' \ -n monitoring
3. 配置Fluentd
有3种守护进程集选项:https://raw.githubusercontent.com/logzio/logzio-k8s/master/logzio-daemonset-rbac.yaml%E3%80%81https://raw.githubusercontent.com/logzio/logzio-k8s/master/logzio-daemonset.yaml%E3%80%81https://raw.githubusercontent.com/logzio/logzio-k8s/master/logzio-daemonset-containerd.yaml%E3%80%82%E4%B8%8B%E8%BD%BD%E7%9B%B8%E5%85%B3%E7%9A%84%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E9%9B%86%E5%B9%B6%E5%9C%A8%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E6%89%93%E5%BC%80%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%BE%91%E3%80%82
若要对Fluentd配置进行高级修改,可下载并编辑https://raw.githubusercontent.com/logzio/logzio-k8s/master/configmap.yaml%E3%80%82
环境变量 以下环境变量可直接在守护进程集中编辑,无需修改ConfigMap。
| 参数 | 描述 |
|---|---|
| output_include_time | 默认值:true 若要在处理日志时附加时间戳,设为 true;否则设为false。 |
| LOGZIO_BUFFER_TYPE | 默认值:file 指定用作后端的插件。 |
| LOGZIO_BUFFER_PATH | 默认值:/var/log/Fluentd-buffers/stackdriver.buffer 缓冲区路径。 |
| LOGZIO_OVERFLOW_ACTION | 默认值:block 控制队列满时的行为。 |
| LOGZIO_CHUNK_LIMIT_SIZE | 默认值:2M 允许的最大块大小。 |
| LOGZIO_QUEUE_LIMIT_LENGTH | 默认值:6 输出队列的最大长度。 |
| LOGZIO_FLUSH_INTERVAL | 默认值:5s 调用下一次缓冲区刷新前的等待时间(秒)。 |
| LOGZIO_RETRY_MAX_INTERVAL | 默认值:30s 重试之间的最大等待时间(秒)。 |
| LOGZIO_FLUSH_THREAD_COUNT | 默认值:2 刷新缓冲区的线程数。 |
| LOGZIO_LOG_LEVEL | 默认值:info 容器的日志级别。 |
| INCLUDE_NAMESPACE | 默认值:""(所有命名空间) 若要发送特定K8s命名空间的日志,以空格分隔。格式应为: kubernetes.var.log.containers.**_<<要包含的命名空间>>_** kubernetes.var.log.containers.**_<<另一个命名空间>>_**。 |
| KUBERNETES_VERIFY_SSL | 默认值:true 启用以验证SSL证书。 |
| FLUENT_FILTER_KUBERNETES_URL | 默认值:nil(预构建的守护进程集中不显示) API服务器的URL。设置此项可从Kubernetes API服务器检索更多日志的Kubernetes元数据。若未指定,当 KUBERNETES_SERVICE_HOST和KUBERNETES_SERVICE_PORT环境变量均存在时(通常在Pod中运行Fluentd时为真),将使用这两个变量。注意:此参数未出现在守护进程集的预构建环境变量列表中。若要使用并设置此变量,需将其添加到守护进程集的环境变量中。 |
| AUDIT_LOG_FORMAT | 默认值:audit 审计日志的格式。若审计日志为JSON格式,设为 audit-json。 |
若要进一步修改Fluentd配置,下载https://raw.githubusercontent.com/logzio/logzio-k8s/master/configmap.yaml%EF%BC%8C%E5%9C%A8%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E6%89%93%E5%BC%80%E5%B9%B6%E8%BF%9B%E8%A1%8C%E6%89%80%E9%9C%80%E6%9B%B4%E6%94%B9%E3%80%82
4. 部署守护进程集
对于RBAC守护进程集:
shellkubectl apply -f /path/to/logzio-daemonset-rbac.yaml -f /path/to/configmap.yaml
对于非RBAC守护进程集:
shellkubectl apply -f /path/to/logzio-daemonset.yaml -f /path/to/configmap.yaml
对于containerd运行时:
shellkubectl apply -f /path/to/logzio-daemonset-containerd.yaml -f /path/to/configmap.yaml
5. 在Logz.io中查看日志
等待一段时间让日志从系统传输到Logz.io,然后打开Kibana。
如果仍未看到日志,请参见日志传输故障排除。
要抑制Fluentd系统消息,在Kubernetes环境中将FLUENTD_SYSTEMD_CONF环境变量设置为disable。
默认情况下,最新镜像会启动prometheus插件以监控Fluentd。可通过在Kubernetes配置中将FLUENTD_PROMETHEUS_CONF环境变量设置为disable来禁用prometheus输入插件。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务