使用阿里云可观测统一存储SLS
不管你的服务部署在阿里云还是使用混合云的架构,Loggie同样支持采集日志数据至阿里云可观测统一存储SLS。 而你只需要使用sls sink
即可。
阿里云官方文档中关于Loggie的使用请参考:使用Loggie上传日志
准备:创建SLS Project
为了使用阿里云可观测统一存储SLS,我们需要先创建一个对应的Project。 如下所示,在SLS页面中,点击创建Project
,填入project名称和对应的地域,创建完之后同步创建相应的Logstore。
然后我们可以准备一下sls sink
的配置,示例如下所示,具体可参考sls sink 配置参数:
sls sink
sink:
type: sls
name: demo
endpoint: cn-hangzhou.log.aliyuncs.com
accessKeyId: xxxx
accessKeySecret: xxxx
project: test
logstore: test1
topic: myservice
采集ECS上的日志
参考主机部署的方式,我们可以修改pipeline.yml,加上sls sink的配置即可。
Pipeline配置参考示例如下:
sls pipeline
pipelines:
- name: test
sources:
- type: file
name: demo
addonMeta: true
paths:
- /tmp/log/*.log
sink:
type: sls
endpoint: cn-hangzhou.log.aliyuncs.com
accessKeyId: ${accessKeyId}
accessKeySecret: ${accessKeySecret}
project: loggietest
logstore: demo1
topic: myservice
采集ACK Kubernetes集群的日志
和自建Kubernetes集群一样,Loggie同样可以部署在阿里云ACK的Kubernetes集群中。 我们可以根据ACK提供的kubeconfig文件,使用kubectl或者helm来部署。可参考Kubernetes部署。
请注意:
- 如果希望采集未挂载emptyDir/hostPath的Pod日志,请确保values.yaml里系统配置中
discovery.kubernetes.rootFsCollectionEnabled
设置为true。 - 配置
discovery.kubernetes.containerRuntime
为匹配的Kubernetes集群的容器运行时,默认配置为containerd。
部署完之后,和常规的Kubernetes集群下的使用姿势类似,同样可以使用ClusterLogConfig/LogConfig/Interceptor/Sink CR的方式。
ACK提供了CRD的使用页面,我们可以直接在该页面中进行创建和修改。
采集某个服务的日志示例参考如下,只需使用sls sink
即可。当然也可以使用单独创建一个sink CR存储sls sink
配置,在LogConfig中通过sinkRef引用。
logconfig
apiVersion: loggie.io/v1beta1
kind: LogConfig
metadata:
name: tomcat
namespace: default
spec:
selector:
labelSelector:
app: tomcat
type: pod
pipeline:
sources: |
- type: file
name: stdout
paths:
- stdout
- type: file
name: access
ignoreOlder: 3d
paths:
- /usr/local/tomcat/logs/*.log
sink: |
type: sls
endpoint: cn-hangzhou.log.aliyuncs.com
accessKeyId: ${accessKeyId}
accessKeySecret: ${accessKeySecret}
project: loggietest
logstore: demo1
topic: myservice
查看日志
我们可以在SLS具体的Project中查看采集的日志,如下图所示: