집중 식 로그 분석 플랫폼 - ELK Stack - 구덩이 밟 기 모음

http://www.jianshu.com/p/2d86eafc3e94
머리말
응, 이 글 을 쓰 는 목적 은 분명 해. 바로 구 덩이 를 너무 많이 밟 아서 어디 에 기록 해 야 할 지 모 르 겠 어. 그러면 반드시 장기 적 으로 업데이트 되 고 기록 하 나 를 만 날 거 야.
문제 집
키 바 나 편
Question - K001 :Kibana 창 열기  Login is disabled because your license has expired. Please extend your license or disable Security in Elasticsearch. Answer :체험 을 설명 하 는 x - pack 기능 인증서 가 만 료 되 었 습 니 다. disable 이후 에 다시 사용 할 수 있 습 니 다.  elasticsearch.yml  추가:
xpack.security.enabled: false

리 셋 후 진행 하면 됩 니 다.Question - K002 :default index pattern 을 수정 한 후 Kibana 인터페이스의 Management 페이지 를 열 었 습 니 다. (URL 요청: http://172.16.134.3:5601/elasticsearch/packetbeat-*/_mapping/field/*?_=1490863194201&ignore_unavailable=false&allow_no_indices=false&include_defaults=true: 404 Not Found. Answer :존재 하지 않 는 elasticsearch index 를 설 정 했 기 때문에 상황 이 유사 합 니 다.https://github.com/elastic/kibana/issues/9028, default index 를 리 셋 해 야 합 니 다:
curl -XPOST 'http://${ES_HOSTNAME}:${ES_HOST_PORT}/.kibana/_update_by_query?pretty&wait_for_completion&refresh' -H 'Content-Type: application/json' -d'
{  "script": {    "inline": "ctx._source.defaultIndex = null",    "lang": "painless"
  },  "query": {    "term": {      "_type": "config"
    }
  }
}
'

Question - K003 :브 라 우 저 는 항상 데 이 터 를 표시 할 수 없 지만 링크 에서 debug 데 이 터 는 정상적으로 유 전 됩 니 다.Answer: 운영 체제 시간 문제 일 수 있 습 니 다. Kibana 의 시간 선택 은 운영 체제 의 시간 스탬프 를 바탕 으로 합 니 다.Question - K004 :ES 와 Kibana 의 X - pack 을 마 운 트 해제 한 후 Kibana 가 잘못 알 렸 습 니 다.
license information could not be obtained from elasticsearch

Answer: kibana. yml 에 설명해 야 돼 요.  xpack.security.enabled: false  。
Logstash 편
Question - L001 :입력 이 Kafka 라 고 가정 하고 채집 단 은 filebeat 입 니 다. 비트 의 관련 지 표를 어떻게 얻 습 니까? 예 를 들 어 로그 소스 hostname?Answer 라 는 문 제 는 나 를 잠시 괴 롭 혔 고 인터넷 의 해법 을 보 았 다.https://discuss.elastic.co/t/reading-beats-fields-from-kafka-input/76206/3, 그럼 세부 설정 은 대체로 수정 되 었 습 니 다.  logstash.conf  적중 하 다  filter 개:
...filter {
  json {    source => "message"
    target => "message_json"
  }  mutate {    add_field => { "${new_field_name}" => "%{[message_json][beat][hostname]}" }
  }
}
...

또 하나의 방법 은  input  세그먼트 설정:
input {
  kafka {    codec => "json"
  }
}

Question - L002 :어떻게 시간 스탬프 와 유사 한 pattern 을 분석 한 필드 를 date 형식 으로 바 꾸 어 정렬 할 수 있 습 니까?Answer: 공식 문 서 는 가능 한 한 text filed 를 사용 하여 정렬 집합 을 하지 말 라 고 명확 하 게 설명 합 니 다. 그렇지 않 으 면 대량의 메모 리 를 사용 할 것 입 니 다.https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html。오류 유형 은 다음 과 같다.
Fielddata is disabled on text fields by default. Set fielddata=true on [your_field_name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.
따라서 사용자 정의 타임 스탬프 pattern 이 분석 한 필드 를 date 형식 으로 바 꾸 려 고 합 니 다. 구체 적 인 방법 은 다음 과 같 습 니 다. Step 1. patterns 디 렉 터 리 에 새 extra 파일 을 만들어 서 사용자 정의 pattern 을 설명 하 는 데 사용 합 니 다.Step 2. logstash 의 filter 블록 에서 pattern 을 사용 하여 필드 와 일치 합 니 다:
...filter {
  grok {    patterns_dir => "./patterns"
    match => [ "message" => "%{TIMESTAMP_PYTHON:log_timestamp}" ]
  }
}
...

Step 3. logstash 의 filter 블록 에서 date 를 사용 하여 필드 를 date 형식 으로 변환 합 니 다.
...filter {
  ...
  date {    match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss,SSS" ]    target => "log_timestamp"
  }
}
...

질문 - L003: cron 로그 채집 (  /var/log/cron  ) 시, 얻 은 명령 데이터 에는 유 니 코드 인 코딩 이 포함 되 어 있 습 니 다. 예 를 들 어 실행 명령 은?  /usr/bin/tsar --cron >/dev/null 2>&1  해석 되다  /usr/bin/tsar --cron \u003e/dev/null 2\u003e\u00261. 답변: 네.  input  설정 블록 에 추가  codec => "json" 이렇게 하면 디 코딩 을 한 다음 에 해석 하여 원 하 는 결 과 를 얻 을 수 있 습 니 다. 참고 문헌: Filebeat error. Returns unicode character code instead of symbol Question - L004: ES 색인 이 만들어 진 상황 에서 logstash 해석 규칙 을 수정 하여 String 형식의 field 를 integer 로 변환 하려 고 하 였 으 나 다음 과 같이 수정 하 였 습 니 다 (참고 문헌)., ES 의 필드 형식 은 변 하지 않 았 습 니 다:
#    :  pattern      filter {
  grok { 
    match => {      "message" => "%{NUMBER:your_field_name:int}"
    }
  }
}#    :  mutate      filter {
  mutate {    convert => { "your_field_name" => "integer" }
  }
}

차 오, 왜 나 는 이 친구 와 같은 문 제 를 만 났 습 니까? How can convert field to int, floatAnswer: 우 리 는 다음 과 같은 방법 으로 먼저 logstash 에서 정상적으로 해석 되 었 는 지 확인 합 니 다.  logstash.conf  다음 설정 을 추가 합 니 다:
output {
  stdout {    codec => rubydebug
  }
}

우리  /var/log/messages  데이터 형식 이 정확 한 지 확인 합 니 다. 일반적으로 logstash 는 문제 가 없 으 며, 정상 적 인 출력 은 다음 과 같 습 니 다.
#     "your_field_name" => 1#     "your_field_name" => "1"

따라서 저 희 는 ES index 만 삭제 하면 형식 업 데 이 트 를 완성 할 수 있 습 니 다. 이 유 는 logstash 단 에서 전환 한 후에 도 ES 는 최초의 유형 에 따라 정 의 를 내 립 니 다. index 를 삭제 하려 고 합 니 다.
curl -XDELETE 'localhost:9200/%{index_prefix}-*?pretty'

모든 접두사 가 일치 하 는 index 를 삭제 해 야 합 니 다. 그렇지 않 으 면 Kibana 쪽 에서 형식 충돌 을 보고 합 니 다. Question - L005: Logstash 오류 가 ES 에 기 록 된 것 을 발 견 했 을 때 429 를 되 돌려 줍 니 다.
[2017-05-22T15:59:33,624][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 429 ({"type"=>"es_rejected_execution_exception", "reason"=>"rejected execution of org.elasticsearch.transport.TransportService$7@4469fa3b on EsThreadPoolExecutor[bulk, queue capacity = 50, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@38eb0898[Running, pool size = 12, active threads = 12, queued tasks = 56, completed tasks = 3864]]"})
[2017-05-22T15:59:34,269][ERROR][logstash.outputs.elasticsearch] Action

그리고 데이터 통 계 를 통 해 부족 한 것 을 발 견 했 습 니 다. 답변: 이것 을 주의 하 세 요. issue 에 서 는 비슷 한 문제 가 언급 되 었 습 니 다. 로그 의 설명 은 ES threadpool. bulk. quue size 가 제한 되 어 Logstash 기록 이 거부 되 었 기 때 문 입 니 다. bulk action failed 라 는 사건 에 대한 잘못된 보고 의미 가 명확 하지 않 은 문 제 는 6. X 버 전에 서 복 구 됩 니 다. 그러나 문제 자 체 를 설명 하지 않 았 습 니 다. (왜 데이터 가 부족 한 지). 관건 은 이것 이 아니 라 해결 방법 입 니 다. ES Xss = 10m 를 조정 합 니 다. Question - L006: 기본 값 을 바 꾸 고 싶 습 니 다.  @timestamp  필드 는 데이터 정렬 을 하지 않 고 로그 시간 스탬프 를 사용 합 니 다. 그러나 업무 시간 스탬프 를 사용 하여 보고 서 를 렌 더 링 할 때 데 이 터 를 불 러 오 는 것 이 매우 느 립 니 다. 예 를 들 어 이런 장면: 선택  line-chart, Y 축 선택 임 의 지표 집합, X 축 선택  Date HistogramFiled  업무 시간 스탬프 를 선택 한 경우 Interval 선택 불가  auto. 이렇게 큰 시간 에 range 가 취 합 될 때 보고 서 는 매우 느 리 고 시간 을 초과 하여 요청 을 완성 하지 못 합 니 다. 이 유 는 우리 와 같 기 때 문 입 니 다.  Interval  분 을 선택 하 십시오. 그러나 저 는 시간 경 계 를 한 달 을 선택 합 니 다. 그러면 그 려 야 할 점 이 막막 하고 자 연 스 럽 게 느 립 니 다. (사실은 한 달 경 계 를 넘 고 저 는 하늘 에 따라 점 을 그리 면 됩 니 다) 어떻게 합 니까? Answer: 업무 시간 스탬프 로 교체 합 니 다.  @timestamp 기본 업무 시간 스탬프 는 auto 를 지원 하기 때문에 다음 그림 과 같 습 니 다.
스크린 스냅숏 2017 - 05 - 23 오후 8.46.37. png
해법  date  필터 에서 다음 설정 을 진행 합 니 다:
date {      match => [ "log_timestamp", "MMM dd HH:mm:ss" ]
    }

그 중에서 MMM dd HH: mm: ss 는 업무 시간 스탬프 의 형식 입 니 다.
Filebeat 편
Question - F001: Filebeat 5.2.1 centos 7 에서 정상적으로 시작 할 수 없습니다. 오 류 는 다음 과 같 습 니 다.
p_w_picpath.png
Exiting: Could not start registrar: Error loading state: Error decoding states: EOF

답변: 유사 Filebeat Fails After Power Failure 는 정전 이나 버 전 업그레이드 후 확률 적 으로 트리거 될 수 있 습 니 다. root couse 는 이상 한 상황 에서 registry 파일 에 EOF 식별 자가 없습니다. 이 경우 registry 파일 을 삭제 해 야 시작 할 수 있 습 니 다.
rm -r registry
systemctl reset-failed filebeat
systemctl start filebeat

좋은 웹페이지 즐겨찾기