Upgrade to Pro — share decks privately, control downloads, hide ads and more …

レガシーシステムへのDatadog APM導入奮闘記

Masaki Takeya
November 25, 2024

レガシーシステムへのDatadog APM導入奮闘記

オンプレミス環境で稼働するUnixシステムにDatadog APMを導入する上で、直面したログ・トレース取得に関する苦労話をご紹介します。

Masaki Takeya

November 25, 2024
Tweet

Other Decks in Technology

Transcript

  1. 1 Masaki Takeya, Kyndryl CRE & SRE Leader November 20,

    2024 レガシーシステムへの 導入奮闘記
  2. 2 About Me Masaki Takeya 所属部門: 1st Line Manager of

    Advanced Delivery, Kyndryl Japan プロフェッション: Site Reliability Engineer 専門領域: Ansible, AWS, Datadog, Agile, SRE, DevOps 資格取得: 私の主成分はこちら!
  3. 4 私が担当するお客様環境のITアーキテクチャ AWS Cloud Datadog Datadog agent & tracer Synthetic

    Monitoring On-prem DC Amazon CloudWatch Metrics Logs Alarms Compute layer Data layer UI and Storage layer App Server (Unix) Database Datadog agent Datadog tracer Datadog agent Collector Datadog agent Team Notification Metrics Logs Dashboards Traces Anomalies Alert Synthetics Watchdog TM AWS Integration (CW Metrics / Events / Tags) Real User Monitoring Metrics Trace Log Fluent Bit AWS Integration (Managed Service Log) Metrics Datadog agent Trace Metrics Log
  4. 6 DatadogへのAPMトレース送信 - Unixサーバー編 - • Unix用のDatadog AgentはAPMトレース収集機能を持たないため、 別途Linuxサーバー等でDatadog Agentを構築する必要がある。

    • Linux用Agentの datadog.yaml の apm_config セクションで apm_non_local_traffic: true を設定し、別サーバーからのAPMト レースを収集できるようにする。(これにより 127.0.0.1:8126 で LISTENしていたものが *:8126 でLISTENするようになる) Datadog On-prem DC App Server (Unix) Database Datadog agent Datadog tracer Datadog agent Collector (Linux) Datadog agent Traces ## @param receiver_port - integer - optional - default: 8126 ## @env DD_APM_RECEIVER_PORT - integer - optional - default: 8126 ## The port that the trace receiver should listen on. ## Set to 0 to disable the HTTP receiver. # # receiver_port: 8126 ## @param receiver_socket - string - optional ## @env DD_APM_RECEIVER_SOCKET - string - optional ## Accept traces through Unix Domain Sockets. ## It is off by default. When set, it must point to a valid socket file. # # receiver_socket: <UNIX_SOCKET_PATH> ## @param apm_non_local_traffic - boolean - optional - default: false ## @env DD_APM_NON_LOCAL_TRAFFIC - boolean - optional - default: false ## Set to true so the Trace Agent listens for non local traffic, ## i.e if Traces are being sent to this Agent from another host/container # # apm_non_local_traffic: false datadog.yaml ファイル apm_config セクション抜粋: ← trueに変更する Trace
  5. 7 Datadogへのログ送信 - Unixサーバー編 - • Unix用のDatadog Agentはログ転送機能を持たないため、別途 Datadog APIを実行するLog

    forwarderを開発する必要がある。 • エージェント構成ディレクトリ (/etc/datadog-agent/conf.d/) に、 dd-agent ユーザーがアクセス可能な新規ディレクトリ (<CUSTOM_LOG_SOURCE>.d) をログソースごとに作成し、その 下に設定ファイル conf.yaml を作成し、収集対象ログを定義する。 Datadog On-prem DC App Server (Unix) Database Datadog agent Datadog tracer Datadog agent Log Logs Datadog Log forwarder logs: - type: file path: "<PATH_LOG_FILE>/<LOG_FILE_NAME>.log" service: "<APP_NAME>" source: "<SOURCE>"
  6. 9