기술나눔

일반적으로 사용되는 플러그인 및 ELfK Logstash 필터 모듈의 ELFK 배포

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ELK 필터 모듈에 일반적으로 사용되는 플러그인

Logstash 필터 모듈에 일반적으로 사용되는 플러그인:

필터: 데이터 형식화, 데이터 유형 변환, 데이터 필터링 등을 포함한 데이터 처리 계층을 나타내며 정규 표현식을 지원합니다.

  1. grok은 여러 개의 큰 텍스트 필드를 작은 필드(?<field name>정규식)로 세분화합니다. 필드 이름: 정규식과 일치하는 콘텐츠
  2. 날짜는 데이터의 시간 형식을 통합하고 형식을 지정합니다.
  3. mutate는 이벤트의 필드 이름을 바꾸고, 삭제하고, 바꾸고, 수정할 수 있습니다.예를 들어 쓸모 없는 필드를 제거하거나 사용자 정의 필드를 추가합니다.
  4. multiline은 여러 행의 데이터를 균일하게 배열하고 여러 행의 데이터를 단일 행으로 요약합니다.

GROK: 일반 캡처 플러그인

텍스트 조각 분할을 사용하여 내장된 일반 규칙과 사용자 지정 일반 규칙으로 구분된 로그 이벤트를 분할합니다.

내장 정규식 호출: %(내장 정규식: 필드 이름)
 

사용자 정의 정규식 호출: (?<필드 이름>사용자 정의 정규식)

         

multiline: 여러 행의 데이터를 통합하고 여러 행의 데이터를 단일 행으로 요약합니다.

패턴(정규식을 통한 일치 라인)
negate(false|true, 부정할지 여부. False는 부정하지 않음을 의미하며 정규식과 일치하는 줄은 what 설정에 따라 병합됩니다.
true는 부정을 의미하며 정규식과 일치하는 줄은 what의 설정에 따라 병합되지 않습니다.
what(previous|next, 이전은 위로 병합을 의미하고, 다음은 아래로 병합을 의미합니다.

date: logstash에서 수집한 로그 이벤트의 타임스탬프 @timestamp 형식을 로그의 실제 인쇄 시간으로 통일합니다.

1. 먼저 로그 시간과 인쇄 시간 필드를 분리하도록 grok 플러그인을 구성합니다.
2. 날짜 플러그인 구성에서 match를 사용하여 로그 시간 필드의 시간 형식을 일치시킵니다.
3. 그런 다음 target을 사용하여 @timestamp 필드에 출력하여 시간 형식을 통일합니다.
 

ELK 최적화된 파일비트 배포

호스트 주소이름제공하다
192.168.73.80에스01엘라스틱서치
192.168.73.100에스02엘라스틱서치
192.168.73.110에스03엘라스틱서치
192.168.73.120ngixn01nginx 키바나
192.168.73.130파일ngixn 파일비트

NGINX 설치

  1. cd /etc/yum.repos.d/
  2. 上传nginx.repo文件
  3. yum install -y nginx
  4. systemctl enable --now nginx
  5. cd /usr/share/nginx/html
  6. #准备测试页面
  7. echo '<h1>this is web page</h1>' > test.html
  8. echo '<h1>this is web2 page</h1>' > test1.html

파일비트 설치

  1. 上传软件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目录
  2. tar xf filebeat-6.7.2-linux-x86_64.tar.gz
  3. mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat

Filebeat의 기본 구성 파일을 설정합니다.

  1. cd /usr/local/filebeat
  2. cp filebeat.yml filebeat.yml.bak
  3. vim filebeat.yml
  4. filebeat.inputs:
  5. - type: log #指定 log 类型,从日志文件中读取消息
  6. enabled: true #24
  7. paths:
  8. - /var/log/nginx/access.log #28行指定监控的日志文件
  9. - /var/log/nginx/error.log
  10. tags: ["filebeat"] #设置索引标签
  11. fields: #46行可以使用 fields 配置选项设置一些参数字段添加到 output
  12. service_name: nginx
  13. log_from: 192.168.73.130
  14. --------------output-------------------
  15. (全部注释掉)
  16. ----------------Logstash output---------------------
  17. output.logstash: #162
  18. hosts: ["192.168.73.120:5044"] #164行指定 logstash 的 IP 和端口

Logstash 구성 수정

  1. cd /etc/logstash/conf.d
  2. vim filebeat.conf
  3. input {
  4. beats {
  5. port => "5044"
  6. }
  7. }
  8. #filter {}
  9. output {
  10. elasticsearch {
  11. hosts => ["192.168.73.80:9200", "192.168.73.100:9200", "192.168.73.110:9200"] #集群els地址
  12. index => "nginx-%{+yyyy.MM.dd}"
  13. }
  14. }
  15. logstash -t -f filebeat.conf #检查文件

구성 파일비트 시작

192.168.73.130

./filebeat -e -c filebeat.yml을 시작합니다.

로그스태시 시작

192.168.73.120

로그스태시 시작로그스태시 -f 파일비트.conf