CentOS7にlogstashを導入してDatadogと連携

投稿者: | 2018年10月30日

ログの収集ツールであるlogstashをCentOS7に入れ、ログ解析サービスのDatadogと連携する手順です。

logstashはjavaで動作しますので今回はCentOS7のyumリポジトリにあるopenjdk8を使うことにしました。
CentOS7のyumリポジトリにopenjdk8があったので手早くこれにした

$ yum install java

$ java -version
  openjdk version "1.8.0_191"
  OpenJDK Runtime Environment (build 1.8.0_191-b12)
  OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)


続いてlogstashのインストールです。
ElasticSearchのリポジトリを追加します。


$ rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
$ vi /etc/yum.repos.d/logstash.repo
[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

logstashをインストールします。

$ yum install logstash
$ cd /usr/share/logstash/bin/
$ ./system-install

logstashの起動設定を行います。

$ systemctl enable logstash
$ systemctl start logstash

Datadogと連携するためにはDatadogプラグインを導入する必要があるので導入します。

$ ./logstash-plugin install logstash-output-datadog_logs

ここまででlogstashのインストールが完了になります。

試しにDatadogに対してログを送ってみます。
まずは設定ファイルを記述します。
logstashの設定ファイルはconf.dの中に記述していきます。

$ vi /etc/logstash/conf.d/app.conf
input {
  file {
    path => "/var/tmp/test.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => {
      "message" => [
        "%{GREEDYDATA:message}"
      ]
    }
  }
}

output {
  if "_grokparsefailure" in [tags] {
    file { path => "/var/log/logstash/failed_events-nweq-%{+YYYYMMdd}.log" }
  } else {
    datadog_logs {
      api_key => "XXXX"
    }
  }
}

上記は「/var/tmp/test.log」のファイルをDatadogへ送信する設定ファイルにになります。
XXXXにはDatadogAPIのキーを指定します。
APIのキーはメニューのIntegrationからAPIsを選択すれば表示することができます。

logstashは再起動不要です。
設定ファイルを保存すると自動的に新しい設定を読み込んでくれます。

実際にログが送られるかテストします。
下記のコマンドでファイルにログを出力します。

$ echo '2018-10-29 14:54:37.331 hostname WARN Log4j2DemoApplication: - Hey, This is a warning!' >> /var/tmp/test.log

Datadogの画面を見るとログが送信できていることが確認できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA