Elasticsearchは、オープンソースソフトウェアとして利用可能なLuceneベースの分散検索サーバーです。これは、Javaで記述された全文検索エンジンであり、HTTPウェブインターフェースを備えており、JSONドキュメントをネイティブにサポートしています。 Elasticsearchは、あらゆる種類のドキュメントの検索に使用でき、スケーラブルな検索とリアルタイムの検索ソリューションを提供します。 Elasticsearchは、Mozilla、Netflix、StackExchangeなどの多くの大規模な組織で使用されています。
Graylog2は、ElasticsearchとMongoDBに基づく一元化されたログ管理およびログ分析フレームワークです。さまざまなソースからのログメッセージを分析して累積することができます。
このチュートリアルでは、Graylog2、Elasticsearch、MongoDBのインストールについて説明します。このインストールにはUbuntu15.10を使用します。
- Ubuntu15.10-64ビット
- 4 GB RAM
- ルート権限
MongoDBは、ドキュメント指向のNoSQLデータベースです。 MongoDBドキュメントスキームはJSONに似ており、BSONと呼ばれます。 MongoDBDebianリポジトリからMongoDB3をインストールします。
リポジトリを追加し、更新してインストールします:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get update
次のaptコマンドを使用してMongoDBをインストールします。
apt-get install mongodb-org
次に、mongodbを起動し、起動時に起動できるようにします:
systemctl start mongod
systemctl enable mongod
このチュートリアルで使用するすべてのアプリケーションはJavaに基づいているため、今すぐインストールする必要があります:)。 GraylogのインストールにはJava7以降が必要です。 Java 7はubuntuリポジトリで利用できるので、次のaptコマンドを使用してインストールしましょう:
apt-get install openjdk-7-jre
次に、Javaバージョンを確認します。
java -version
そして、Javaバージョンを入手する必要があります:
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
このチュートリアルでは、elasticsearchバージョン1.7をインストールします。
GPGキーをダウンロードしてシステムに追加します:
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
次に、elasticsearchリポジトリをsources.list.dディレクトリに追加し、apt-getupdateを実行します。
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list>
apt-get update
次にelasticsearchをインストールします:
sudo apt-get install elasticsearch
インストールが完了したら、Elastcisearchデーモンを起動し、起動時に起動できるようにします。
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Elastisearchのインストールが終了し、デーモンが起動しました。今がそれを構成する時です。
「/etc/elasticsearch/」ディレクトリの設定ファイルをvimで編集します:
vim /etc/elasticsearch/elasticsearch.yml
「cluster.name」の行のコメントを解除し、値を「graylog2」に変更します。
cluster.name = graylog2
動的スクリプトを無効にし、リモート実行を回避するために、本番サーバー用に以下の構成を追加します。
script.disable_dynamic: true
ファイルを保存して終了します。
次に、Elasticsearchを再起動し、curlコマンドでテストします。
systemctl restart elasticsearch
ポート9200へのカール接続を使用してElasticsearchをテストしています:
curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
次のステップは、Graylog2サーバーをインストールすることです。このインストールにはGraylog1.3.2を使用します。 wgetコマンドでgraylog2をダウンロードし、解凍してから設定します。
pwgenのインストールを開始する前に、ランダムパスワードを生成するためのpwgenが必要です。
pwgenをインストールします:
apt-get install pwgen
次に、次のコマンドを使用して新しいパスワードを生成します。
pwgen -N 1 -s 96
私の秘密のコード:
GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
以下のコマンドで新しいsha256ハッシュを生成します:
echo -n mypassword | sha256sum
これは私のパスワードです:
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
次に、/ opt /ディレクトリに移動し、wgetコマンドを使用してgraylog-serverをダウンロードします。
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgz
graylog-serverを抽出し、ディレクトリの名前をgraylog2に変更します。
tar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/
Graylog-serverがダウンロードされ、インストールに/opt/ディレクトリが使用されます。
graylog-serverを構成するには、新しいgraylogディレクトリーを作成し、graylog-serverサンプル構成ファイルを「server.conf」にコピーします。
mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
構成を編集します:
vim /etc/graylog/server/server.conf
pwgenで生成されたパスワードをpassword_secret行に貼り付けます:
password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
生成されたsha256パスワードを貼り付けます。このパスワードは、graylog管理ダッシュボードへのログインに使用されます:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Elasticsearchマルチキャスト検索を無効にし、ユニキャストホストを追加します。
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
この単一のサーバーにすべてをインストールするため、elasticsearchシャードを1に変更します。
elasticsearch_shards = 1
elasticsearch_replicas = 0
ファイルを保存して終了します。
次に、graylogディレクトリのbinファイルを実行してgraylog-serverを起動します。
cd /opt/graylog/bin/
./graylogctl start
これで、logディレクトリにgraylog-serverのログファイルが表示されます。tailコマンドで監視してください:
tail -f /opt/graylog/log/
これをログファイルに表示する必要がある場合:
Started REST API at <http://127.0.0.1:12900/>
Graylog2 up and running.
これは、graylog-serverが正しく起動されたことを意味します。
wgetコマンドを使用してgraylogWebインターフェイスを/opt/directoryにダウンロードします。
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgz
グレイログWebインターフェースを抽出し、名前を「graylog-web」に変更します。
tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/
次に、pwgenを使用してgraylog-webの新しいアプリケーションシークレットコードを生成します。
pwgen -N 1 -s 96
これが私の秘密です:
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE
graylog-webディレクトリに移動し、構成ファイルを編集します。
cd graylog-web/
vim graylog
graylog2-server.uris行に、graylog2-serverアドレスを追加します。
graylog2-server.uris="http://127.0.0.1:12900/"
application.secret行に、前に生成されたシークレットコードを貼り付けます:
application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"
ファイルを保存して終了します。
次に、graylog-webを開始します:
cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080
Graylog-webはポート8080で実行されます。
サーバーにアクセスします-http:// myipaddress:8080 /
次に、ユーザー「admin」とsha256パスワードを使用してログインします。
ElasticsearchとGraylogWebインターフェイスを備えたGraylog2サーバーがインストールされました。
Elasticsearchは、HTTPインターフェースとJSONをサポートする分散サーバー検索エンジンです。グレイログと併用すると、サーバーのすべてのログファイルを検索できます。 Graylogは、ElasticsearchとmongoDBに基づくログ管理および分析ソフトウェアです。 Elasticsearch、Graylog、MongoDBを使用して、分散ログサーバーを構築できます。