ログ監視のためのGraylogをdockerで構築
ログ監視を行うためのソフトウェアを探していたところ、OSSである「Graylog」を見つけました。
「Graylog」は、ログの検索や可視化をWEB上でログ監視を行うことができる。
現在は、「Graylog Lv3」まで公開されており、ドキュメントも豊富なので構築した記録を行うことにした。
Graylogのドキュメントを元にDockerで構築
Graylogのドキュメントは、以下のサイトにて公開されております。
基本的には、このドキュメントを読むことでGraylogの内容を把握することが可能です。
ドキュメントの中には、Dockerでの構築方法も載っており、簡単に「Graylog」サーバーを構築することができます。
執筆現在である2019年8月10日では、以下のコマンドで簡単にスタートすることができるようです。
$ docker run --name mongo -d mongo:3
$ docker run --name elasticsearch \
-e "http.host=0.0.0.0" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-d docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.1
$ docker run --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201 -p 1514:1514 \
-e GRAYLOG_HTTP_EXTERNAL_URI="http://127.0.0.1:9000/" \
-d graylog/graylog:3.0
docker-composeで書いてみる
ドキュメント上には、docker-compose.ymlの内容まで公開されています。
version: '2'
services:
# MongoDB: https://hub.docker.com/_/mongo/
mongodb:
image: mongo:3
# Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/docker.html
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.1
environment:
- http.host=0.0.0.0
- transport.host=localhost
- network.host=0.0.0.0
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
# Graylog: https://hub.docker.com/r/graylog/graylog/
graylog:
image: graylog/graylog:3.0
environment:
# CHANGE ME (must be at least 16 characters)!
- GRAYLOG_PASSWORD_SECRET=somepasswordpepper
# Password: admin
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
links:
- mongodb:mongo
- elasticsearch
depends_on:
- mongodb
- elasticsearch
ports:
# Graylog web interface and REST API
- 9000:9000
# Syslog TCP
- 1514:1514
# Syslog UDP
- 1514:1514/udp
# GELF TCP
- 12201:12201
# GELF UDP
- 12201:12201/udp
注意点としては、IPアドレスが「127.0.0.1:9000」となているので、使用しているDockerサーバーのIPアドレスへ変更することに注意が必要です。
また、この書き方だと管理者ユーザーのユーザーIDとパスワードが両方とも「admin」となるので注意が必要です。
カスタム設定に関しては、ドキュメント上に書かれているので、ここでの説明は割愛。
dcoker-compose upで構築完了
ここまで来るとあとはすべてのサービスを開始するだけで 「graylog」サーバーを構築できます。
$ docker-compose up
ブラウザにて確認する場合は、「GRAYLOG_HTTP_EXTERNAL_URI」のとおり、IPアドレス + 9000ポートで開けます。
※「http://127.0.0.1:9000/」のままの場合は、dockerサーバーのIPアドレス直しましょう。
ログインは、docker-compose.ymlのとおりユーザーID「admin」のパスワード「admin」でログインできます。
以上で「graylog」の構築記録を終了。
[graylog]