본문 바로가기
Linux

fluentd-mysql 연동하기 ubuntu22.04

by IT너구리실장 2024. 1. 2.
반응형

  • OS - ubuntu22.04 에서 진행

fluentd, grafana 설치 및 설정

 

 

Grafana, InfluxDB, Fluentd, 모니터링, 로그 수집 및 시각화 Ubuntu22.04

시스템 로그를 수집하여 저장하고 시각화 해보려고 한다. Fluentd 플루언트디 용도 다양한 소스에서 로그 데이터를 수집하고 여러 목적지로 전송하기 위한 오픈 소스 데이터 수집 에이전트 장점

it-racoon.tistory.com


Fluentd 서비스 설정

  • 서비스파일 작성
vi /etc/systemd/system/fluentd.service

### 아래 내용 작성

[Unit]
Description=Fluentd
Documentation=http://www.fluentd.org/
Wants=network-online-target
After=network-online-target


[Service]
Type=forking
### 본인 계정
User=user
Group=user
### 본인 경로에 맞게 설정
ExecStart=/home/user/.local/share/gem/ruby/3.0.0/bin/fluentd -c /home/user/fluent/fluent.conf -o /home/user/fluent/fluent.log -d /home/user/fluent/fluent.pid

StandardOutput=journal
StandardError=inherit
TimeoutStartSec=30
TimeoutStopSec=0
KillSignal=SIGTERM
KillMode=process
SendSIGKILL=no
SuccessExitStatus=143

Restart=on-failure
RestartSec=3s
StartLimitIntervalSec=90s
StartLimitBurst=5

[Install]
WantedBy=multi-user.target
  • 서비스 실행
systemctl daemon-reload
sudo systemctl start fluentd.service
sudo systemctl enable fluentd.service

fluent.conf 설정

  • mysql 플러그인 설치 및 사용법 documentation 참조

https://rubygems.org/gems/fluent-plugin-mysql-bulk

apt-get install libmysqlclient-dev
gem install fluent-plugin-mysql

 

# 소스블록 설정
# UDP message 를 8000 포트로 받는 설정

<source>
  @type udp
  port 8000
  format none
  #tag로 라우팅
  tag STAT
</source>

# 필터블록 설정
# message에 datetime 추가

<filter STAT>
  @type record_transformer
  enable_ruby true
  <record>
    datetime ${Time.now.strftime('%Y-%m-%d %H:%M:%S')}
  </record>
</filter>

# output
# 세팅된 mysqlDB 에 insert

<match STAT.**>
  @type mysql_bulk
  host localhost
  database DBNAME
  username mysqluser
  password mysqlpass
  column_names datetime, message
  table TABLENAME
  # 메시지 모아서 insert
  flush_interval 10s
</match>


# influxDB인 경우
@type influxdb2
  url localhost:8086
  use_ssl false
  org yourorg
  token usertoken
  bucket bucketname
  flush_interval 1s
</match>

 

 

 

반응형