Apache 파일 로그를 Filebeat가 읽고 Logstash가 GELF로 변환해 Graylog에 보내는 흐름입니다. 원본은 Filebeat·Logstash 8.12 계열의 구성 기록이며 버전을 올릴 때 입력 플러그인의 지원 설정을 다시 확인합니다. Graylog 백엔드 설치 절차와는 독립적인 수집 경로입니다.
Graylog GELF Input
Graylog에서 GELF UDP Input을 만들고 수신 주소와 포트를 설정합니다. 예시는 같은 서버의 Logstash가 127.0.0.1:52201로 보냅니다. 외부 수집이 필요하지 않으면 전체 인터페이스에 바인딩하지 않습니다.
Logstash 입력과 출력
logstash-output-gelf 플러그인을 설치하고 목록에서 확인합니다. /etc/logstash/conf.d/apache-log.conf에 아래 파이프라인을 작성합니다. Beats 입력 5044는 Filebeat가 접속하는 포트입니다.
sudo /usr/share/logstash/bin/logstash-plugin install logstash-output-gelf
/usr/share/logstash/bin/logstash-plugin list | grep gelfinput {
beats {
port => 5044
}
}
output {
gelf {
host => "127.0.0.1"
port => 52201
}
}Filebeat 파일 입력
원본의 오타 enabeld·path를 enabled·paths로 바로잡고 filestream 입력을 사용합니다. 기존 Elasticsearch output과 동시에 충돌하지 않도록 output을 확인합니다.
filebeat.inputs:
- type: filestream
id: apache-access
enabled: true
paths:
- /var/log/httpd/*access.log
output.logstash:
hosts: ["log-collector.example.com:5044"]로그 파일 패턴은 실제 이름과 일치시킵니다. 읽기 권한과 회전 후 파일 추적을 확인하고 원격 구간에는 Beats TLS 설정과 인증서를 추가합니다. 위 기본 구문만으로 통신 암호화가 설정되는 것은 아닙니다.
순서대로 확인
sudo filebeat test config
sudo filebeat test output
sudo systemctl restart logstash
sudo systemctl restart filebeat서비스 URL을 요청해 새 로그를 만든 뒤 Filebeat→Logstash→Graylog Input 순서로 추적합니다. GELF UDP 구간은 전송 보장을 제공하지 않으므로 필요한 보존 요건에 맞는 구성을 검토합니다. 로그 한 건의 원본 메시지·호스트·시각과 재시작 후 중복·누락 여부도 확인합니다.