LogForamt을 맞춰주는 방법은 비교적 굉장히 간단 합니다. 기존에 사용하던 LogFormat이 --log-format='%h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^' 이거였다면, 가장 앞단의 %h를 %h, 으로 변경만 해주시면 X-Forwarded 에서 IP가 2개로 출력되는 웹로그 파일을 분석할 수 있습니다.
만약 HTML으로 보고서를 출력받고 싶다면 아래와 같이 커맨드를 입력하면 됩니다. HTML을 띄우기 위해 apache가 필요하고, 저의 경우 /var/www/html/report.html 이라는 이름으로 파일을 추출하여 웹로그에서 출력 하였습니다. 브라우저를 띄우고 접속 시 httpd가 실행중인지 확인하고 http://서버IP/report.html 를 입력하여 접속하면 됩니다.
활성화된것까지 확인 했다면 filebeat setup -e 를 입력하면 초기 환경이 셋팅되는데 elasaticsearch와 커넥션이 맺어지질 않아 마지막에 에러를 발생 시키니 무시 합니다. 이후 vi 편집기를 이용해 /etc/filebeat/modules.d/apache2.yml를 연 뒤 아래 코드를 입력 해줍니다.
- module: apache2
# Access logs
access:
enabled: true
input:
fields:
server_name: test-web
log_type: apache2_access
var.paths: ["/var/log/httpd/access_log"]
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:
# Error logs
error:
enabled: true
input:
fields:
server_name: test-web
log_type: apache2_error
var.paths: ["/var/log/httpd/error_log"]
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:
filebeat 로그 수집 설정-2
vi 편집기로 /etc/filebeat/filebeat.yml 파일을 열은 후 아래를 참고하여 수집할 로그의 경로와 정보를 작성 합니다. fields의 server_name과 log_type은 이후 kibana에서 해당 키워드들을 이용하여 로그를 검색하거나 할 때 사용하므로 임의로 설정하시면 됩니다.
이 방법으로 설정할 시 위의 apache module은 필요 없으므로 filebeat modules disable apache2를 이용해 비활성화 시켜주시면 됩니다.
filebeat 마무리 설정
ELK 서버에게 전송할 로그들의 경로를 맞춰주고 server_name과 log_type을 이용해 kibana쪽에서 필터링을 할 수 있다고 하니 임의로 작성해 줍니다. 아파치 모듈 설정은 끝났으므로 vi 편집기로 /etc/filebeat/filebeat.yml 파일을 열고 filebeat 설정 파일을 수정 합니다.
초기 설정은 아래 이미지와 같이 되어 있는데, 변경할 부분은 빨간색 체크박스를 참고하여 로그 경로에 맞게 변경 하시면 됩니다.
마지막 Logstash output에 적힌 ELK-Server-IP는 ELK 서버의 IP를 작성 해주시면 됩니다. (ex. hosts: ["10.10.10.10:5044"])
이제 filebeat 서비스를 재시작하여 변경한 config들을 적용시켜주면 filebeat 설정은 끝납니다.