데이터 파이프라인 - 로그 수집

스르륵·2022년 5월 27일
0

데이터파이프라인

목록 보기
6/10

이제 rsyslog와 collectd에서 수집한 데이터를 kafka로 보내는 설정을 해보자.

rsyslog

vi /etc/rsyslog.d/kafka-sender.conf

module(load="omkafka")
module(load="imfile")

input(type="imfile"
  File="/var/log/syslog"
  Tag="syslog"
)


template(name="outfmt" type="list" option.jsonf="on") {

property(outname="@timestamp" name="timereported" dateFormat="rfc3339" format="jsonf") property(outname="host" name="hostname" format="jsonf")

property(outname="severity" name="syslogseverity" caseConversion="upper" format="jsonf" datatype="number") property(outname="facility" name="syslogfacility" format="jsonf" datatype="number")

property(outname="syslog-tag" name="syslogtag" format="jsonf")

property(outname="source" name="app-name" format="jsonf")

property(outname="message" name="msg" format="jsonf")
}

main_queue(
  queue.workerthreads="1"      # threads to work on the queue
  queue.dequeueBatchSize="100" # max number of messages to process at once
  queue.size="10000"           # max queue size
)

action(
  broker=["192.168.65.193:9092"]
  type="omkafka"
  topic="rsyslog-logstash"
  template="outfmt"
)

먼저 rsyslog의 설정이다. /etc/rsyslog.conf에 보면 $IncludeConfig /etc/rsyslog.d/*.conf가 있으므로 rsyslog.d/kafka-sender.conf라는 파일을 새로 만들었다.

그리고 kafka output과 syslog파일을 읽어오기 위한 모듈을 import한다.
omkafka의 경우 따로 설치가 필요하다.

apt-get install rsyslog-kafka

그리고 마지막 action에서 kafka host와 보낼 토픽 이름을 적어주면 해당 카프카 토픽으로 읽어온 syslog 내용을 보내준다.

2. collectd

collectd의 경우 write_kafka 모듈을 켜주면 카프카 토픽으로 데이터를 보내준다.

vi /etc/collectd/collectd.conf

LoadPlugin write_kafka
<Plugin write_kafka>
        Property "metadata.broker.list" "192.168.65.193:9092"
        <Topic "collectd-logstash">
                Format JSON
        </Topic>
</Plugin>

간단하게 rsyslog와 collectd의 모듈을 사용하면 수집한 데이터를 카프카의 토픽으로 쉽게 보낼 수 있다.

profile
기록하는 블로그

0개의 댓글