Chronograf+Telegraf+InflexDB로 Syslog Viewer 만들기

시간 시퀀스 데이터의 시각화는 대부분 개인의 취향에 따라Grafana를 사용하기 때문에 눈치채지 못했지만 언제 Chronograf를 Syslog Viewer로 사용할 수 있을지 모르겠다.1
최근 웹UI에서 Syslog를 검색하고 열람하는 용도에는 일반적으로 Elasticsearch를 사용하는 경우가 많다고 생각합니다.다만 나는 특히 집단으로 구성된 소규모 구조가 필요 없이 더욱 간단하게 구축할 수 있다는 생각에 서둘러 자기 집 환경을 도입했다.

Syslog의 시퀀스 히스토그램이 표시됩니다.로그 메시지 검색도 정규 표현식일 수 있습니다.Severity, Facility, Hostname에서도 필터링할 수 있습니다.물론 특정 시간대의 기록만 추출할 수도 있다.

프로비저닝


서버 측에서 준비한 것은 514/udp 포트에서 클라이언트의systlog6514/tcp를 수신하고 포트로 전송하는 Rsyslog와 Chronograf,Telegraf,InflexDB입니다.
                   +------------------------------------------------+
                   |                                                |
                   |   +---------+                         server   |
+--------+ 514/udp |   |         |                                  |
| client +------------->         |                                  |
+--------+         |   |         |                                  |
                   |   | rsyslog |                                  |
+--------+ 514/udp |   |         |                                  |
| client +------------->         |                                  |
+--------+         |   |         |                                  |
                   |   +----+----+                                  |
                   |        |                                       |
                   |        | 6514/tcp                              |
                   |        |                                       |
                   |   +----v-----+  +----------+  +------------+   |
                   |   | telegraf +--> influxdb +--> chronograf |   |
                   |   +----------+  +----------+  +------------+   |
                   |                                                |
                   +------------------------------------------------+

설정


InfluxCouldChronograf,Telegraf,InflexDB를 다운로드하여 절차에 따라 설치&서비스를 시작합니다.
sudo systemctl start chronograf
sudo systemctl start telegraf
sudo systemctl start influxdb
Rsylog는 client514/udp 포트에서 수신된 syslog를 6514/tcp 포트로 전달합니다./etc/rsyslog.d/50-forward.conf 문서를 작성하여 다음과 같이 기술한다.
$ModLoad imudp
$UDPServerRun 514

$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down

*.* @@(o)127.0.0.1:6514;RSYSLOG_SyslogProtocol23Format
Telegraf는 6514/tcp 포트에서 수신한syslog를 InflexDB에 저장합니다.
편집/etc/telegraf/telegraf.conf, 다음에 필요한 부분에 대해 논평합니다.
# # Accepts syslog messages per RFC5425
[[inputs.syslog]]
#   ## Specify an ip or hostname with port - eg., tcp://localhost:6514, tcp://10.0.0.1:6514
#   ## Protocol, address and port to host the syslog receiver.
#   ## If no host is specified, then localhost is used.
#   ## If no port is specified, 6514 is used (RFC5425#section-4.1).
  server = "tcp://:6514"
Rsylog 및 Telegraf 반영 설정을 다시 시작합니다.
sudo systemctl restart rsyslog
sudo systemctl restart telegraf
여기서 끝내도록 설정합니다.아주 간단합니다.

조작 방법


위의 설정을 통해 로그 데이터를 Influmxdb에 저장하기 시작했습니다.
액세스http://<サーバーのIPアドレス>:8888/, Chronograf 확인을 시작합니다.
초기화가 시작되었기 때문에 지시에 따라 설정을 순조롭게 완성하였습니다...
클릭Log Viewer!

참고로 다음 명령을 통해 위조 로그를 건너뛰어 정확하게 수신되고 표시되는지 확인할 수 있기 때문에 아무것도 표시하지 않은 상태에서 이걸로 분할한다.
logger -n <サーバーのIPアドレス> -d test
이후 공식 사이트를 보면서 다양한 시도를 할 수 있다.
메시지 검색 등은 다소 무게를 느끼지만, 대상의 시간대를 미리 분할하면 되기 때문에 문제없다.그리고 검색은 대문자와 소문자로 나뉜다.
다음은 공식 사이트의 인용이다.
이렇게 머리를 쥐어짜서 여러 가지 일을 하다니...

특정 시간의 로그를 찾습니다...

신난다!
Release note버전 1.6에서 설치한 패턴

좋은 웹페이지 즐겨찾기