Marathon
セキュリティモニタリングが使用可能です セキュリティモニタリングが使用可能です

Marathon

Agent Check Agentチェック

Supported OS: Linux Mac OS

概要

Agent の Marathon チェックを使用して、以下のことができます。

  • すべてのアプリケーションの状態と健全性を追跡し、構成されているメモリ、ディスク、CPU、インスタンスを確認し、正常および異常なタスクの数を監視できます。
  • キューに置かれたアプリケーションの数やデプロイの数を監視できます。

セットアップ

インストール

Marathon チェックは Datadog Agent パッケージに含まれています。Marathon マスターに追加でインストールする必要はありません。

コンフィギュレーション

ホストで実行中の Agent でこのチェックを構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、コンテナ化セクションを参照してください。

ホスト

メトリクスの収集
  1. Agent の構成ディレクトリのルートにある conf.d/ フォルダーの marathon.d/conf.yaml ファイルを編集します。使用可能なすべての構成オプションの詳細については、サンプル marathon.d/conf.yaml を参照してください。

    init_config:
    
    instances:
     # the API endpoint of your Marathon master; required
     - url: "https://<SERVER>:<PORT>"
       # if your Marathon master requires ACS auth
       #   acs_url: https://<SERVER>:<PORT>
    
       # the username for Marathon API or ACS token authentication
       username: "<USERNAME>"
    
       # the password for Marathon API or ACS token authentication
       password: "<PASSWORD>"

usernamepassword の関数は acs_url を構成するかどうかに依存します。構成した場合、Agent はこれらを使用して ACS に認証トークンを要求し、それを使用して Marathon API に対する認証を行います。構成しない場合、Agent は usernamepassword を使用して直接 Marathon API に対する認証を行います。

  1. Agent を再起動します
ログの収集

Agent バージョン 6.0 以降で利用可能

  1. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

    logs_enabled: true
  2. Marathon は logback を使用するため、カスタムログ形式を指定できます。Datadog では、Marathon から提供されるデフォルトの形式と Datadog 推奨の形式の 2 つの形式がサポートされ、すぐに使用できます。次の例のように、ファイルアペンダーを構成に追加し、$PATTERN$ を選択した形式に置き換えます。

    • Marathon のデフォルト形式: [%date] %-5level %message \(%logger:%thread\)%n
    • Datadog の推奨形式: %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

      <?xml version="1.0" encoding="UTF-8"?>
      
      <configuration>
       <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
       <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
           <encoder>
               <pattern>[%date] %-5level %message \(%logger:%thread\)%n</pattern>
           </encoder>
       </appender>
       <appender name="async" class="ch.qos.logback.classic.AsyncAppender">
           <appender-ref ref="stdout" />
           <queueSize>1024</queueSize>
       </appender>
       <appender name="FILE" class="ch.qos.logback.core.FileAppender">
           <file>/var/log/marathon.log</file>
           <append>true</append>
           <!-- set immediateFlush to false for much higher logging throughput -->
           <immediateFlush>true</immediateFlush>
           <encoder>
               <pattern>$PATTERN$</pattern>
           </encoder>
       </appender>
       <root level="INFO">
           <appender-ref ref="async"/>
           <appender-ref ref="FILE"/>
       </root>
      </configuration>
  3. Marathon のログの収集を開始するには、次の構成ブロックを marathon.d/conf.yaml ファイルに追加します。

    logs:
     - type: file
       path: /var/log/marathon.log
       source: marathon
       service: "<SERVICE_NAME>"
  4. Agent を再起動します

コンテナ化

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

メトリクスの収集
パラメーター
<インテグレーション名>marathon
<初期コンフィギュレーション>空白または {}
<インスタンスコンフィギュレーション>{"url": "https://%%host%%:%%port%%"}
ログの収集

Agent バージョン 6.0 以降で利用可能

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集のドキュメントを参照してください。

パラメーター
<LOG_CONFIG>{"source": "marathon", "service": "<SERVICE_NAME>"}

検証

Agent の status サブコマンドを実行し、Checks セクションで marathon を探します。

収集データ

メトリクス

marathon.apps
(gauge)
Number of applications
marathon.deployments
(gauge)
Number of running or pending deployments
marathon.backoffFactor
(gauge)
Backoff time multiplication factor for each consecutive failed task launch; tagged by app_id and version
marathon.backoffSeconds
(gauge)
Task backoff period; tagged by app_id and version
Shown as second
marathon.cpus
(gauge)
Configured CPUs for each instance of a given application
marathon.disk
(gauge)
Configured CPU for each instance of a given application
Shown as mebibyte
marathon.instances
(gauge)
Number of instances of a given application; tagged by app_id and version
marathon.mem
(gauge)
Configured memory for each instance of a given application; tagged by app_id and version
Shown as mebibyte
marathon.taskRateLimit
(gauge)
The task rate limit for a given application; tagged by app_id and version
marathon.tasksRunning
(gauge)
Number of tasks running for a given application; tagged by app_id and version
Shown as task
marathon.tasksStaged
(gauge)
Number of tasks staged for a given application; tagged by app_id and version
Shown as task
marathon.tasksHealthy
(gauge)
Number of healthy tasks for a given application; tagged by app_id and version
Shown as task
marathon.tasksUnhealthy
(gauge)
Number of unhealthy tasks for a given application; tagged by app_id and version
Shown as task
marathon.queue.size
(gauge)
Number of app offer queues
Shown as task
marathon.queue.count
(gauge)
Number of instances left to launch
Shown as task
marathon.queue.delay
(gauge)
Wait before the next launch attempt
Shown as second
marathon.queue.offers.processed
(gauge)
The number of processed offers for this launch attempt
Shown as task
marathon.queue.offers.unused
(gauge)
The number of unused offers for this launch attempt
Shown as task
marathon.queue.offers.reject.last
(gauge)
Summary of unused offers for all last offers
Shown as task
marathon.queue.offers.reject.launch
(gauge)
Summary of unused offers for the launch attempt
Shown as task

イベント

Marathon チェックには、イベントは含まれません。

サービスのチェック

marathon.can_connect:
Agent が Marathon API に接続してメトリクスを収集できない場合は、CRITICAL を返します。それ以外の場合は、OK を返します。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。