ログの収集ツールである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の画面を見るとログが送信できていることが確認できます。