Sumologic: K8S的日志架构

日志对于帮助您了解 Kubernetes 集群内部发生的事情至关重要。尽管大多数应用程序都有某种开箱即用的原生日志记录机制,但在分布式和容器化环境(如 Kubernetes)中,用户最好使用集中式日志记录解决方案。这是因为他们需要从多个应用程序中收集不同日志格式的日志,并将它们发送到某个日志后端,以供后续存储、处理和分析。

Kubernetes 日志架构和日志选项

Kubernetes 中的 Docker 容器将日志写入stdout和stderr流。 Docker 将这些流重定向到 Kubernetes 中配置的日志记录驱动程序,以写入 JSON 格式的文件。 Kubernetes 然后通过 kubectl logs 命令向用户公开日志文件。

但是,如果从节点中永久删除 pod,则所有相应的容器及其日志也会被删除。当节点离线时也会发生同样的情况。在这种情况下,用户将无法再访问应用程序日志。为避免这种情况,容器日志应具有独立于 Pod 和节点的独立交付、存储和生命周期。 Kubernetes 不提供日志数据的原生存储解决方案。

Kubernetes 架构促进了多种管理应用程序日志的方法。需要考虑的几种常见方法是:

  • 使用在应用程序的 pod 中运行的日志边车容器。
  • 使用在每个节点上运行的节点级日志记录代理。
  • 将日志直接从应用程序内推送到某个后端。

Sumologic 集合

使用在每个节点上运行的节点级日志记录代理来协助此操作。 Sumologic 已经创建了一个 helm chart,我们可以将其安装在 Kubernetes 集群上,并且代理会将日志推送到 sumologic 收集器。

要记住的一点:Nat 网关的公共 IP 应添加到 sumologic 允许列表

helm upgrade --install my-release sumologic/sumologic \
--namespace=sumologic --set sumologic.accessId=xxxxxxxxx \
--set sumologic.accessKey=xxxxxxxxxxxxxxxxx \
--set sumologic.clusterName="kube-sb" \
--set kube-prometheus-stack.prometheusOperator.enabled=false \
--set kube-prometheus-stack.prometheus-node-exporter.service.port=9200 \
--set kube-prometheus-stack.prometheus-node-exporter.service.targetPort=9200 \
--set falco.enabled=true

参考引用

https://github.com/SumoLogic/sumologic-kubernetes-collection
https://github.com/SumoLogic/sumologic-kubernetes-collection/blob/main/deploy/docs/SideBySidePrometheus.md
https://help.sumologic.com/07Sumo-Logic-Apps/10Containers_and_Orchestration/Kubernetes/Install_the_Kubernetes_App%2C_Alerts%2C_and_view_the_Dashboards
https://help.sumologic.com/05Search/Search-Query-Language

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
说说你的看法!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容