728x90
반응형

키바나를 통해 소수점으로 표시된 숫자가 안나오는 경우가 있었다.

 

처음엔 엘라스틱 서치에서 제대로 저장이 안되는 줄 알고 로그스태시에서 형변환하여 저장하도록 했다.

 

하지만 여전히 정수로만 표시되어 엘라스틱 서치 API로 조회해보니 값은 제대로 있는 것을 확인할 수 있었다.

 

키바나의 문제라 생각하고 찾아보니 설정으로 해결할 수 있었다.

 

Management > Stack Management > Advanced Settings에서 Read fields from _source 를 켜주면 된다.

참고 문헌

  1. https://discuss.elastic.co/t/kibana-suddenly-rounding-number-field-to-single-digit/276003/3
반응형

'Log' 카테고리의 다른 글

[Log] 그라파나 설정 및 API  (0) 2023.05.04
[Log] Logstash k8s로 이전하기  (0) 2023.01.26
[Log] Logstash 메모리 문제  (0) 2022.08.25
[Log] Apache Flume  (1) 2022.04.07
[Log] Grafana 이전 하기  (0) 2021.01.28
728x90
반응형

쿠버네티스에 그라파나를 스테이트풀셋으로 데이터를 보존하면서 운영했었다

그런데 스테이트풀셋을 쓰지 않는 경우와 비교해서 너무 느리거나 로그인이 풀리는 경우가 자주 있었다

 

그래서 해법을 찾아보니 cache_mode, wal을 설정하면 된다고 하여 시도해보았다

 

cache_mode는 shared, wal은 true로 변경하니 기존보다 훨씬 빨라진 것을 확인할 수 있었다

 

해당 설정은 sqlite3을 사용할 때만 가능한 것으로 cache_mode는 private, wal은 false가 기본값이다

 

또한, 그라파나 9 부터 알람 관련해서 변경이 있었다

 

기존에는 개별 패널에서 알람을 설정했다면 9 부터는 알람 발생 규칙을 작성하고 정책을 만들어야 가능하도록 변경됐다

 

그리고 알람 API도 변경이 있었는데 단순히 이전 데이터를 넣는다면 수정이 불가능한 상태로 복원됐다

 

수정이 가능하도록 하려면 Header에 X-Disable-Provenance를 빈 값이나 true로 설정하고 복원하면 된다

참고 문헌

1. https://opsverse.io/2022/12/15/grafana-sqlite-and-database-is-locked/

2. https://grafana.com/docs/grafana/latest/developers/http_api/alerting_provisioning/#span-idroute-post-alert-rulespan-create-a-new-alert-rule-_routepostalertrule

반응형

'Log' 카테고리의 다른 글

[Log] Kibana에서 소수점 숫자가 안나오는 문제  (1) 2024.01.11
[Log] Logstash k8s로 이전하기  (0) 2023.01.26
[Log] Logstash 메모리 문제  (0) 2022.08.25
[Log] Apache Flume  (1) 2022.04.07
[Log] Grafana 이전 하기  (0) 2021.01.28
728x90
반응형

기존에는 서버에 직접 로그스태시를 설치하여 카프카와 ES를 연동했다.

 

그래서 메모리 문제가 발생할 때 설정을 수정하고 재시작했었고 서버에 문제가 생기는 경우 로그 수집이 중단됐었다.

 

서버를 더 늘리면 되는데 그때마다 증설이 어려워 kubernetes를 이용해보기로 했다.

helm install -f values.yaml logstash elastic/logstash
helm upgrade -f values.yaml logstash elastic/logstash

기존에는 서버별로 수집하는 토픽을 설정했다면 쿠버네티스로 이전하면서 필터가 비슷한 경우 아니면 전부 분리할 수 있었다.

 

replica 수를 설정하여 파티션 만큼 로그스태시를 올릴 수 있어 속도 개선이나 장애 상황에 유연하게 대응할 수 있었다.

 

또한 파드별로 리소스 제한을 하여 특정 토픽에 메모리 문제가 생겨도 해당 파드만 재시작되어 다른 토픽 수집이 안됐던 것을 방지할 수 있었다.

참고 문헌

1. https://github.com/elastic/helm-charts/tree/main/logstash

반응형

'Log' 카테고리의 다른 글

[Log] Kibana에서 소수점 숫자가 안나오는 문제  (1) 2024.01.11
[Log] 그라파나 설정 및 API  (0) 2023.05.04
[Log] Logstash 메모리 문제  (0) 2022.08.25
[Log] Apache Flume  (1) 2022.04.07
[Log] Grafana 이전 하기  (0) 2021.01.28
728x90
반응형

배열에 넣은 로그를 개별 로그처럼 나누어서 볼 수 있도록 split 함수를 이용했었는데 메모리 문제(OOM)가 발생했었다.

 

그래서 해당 기능을 하는 것을 별도로 만들어서 사용하고 있었는데 다시 문제가 생겼다.

 

우선은 logstash.yml에서 pipeline.workers, pipeline.batch.size, pipeline.batch.delay 등을 조절하여 급한 불을 껐다.

 

그리고 GC도 CMS에서 G1으로 변경하여 어느 정도는 안정적으로 구동되는 걸 확인할 수 있었다.

 

그럼에도 메모리 사용량이 많아서 다시 검색해보니 split 함수 자체에 문제가 있었던 것을 알 수 있었다.

 

def register(params)
    @field = params['field']
    @target = params['target']
end

def filter(event)
    data = event.get(@field)
    event.remove(@field)
    a = []
    data.each { |x|
        e = event.clone
        e.set(@target, x)
        a << e
    }
    a
end

코드를 보면 배열에 해당하는 부분을 가져온 다음에 제거하지만 이를 JSON으로 파싱한 로그에 다시 할당하는데

 

이 로그에 최초 로그가 있어 이것이 배열의 수만큼 복사되어 발생한 문제였다.

 

JSON으로 파싱한 다음 원본 로그의 필드를 제거하고 split이 동작하도록 하여 메모리 이슈는 어느 정도 해소했다.

참고 문헌

https://discuss.elastic.co/t/how-to-split-into-multiple-events-dynamically-for-a-given-json-tried-from-various-question-in-forums/167745/9

https://github.com/logstash-plugins/logstash-filter-split/blob/main/lib/logstash/filters/split.rb#L89

반응형

'Log' 카테고리의 다른 글

[Log] 그라파나 설정 및 API  (0) 2023.05.04
[Log] Logstash k8s로 이전하기  (0) 2023.01.26
[Log] Apache Flume  (1) 2022.04.07
[Log] Grafana 이전 하기  (0) 2021.01.28
[Log] Kubernetes에 ElasticSearch 올리기  (0) 2021.01.14

+ Recent posts