오늘은 fluent-plugin-out-https를 만든 이야기

왜 만들었는가



나는 fluent의 로그를 Google Apps Script doPost ()에서 받고 싶다. 그리고 GAS로 그래프를 그리고 싶다! 그러나 doPost ()는 https 만 받아들입니다.

fluent 플러그인 목록 를 봐도, 아무래도 https로 출력하는 플러그인은 괜찮습니다. http는 ento의 fluent-plugin-out-http 하지만 있지만.

그래서 오늘 오후는 ento씨의 http플러그인을 folk하고 https판을 만들기로 했다. 어떻게든 움직였다. 인생 최초의 fluent 플러그인이다! 와이\(-o-)/

사용법



github에 넣었다 : fluent-plugin-out-https
td-agent/plugin 폴더에 out_https.rb 을 넣고 td-agent.conf 로 이런 느낌으로 쓰면 된다.

td-agent.conf
<match *>
  type              http
  use_ssl           true
  include_tag       true
  endpoint_url    https://localhost.local/api/
  http_method     post
  serializer      form
</match>
use_ssltrue 로 설정하면 https 통신이 된다. 로그의 각 행마다 지정한 목적지에 https로 보내준다. 또, 이벤트 로그의 프로퍼티에 fluentd 의 태그를 포함한다 include_tag 옵션도 구현했다. 이것은 나중에 GAS 협력시 사용할 예정.

fluentd > Google Apps Script 연계할 수 있어요!



fluent와 GAS의 조합은 별로 듣지 않지만, 편리하지 않을까? 주말에 만든 nginx + norikra on docker 과 Google Spreadsheet를 연계시키면



Caveats


  • 얼마 지나지 않아서 Ruby 쓴 몇 년 만이므로 버그가있을지도
  • 각 행마다 1 리퀘스트가 날아가기 때문에, norikra와 같이 집계 결과를 파라파라와 보내 오는 소스 밖에 사용할 수 없다
  • SSL 접속처의 검증은 디폴트에서는 실시하지 않는다. 코멘트 아웃하고 있는 VERIFY_PEER 를 넣어, OpenSSL::X509::DEFAULT_CERT_FILE 가 가리키는 장소에 cert.pem
  • GAS에서 사용할 때 doPost ()로받는 URL은 Google 계정으로 인증 할 수 없습니다.

    Acknowledgements


  • 대부분의 코드는 ento씨가 쓴 것입니다. ento씨 멍하니! !
  • 좋은 웹페이지 즐겨찾기