머리말
Logstash는 오픈 소스 로그 통합 처리 데이터 수집기로서 ELK의 L에 속하며 로그 수집 분야에서 널리 사용됩니다.
docker의 기본 로그 드라이버는 json-file 이며 각 컨테이너는 /var/lib/docker/containers/containerID/containerID-json.log를 로컬로 생성하며 로그 드라이버는 확장을 지원합니다.이 장에서는 주로 logstash Collect 사용에 대해 설명합니다. 도커 로그.
Docker에는 logstash 드라이버가 없지만 logstash의 gelf 입력 플러그인을 통해 gelf 구동 로그를 수집 할 수 있습니다.
전제
구성 파일 준비
docker-compose.yml
version: '3.7'
x-logging:
&default-logging
driver: gelf
options:
gelf-address: "udp://localhost:12201"
mode: non-blocking
max-buffer-size: 4m
tag: "kafeidou.{
{.Name}}" #配置容器的tag,以kafeidou.为前缀,容器名称为后缀,docker-compose会给容器添加副本后缀,>如 logstash_1
services:
logstash:
ports:
- 12201:12201/udp
image: docker.elastic.co/logstash/logstash:7.5.1
volumes:
- ./logstash.yml:/usr/share/logstash/config/logstash.yml
- /var/log/logstash:/var/log/logstash
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
logstash-worker:
image: docker.elastic.co/logstash/logstash:7.5.1
depends_on:
- logstash
logging:
driver: "gelf"
options:
gelf-address: "udp://localhost:12201"
logstash.yml
http.host: "0.0.0.0"
logstash.conf
input {
gelf{
use_udp => true
port_tcp => 12202
}
}
output {
file {
path => "/var/log/logstash/%{+yyyy-MM-dd-HH}/%{container_name}.log"
}
}
logstash 필요는 저장소 로그 디렉토리 및 사용 권한 부여에 준비 할 필요가 있으므로, 디렉토리 구성에 쓰기 권한이 있기 때문에.
디렉토리를 작성
mkdir /var/log/logstash
실험적인 데모를 위해 여기에서 허가를 주시고 777을 직접 승인하십시오.
chmod -R 777 /var/log/logstash
docker-compose.yml, logstash.conf 및 logstash.yml 파일의 디렉토리에서 명령을 실행하십시오.
docker-compose up -d
[root@master logstash]# docker-compose up -d
WARNING: The Docker Engine you're using is running in swarm mode.
Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.
To deploy your application across the swarm, use `docker stack deploy`.
Starting logstash_logstash_1 ... done
Starting logstash_logstash-worker_1 ... done
Logstash는 느리게 시작되고 내 실험의 효과는 약 90 초이므로 fluentd를 사용하여 로그를 수집하는 것이 더 좋습니다.
로그 디렉토리를 확인하십시오. 해당 컨테이너 로그 파일이 있어야합니다.
[root@master logstash]# ls /var/log/logstash/
2020-02-16
[root@master logstash]# ls /var/log/logstash/2020-02-16/
logstash_logstash-worker_1.log
내 파일을 직접 다운로드 할 수도 있습니다.
요약하자면
기술 선택의 경우 fluentd가 더 권장됩니다. 그 이유는 무엇입니까?
Fluentd는 더 가볍고 유연하며 현재 CNCF에 속하며 활동과 신뢰성이 향상되었습니다.
도커 로그를 수집하기 위해 logstash를 도입하는 이유는 무엇입니까?
이미 회사 나 기업에서 ELK 기술 스택을 사용하고 있다면 유창한 사람을 소개 할 필요는 없지만 계속해서 logstash를 사용하여 도커 로그를 통과합니다. 여기는 주로 공유이므로 이러한 상황에 직면 한 학생들이 하나 더 선택할 수 있습니다.
추천 자료 :
fluentd를 도커 로그 드라이버로 사용하여 로그 수집
에서 발생하는 네 개의 커피 콩 , 복제, 소스를 선언하십시오.
공개 계정 팔로우-> [Four Coffee Beans] 최신 콘텐츠 받기