1257 字
6 分钟
自建k8s集群日志采集到阿里云sls
基于kind搭建测试集群
参考基于kind搭建测试集群搭建三主二从的kind测试集群。
配置文件
kind: ClusterapiVersion: kind.x-k8s.io/v1alpha4networking: apiServerAddress: "10.10.151.201"nodes:- role: control-plane extraPortMappings: - containerPort: 6443 hostPort: 6443 listenAddress: "10.10.151.201" protocol: tcp- role: control-plane- role: control-plane- role: worker extraPortMappings: - containerPort: 80 hostPort: 7080 listenAddress: "0.0.0.0" protocol: tcp - containerPort: 443 hostPort: 7443 listenAddress: "0.0.0.0" protocol: tcp- role: worker extraPortMappings: - containerPort: 80 hostPort: 8080 listenAddress: "0.0.0.0" protocol: tcp - containerPort: 443 hostPort: 8443 listenAddress: "0.0.0.0" protocol: tcp- role: worker extraPortMappings: - containerPort: 80 hostPort: 9080 listenAddress: "0.0.0.0" protocol: tcp - containerPort: 443 hostPort: 9443 listenAddress: "0.0.0.0" protocol: tcp创建集群
创建高可用集群命令:
sudo kind create cluster --config=huari.yaml --name huari-test --image kindest/node:v1.34.0 --retain; sudo kind export logs --name huari-test切换kubectl上下文:
sudo kubectl cluster-info --context kind-huari-test查看信息:
# 查看集群节点sudo kubectl get nodes
# 查看集群全部的podsudo kubectl get pods -A -owide删除集群:
sudo kind delete cluster --name huari-test自建K8s集群安装采集Agent
LoongCollector是阿里云日志服务(SLS)推出的新一代日志采集 Agent,是 Logtail 的升级版。本文档指导您如何在 Kubernetes 集群中安装 LoongCollector,并提供了 DaemonSet 和 Sidecar 两种安装模式。
准备工作
在安装前,请在集群节点上验证与日志服务服务端点的网络连通性,确保LoongCollector可以正常上报数据。
-
获取服务接入点:
-
登录日志服务控制台,在Project列表中,单击目标Project。
-
单击Project名称右侧的
进入项目概览页面。 -
在基础信息中找到当前Project所在地域的公网和内网Endpoint。
-
-
**执行连通性测试:**登录到将要安装LoongCollector组件的集群节点上,执行以下
curl命令。请将${Project名称}和${SLS_ENDPOINT}替换为您的实际信息。
curl https://${Project名称}.${SLS_ENDPOINT}-
查看测试结果:
-
如果命令返回
{"Error":{"Code":"OLSInvalidMethod",...}},表明您的节点与日志服务之间的网络是通畅的。说明
此测试仅验证网络层连通性。由于请求缺少必要的 API 参数,日志服务返回错误响应是预期结果。
-
如果命令超时或返回其他网络层错误(如
Connection refused),则表示网络不通,请检查节点的网络配置、安全组规则或 DNS 解析。
-
自建集群安装(DaemonSet模式)
适用场景
- 自建 IDC 机房中的 Kubernetes 集群
- 部署在其他云厂商的 Kubernetes 集群
- 跨账号或跨地域采集阿里云 ACK 集群容器日志
操作指南
- 下载并解压安装包:在安装并配置了kubectl的机器上,根据集群所在地域选择命令下载LoongCollector及其他依赖组件。
#中国地域wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.2.6/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh#海外地域wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.2.6/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh- 修改配置文件
**values.yaml**:进入loongcollector-custom-k8s-package目录,修改配置文件./loongcollector/values.yaml。
参数说明:
| 参数 | 类型 | 补充 | 是否必填 |
|---|---|---|---|
| projectName | String | Project名称,LoongCollector将上传日志到该Project中。命名规则如下: 1. 项目名称仅支持小写字母、数字和连字符(-) 2. 必须以小写字母开头,以小写字母和数字结尾 3. 名称长度为3~63个字符 | 是 |
| region | String | Project所属地域ID,请参考地域查看Project所在地域的ID。 | 是 |
| aliUid | String | Project所属的阿里云主账号ID。 | 是 |
| net | String | 日志数据传输使用的网络类型: 1. Internet(默认值):公网 2. Intranet:内网 | 是 |
| accessKeyID | String | Project所属账号的AccessKey ID。推荐使用RAM用户的AccessKey,并授予RAM用户AliyunLogFullAccess系统策略权限。 | 是 |
| accessKeySecret | String | Project所属账号的AccessKey Secret。 | 是 |
| clusterID | String | 自定义集群ID,命名只支持大小写字母、数字、短划线(-)。 | 是 |
- 执行安装脚本:在
loongcollector-custom-k8s-package目录下执行如下命令,安装LoongCollector及其他依赖组件。
bash k8s-custom-install.sh install- 验证安装结果:安装完成后,执行如下命令查看组件状态:
# 检查Pod状态kubectl get po -n kube-system | grep loongcollector-ds返回结果示例:
loongcollector-ds-44pxp 1/1 Running 0 2m45sloongcollector-ds-4dffp 1/1 Running 0 2m45sloongcollector-ds-76ns5 1/1 Running 0 2m45sloongcollector-ds-tcbvz 1/1 Running 0 2m45sloongcollector-ds-vxwr6 1/1 Running 0 2m45sloongcollector-ds-z76ct 1/1 Running 0 2m45s若组件未成功启动(非Running):
-
检查配置:请确认
values.yaml配置项是否正确。 -
检查镜像:通过如下命令查看
Events确认容器镜像是否成功拉取。
kubectl describe pod loongcollector-ds -n kube-system- 组件安装成功后,日志服务会自动创建如下资源,您可登录日志服务控制台查看。
| 资源类型 | 资源名称 | 作用 |
|---|---|---|
| Project | values.yaml文件中自定义的projectName的值 | 资源管理单元,隔离不同业务日志。 |
| 机器组 | k8s-group-${cluster_id} | 日志采集节点集合。 |
| 机器组 | k8s-group-${cluster_id}-cluster | loongcollector-cluster的机器组,主要用于指标采集场景。 |
| 机器组 | k8s-group-${cluster_id}-singleton | 单实例机器组,主要用于部分单实例采集配置。 |
| LogStore | config-operation-log重要请不要删除该LogStore。 | 用于存储LoongCollector组件中的alibaba-log-controller日志,其收费标准与普通LogStore完全相同,具体请参见按写入数据量计费模式计费项。建议不要在此LogStore下创建采集配置。 |
参考文档
自建k8s集群日志采集到阿里云sls
https://hua-ri.cn/posts/自建k8s集群日志采集到阿里云sls/ 部分信息可能已经过时









