[Datadog] QueryPie ์—ฐ๋™ ๊ฐ€์ด๋“œ: RSyslog ํ†ตํ•ฉ ์„ค์ •

[Datadog] QueryPie ์—ฐ๋™ ๊ฐ€์ด๋“œ: RSyslog ํ†ตํ•ฉ ์„ค์ •

image.png

1. ๊ฐœ์š”

์ด ๊ฐ€์ด๋“œ๋Š” QueryPie์˜ Syslog ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ Datadog๊ณผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ†ตํ•ฉ์„ ํ†ตํ•ด QueryPie์—์„œ ์ƒ์„ฑ๋œ ๋กœ๊ทธ์™€ ์ด๋ฒคํŠธ๋ฅผ Datadog์—์„œ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” Rsyslog ์‚ฌ์šฉ์„ ์˜ˆ์‹œ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์œผ๋‚˜, ๊ทธ ์™ธ ๋‹ค๋ฅธ ๋กœ๊ทธ ์ „์†ก ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๋™์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ Datadog ์—์„œ ์ œ๊ณตํ•˜๋Š” Log Configuration ์„ค์ •์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

image-20250310-092848.png
Logs โ†’ Log Configuration โ†’ Add a Log Source

ย 

2. ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • QueryPie ๊ด€๋ฆฌ์ž ๊ถŒํ•œ

  • Datadog ๊ณ„์ • ๋ฐ API ํ‚ค

  • Datadog Agent / Rsyslog ๋ฅผ ์„ค์น˜ํ•  Linux ์„œ๋ฒ„

3. ์—ฐ๋™ ๊ณผ์ •

3.1. Linux ์„œ๋ฒ„์— RSyslog ์„ค์น˜ ๋ฐ ์„ค์ •

3.1.1. RSyslog ์„ค์น˜

Linux ์„œ๋ฒ„์— RSyslog ์„ค์น˜:

sudo dnf update -y sudo dnf install -y rsyslog

3.1.2. RSyslog ์„ค์ •

  1. RSyslog ์„ค์ • ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค:

sudo vi /etc/rsyslog.conf
  1. TCP ๋ฐ UDP ๋ชจ๋“ˆ ๋ฐ ๋ฆฌ์Šค๋„ˆ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค:

# ํ…œํ”Œ๋ฆฟ ์ •์˜ template(name="RemoteLogFileName" type="string" string="/var/log/rsyslog/%fromhost-ip%-%$YEAR%-%$MONTH%-%$DAY%.log") # TCP/UDP๋กœ ์ˆ˜์‹ ๋œ ๋ชจ๋“  ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ๋ฃฐ ์„ค์ • module(load="imtcp") input(type="imtcp" port="1514") module(load="imudp") input(type="imudp" port="514") # ์ˆ˜์‹ ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ํ…œํ”Œ๋ฆฟ์— ๋”ฐ๋ผ ์ €์žฅ if $inputname == "imtcp" then { action(type="omfile" dynaFile="RemoteLogFileName") stop }
  1. ๋กœ๊ทธ ์ˆ˜์‹  ์‹œ ์ €์žฅํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

sudo mkdir /var/log/rsyslog
  1. /usr/lib/systemd/system/rsyslog.service ์˜ UMASK ๊ฐ’์„ 0022 ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค:

UMask=0022
  1. RSyslog ์„œ๋น„์Šค๋ฅผ (์žฌ)์‹œ์ž‘ํ•˜๊ณ  ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘๋˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

sudo systemctl restart rsyslog sudo systemctl enable rsyslog
  1. RSyslog๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

sudo systemctl status rsyslog
  1. (TCP ๊ธฐ์ค€์œผ๋กœ) ํฌํŠธ๊ฐ€ ์—ด๋ ค์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

sudo ss -tuln | grep 1514

ย 

3.2. Linux ์„œ๋ฒ„์— Datadog Agent ์„ค์น˜

3.2.1. Datadog Agent ์„ค์น˜

  1. Datadog ํŽ˜์ด์ง€์—์„œ ๋ฐœ๊ธ‰ ๋ฐ›์€ Datadog Agent ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

DD_API_KEY=$YOUR_API_KEY DD_SITE="ap1.Datadoghq.com" bash -c "$(curl -L https://install.Datadoghq.com/scripts/install_script_agent7.sh)"

($YOUR_API_KEY๋ฅผ ์‹ค์ œ Datadog API ํ‚ค๋กœ ๋Œ€์ฒดํ•˜์„ธ์š”.)

image-20250310-084754.png

3.2.2. Datadog Agent ์„ค์ •

  1. Datadog Agent ์„ค์ • ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค:

sudo vi /etc/Datadog-agent/Datadog.yaml
  1. ๋กœ๊ทธ ์ˆ˜์ง‘ ํ™œ์„ฑํ™” ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

logs_enabled: true
  1. Syslog ์„ค์ • ํŒŒ์ผ ์ƒ์„ฑ:

sudo mkdir -p /etc/Datadog-agent/conf.d/rsyslog.d sudo vi /etc/Datadog-agent/conf.d/rsyslog.d/conf.yaml
  1. ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

logs: - type: file path: /var/log/rsyslog/*.log service: rsyslog source: rsyslog sourcecategory: remote_logs tags: - environment:production - service:rsyslog_server
  1. (Optional) Rsyslog ๊ฐ€ root ๊ถŒํ•œ์œผ๋กœ log๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ Agent๋ฅผ root ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•˜๊ณ  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค:

# dd-agent ๋ฅผ root ๊ทธ๋ฃน์— ์ถ”๊ฐ€ sudo usermod -a -G root dd-agent # root ๊ทธ๋ฃน์˜ ๋กœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ์ฝ๊ธฐ ๊ถŒํ•œ ์„ค์ • sudo chmod g+rx /var/log/rsyslog
  1. Datadog Agent๋ฅผ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

sudo systemctl restart Datadog-agent
  1. Datadog Agent ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Datadog Agent ์—์„œ ๋กœ๊ทธ ํŒŒ์ผ ์ˆ˜์ง‘์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ ์ค‘์ธ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด Status: OK ๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค:

sudo Datadog-agent status ... rsyslog ------- - Type: file Path: /var/log/rsyslog/*.log Service: rsyslog Source: rsyslog Status: OK 5 files tailed out of 5 files matching Inputs: /var/log/rsyslog/172.18.0.2-2025-03-10.log /var/log/rsyslog/172.18.0.2-2025-03-07.log /var/log/rsyslog/172.18.0.2-2025-02-27.log /var/log/rsyslog/172.18.0.2-2025-02-20.log /var/log/rsyslog/172.18.0.2-2025-02-19.log Bytes Read: 621

ย 

3.3. QueryPie์—์„œ Syslog ์„ค์ • ํ™œ์„ฑํ™”

  1. QueryPie ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.

  2. General โ†’ Integrations โ†’ Syslog ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  3. Configure ํด๋ฆญ ํ›„ ์„ค์ • ์„น์…˜์„ ์ฑ„์›๋‹ˆ๋‹ค.

  4. Test Connection ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

  5. ์—ฐ๊ฒฐ์ด ์„ฑ๊ณตํ•˜๋ฉด OK ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์„ค์ •์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  6. ํ† ๊ธ€ ๋ฒ„ํŠผ์„ ON ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

4. ํ…Œ์ŠคํŠธ ๋ฐ ํ™•์ธ

  1. QueryPie์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: ๋กœ๊ทธ์ธ, DB ์ฟผ๋ฆฌ ์‹คํ–‰).

  2. Datadog ์ฝ˜์†”์—์„œ Logs > Explorer๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Rsyslog ๋กœ๊ทธ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค:

    service:rsyslog
  4. QueryPie์—์„œ ์ƒ์„ฑ๋œ ๋กœ๊ทธ๊ฐ€ Datadog์— ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

image-20250310-092046.png

5. ๋ฌธ์ œ ํ•ด๊ฒฐ

๋กœ๊ทธ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ:

  1. RSyslog๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ:

    sudo systemctl status rsyslog
  2. RSyslog๊ฐ€ ๋กœ๊ทธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ:

    sudo ls -al /var/log/rsyslog/
  3. Datadog Agent๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ:

    sudo systemctl status Datadog-agent
  4. Syslog ๋ฆฌ์Šค๋„ˆ๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธ:

    sudo ss -tuln | grep 514
  5. RSyslog ๋กœ๊ทธ์—์„œ ์˜ค๋ฅ˜ ํ™•์ธ:

    sudo journalctl -u rsyslog.service
  6. Datadog Agent ๋กœ๊ทธ ํ™•์ธ:

    sudo tail -f /var/log/Datadog/agent.log
  7. Datadog Agent์˜ Syslog ์ˆ˜์ง‘ ์ƒํƒœ ํ™•์ธ:

    sudo Datadog-agent status
  8. QueryPie ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ General โ†’ Integrations โ†’ Syslog๋กœ ์ด๋™ํ•˜์—ฌ ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ

6. ์ฐธ๊ณ  ์‚ฌํ•ญ

  • Syslog ๋ฉ”์‹œ์ง€ ํ˜•์‹์ด๋‚˜ ํ•„๋“œ ๋งคํ•‘์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋ ค๋ฉด Datadog์˜ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋Œ€๋Ÿ‰์˜ ๋กœ๊ทธ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ๊ณผ ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ ๋ คํ•˜์„ธ์š”.