지금까지 ElasticStack으로 시각화에 대해

프롤로그



어느 날, 서비스를 개발·운용하고 있는 팀의 동기화에 이런 의뢰를 받았다.
「시스템으로부터 메일을 보낼 수 없는 것 같으니, 조사를 도와 주었으면 한다」
들으면, 시스템으로부터의 메일 송신은 외부의 메일 서비스를 이용하고 있어, 거기에 로그로서 정보는 나와 있지만, 텍스트인 로그로부터 정보를 추출해 오기에는 많은 노력이 걸리면(자) 일이었다.
그래서 시스템의 메일 송신 상황을 Elastic Stack을 이용하여 가시화하게 되었다.

구성




시스템의 구성은 위 그림과 같습니다.
  • 셸을 실행하여 인터넷을 통해 메일 서비스에서 로그 가져 오기
  • 정보 처리 (마스크 등) 후 파일 배치
  • Filebeat에서 파일을 읽고 Logstash로 보내기
  • Logstash에서 정보를 필드로 분할하고 Elasticsearch로 보냅니다.
  • Elasticsearch의 정보를 Kibana로 시각화

  • (이번에는 Elastic Stack을 이미 세우고 있었기 때문에 시너지하는 형태로 했지만, 불필요하다면 Filebeat와 Logstash는 없어 직접 Elasticsearch에 송신해도 가능)

    Logstash나 Elasticsearch의 설정등은 그 밖에 좋은 기사가 많이 있다고 생각하기 때문에, 이번은 할애.

    결과




    얼마나 메일 송신이 실패하고 있는지, 거동이 변화한 것 등이 일목요연.
    위 그림은 송신에 실패한 메일을 실패 원인의 분류별로 쌓아 올린 그래프이며, 원인이 하늘색이었던 것이 9/5쯤 없어져 있는 것을 알 수 있다.

    Elasticsearch에 데이터를 넣어두면, Kibana상에서 다양한 조건에서의 데이터의 추출을 간단하게 실시할 수 있으므로, 데이터의 분석이 쉬워진다. 예를 들어, 위 그림은 메일 주소를 typo하고 있어 원래 닿지 않는 데이터를 추출한 것으로, 이와 같은 원래 메일이 닿지 않는 데이터가 존재하고 있는 것을 알 수 있다.
    Elasticsearch의 데이터를 Kibana로 분석함으로써 새로운 가설을 세워 더욱 서비스 개선으로 연결할 수 있다.

    요약



    시스템의 각 곳에서 로그를 출력시켜도, 그것을 적절히 활용할 수 없는 것이 많지 않을까요. 모처럼 로그를 내고 있어도, 장해시의 원인 조사에 밖에 사용하고 있지 않다. 그러면 로그가 귀엽다.
    정보는 살려 난보. 살리기 위해서는 시각화!
    Elastic Stack을 사용하면 쉽게 시각화할 수 있습니다!

    에필로그



    Elastic Stack을 사용하여 메일 전송 상황을 시각화하여 문제를 쉽게 조사할 수 있었습니다.
    나중에 ... "이번에는 문제가 있었을 때 통보받을 수 없을까?"
    유상판의 Kibana에서는, 기계 학습과 검지 기능으로 이변을 자동적으로 감지해 주는 기능이 있는 것 같다. 그것을 이용하면, 항상 대시보드를 확인하지 않아도 이변을 알리게 된다.
    하지만 그것은 또 다른 이야기.

    좋은 웹페이지 즐겨찾기