集群方式安装
内部服务
- 3个elasticsearch
- 1个logstash
- 1个kibana
- N个log-pilot(每个需要采集日志的swarm节点一个)
安装log-pilot
官网参考
https://github.com/AliyunContainerService/log-pilot
启动容器
- 目前swarm不提供privileged权限,无法使用swarm集群创建
- 需要每个宿主机单独启动pilot,这里使用host网络,尽量减少网络传输的延迟。
docker run -itd \
--name log-pilot \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /:/host:ro \
-e PILOT_TYPE=filebeat \
-e LOGGING_OUTPUT=logstash \
-e LOGSTASH_HOST=localhost \
-e LOGSTASH_PORT=5044 \
--privileged \
--restart=always \
--net=host \
registry.cn-hangzhou.aliyuncs.com/acs-sample/log-pilot:latest
使用说明
- 被收集日志的容器 需要添加相关aliyun label
docker run -it --rm -p 10080:8080 -v /usr/local/tomcat/logs --label aliyun.logs.catalina=stdout --label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt tomcat
Label说明
启动tomcat的时候,我们声明了这样下面两个,告诉log-pilot这个容器的日志位置。
--label aliyun.logs.catalina=stdout
--label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt
你还可以在应用容器上添加更多的标签
aliyun.logs.$name = $path
-
变量name是日志名称,只能包含0-9a-zA-Z_和-