返回

iLogtail入门指南:从Kubernetes环境中采集日志到SLS

后端

日志是云原生应用程序的重要组成部分,它提供了应用程序的运行状况、错误和安全信息。通过对日志的收集和分析,可以帮助开发人员快速定位和解决问题,提高应用程序的稳定性和可靠性。

iLogtail 是阿里云日志服务 (SLS) 的采集部分,它用于收集遥测数据,例如日志、跟踪和指标。iLogtail 可以轻松地将日志从 Kubernetes 集群收集到 SLS,以便进行集中存储和分析。

在本文中,我们将介绍如何使用 iLogtail 从 Kubernetes 环境中采集日志并发送至 SLS。您将学习如何在 Kubernetes 集群中部署 iLogtail、配置日志收集规则,以及将日志发送至 SLS 进行分析和存储。

准备工作

在开始之前,您需要准备以下内容:

  • 一个 Kubernetes 集群
  • 一个阿里云账号
  • 一个 SLS 实例

部署 iLogtail

要将日志从 Kubernetes 集群收集到 SLS,您需要首先在集群中部署 iLogtail。您可以通过以下步骤进行部署:

  1. 克隆 iLogtail GitHub 仓库:
git clone https://github.com/alibaba/ilogtail.git
  1. 进入 iLogtail 目录:
cd ilogtail
  1. 构建 iLogtail 镜像:
docker build -t ilogtail .
  1. 创建 iLogtail 部署文件:
vi ilogtail-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ilogtail
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ilogtail
  template:
    metadata:
      labels:
        app: ilogtail
    spec:
      containers:
      - name: ilogtail
        image: ilogtail
        command: ["/ilogtail", "-c", "/ilogtail.conf"]
        volumeMounts:
        - name: config
          mountPath: /ilogtail.conf
          subPath: ilogtail.conf
      volumes:
      - name: config
        configMap:
          name: ilogtail-config
  1. 创建 iLogtail ConfigMap:
vi ilogtail-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: ilogtail-config
data:
  ilogtail.conf: |-
    [default]
    project=YOUR_PROJECT_NAME
    logstore=YOUR_LOGSTORE_NAME
    # endpoint 为您所在的 region 的 SLS Endpoint
    endpoint=YOUR_SLS_ENDPOINT
  1. YOUR_PROJECT_NAME 替换为您自己的阿里云项目名称,将 YOUR_LOGSTORE_NAME 替换为您自己的 SLS 日志库名称,将 YOUR_SLS_ENDPOINT 替换为您所在的 region 的 SLS Endpoint。

  2. 创建 iLogtail 部署和 ConfigMap:

kubectl create -f ilogtail-deployment.yaml
kubectl create -f ilogtail-config.yaml

配置日志收集规则

部署 iLogtail 后,您需要配置日志收集规则,以指定要收集的日志类型和来源。您可以通过以下步骤进行配置:

  1. 创建一个 ConfigMap 来存储日志收集规则:
vi log-collection-rules.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: log-collection-rules
data:
  rules.yaml: |-
    - type: kubernetes
      kubernetes:
        host: ""
        # 标签选择器用于匹配要收集日志的 Pod。
        selector:
          namespace: default
          container_name: "*"
  1. 将 ConfigMap 应用到 iLogtail 部署:
kubectl label deployment/ilogtail app=ilogtail-with-rules
kubectl annotate deployment/ilogtail-with-rules app.kubernetes.io/configmaps=log-collection-rules

验证日志收集

部署 iLogtail 并配置日志收集规则后,您可以通过以下步骤验证日志是否已正确收集:

  1. 登录 SLS 控制台:https://sls.console.aliyun.com/
  2. 选择您的项目和日志库。
  3. 在日志库中,您应该可以看到从 Kubernetes 集群收集的日志。

总结

通过本指南,您已经学会了如何使用 iLogtail 从 Kubernetes 环境中采集日志并发送至 SLS。您可以在 SLS 中对日志进行集中存储和分析,以帮助您快速定位和解决问题,提高应用程序的稳定性和可靠性。