23
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ELK (Elasticsearch + Logstash + Kibana) 環境を非インターネット接続 Windows 7 に作成する

Posted at

背景

セキュリティの厳しい会社だとインターネットの接続が規制されている場合があります。そんな環境でも ELK (Elasticsearch + Logstash + Kibana) を使いたいという事があったのでメモを残しておきます。
このメモはHow to install Logstash on a Windows server with Kibana in IIS.を参考にしました。このメモでは IIS を使いませんが、それ以外のほとんどはこのページを参考にしています。

なお、おおむねメモを書き終わった後に気づきましたが、ファイルが直接ダウンロードできないことと Elasticsearch プラグインのインストール以外、インターネット接続でもそうでなくても手順に差はありませんでした…。

インストール

インストール環境

  • Windows 7 SP1 64bit 版
  • ELK は C:\srv\ に配置する前提です。適宜読み換えてください。

準備

以下のファイルをインターネット接続環境でダウンロードし何らかの方法で対象のマシンに保存します。

保存したファイルを以下の様なディレクトリ構造で展開します。
Java 8 はインストーラを起動してインストールします。デフォルトで JDK は C:\Program Files\Java\jdk1.8.0_45 にインストールされます。

C:\srv\
      └ elasticsearch\
         └ bin 等
      └ kibana\
         └ bin 等
      └ logstash\
         └ bin 等
      └ nssm\
         └ win64 等

Elasticsearch のインストール

環境変数 JAVA_HOME に JDK のインストール先を指定します。
コントロールパネル→システムとセキュリティ→システム→システムの詳細設定→詳細設定タブ→環境変数ボタン
と辿ってゆき、システム環境変数の新規を押下して

  • 変数名: JAVA_HOME
  • 変数値: C:\Program Files\Java\jdk1.8.0_45

と入力して OK を押下します。

もしクラスタ構成を組むつもりがならば C:\srv\elasticsearch\config\elasticsearch.yml を開いて

cluster.name: [任意のクラスタ名]

を設定すると良いかもしれません。他に負荷分散も Elasticsearch のみで構成出来ます。詳細はLoad Balancing Across Multiple Elasticsearch Nodesを参照してください。

この時点でコマンドプロンプトを開き C:\srv\elasticsearch\bin に移動して elasticsearch と打つと Elasitcsearch が起動し、http://localhost:9200 でアクセスできるようになりますが、ここは Windows サービスに登録し、OS 起動時に Elasticsearch も自動起動するようにします。

Windows サービスに登録するには管理者権限でコマンドプロンプトを開き C:\srv\elasticsearch\bin に移動して

service install

と打ちます。以下のようになると成功です。

elasticsearch-install.png

この時点ではまだ起動もしていないので

service manager

と打ってサービスマネージャを開き、Start ボタンを押下します。また、Startup type を Automatic にして OS 起動時に自動起動するようにします。

elasticsearch-manager.png

http://localhost:9200 にアクセスして JSON 形式のレスポンスがあることを確認しましょう。以上で Elasticsearch のインストールは完了です。
なお、プラグインのインストールについてはこのページ下部の [Elasticsearch Plugin のインストール](Elasticsearch Plugin のインストール)に記載しています。

Kibana のインストール

Kibana はコマンドプロンプトで C:\srv\kibana\bin に移動して

kibana

と打てば起動します。http://localhost:5601 にアクセスすれば Kibana をすぐに使うことができます。

Kibana を Windows サービスに登録するには nssm を使います。管理者権限でコマンドプロンプトを開き C:\srv\nssm\win64 に移動します。

nssm install kibana

として登録画面を表示し、

  • Application タブ
    • Path: C:\srv\kibana\bin\kibana.bat
    • Startup directory: C:\srv\kibana\bin
  • Details タブ
    • Display name: Kibana
    • Startup type: Automatic
  • Dependencies タブ
    • This service depends on the following system components: elasticsearch-service-x64

と入力して Install service ボタンを押下してインストールを完了します。

Logstash (Shipper) のインストール

本来なら Shipper と Elasticsearch の間には Redis をかませた方が良いようですが、このメモでは割愛します。
また、設定ファイル *.confC:\srv\logstash\config を作成して、そこに配置することにします。

例えば以下の様な内容の logstash-sample.json を用意します。

input { stdin { } } output { elasticsearch { host => localhost } }

この設定ファイルで Logstash を起動するにはコマンドプロンプトを開き C:\srv\logstash\bin に移動して

logstash agent -f ..\config\logstash-sample.conf

と打つと、以下のような画面で止まります。

logstash-startup.png

ここで試しにコマンドプロンプト画面で test と入力すると Elasticsearch にもその内容が反映されます。確認のため http://localhost:9200/_search?pretty にアクセスすると以下の様な結果が返ります。

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "logstash-2015.06.18",
      "_type" : "logs",
      "_id" : "AU4HK92CYE_QZ5I4aXei",
      "_score" : 1.0,
      "_source":{"message":"test\r","@version":"1","@timestamp":"2015-06-18T14:56:31.678Z","host":"Dev-PC"}
    } ]
  }
}

終了するには Ctrl-C を押下した後に Y を入力してください。

こうした Shipper を Windows サービスに登録するには

logstash agent -f ..\config\logstash-sample.conf

という内容の run.bat を用意して C:\srv\logstash\bin に保存します。そうしたら管理者権限のコマンドプロンプトから C:\srv\nssm\win64 に移動して

nssm install logstash

として登録画面を表示し、

  • Application タブ
    • Path: C:\srv\logstash\bin\run.bat
    • Startup directory: C:\srv\logstash\bin
  • Details タブ
    • Display name: Logstash
    • Startup type: Automatic
  • Dependencies タブ
    • This service depends on the following system components: elasticsearch-service-x64

と入力して Install service ボタンを押下してインストールを完了します。

※このメモの設定ファイルだと標準入力を Input とするためサービス化しても意味がありませんが、やり方としてはこのようになります。設定ファイルは適宜変更してください。

補足: Logstash の使用メモリを変更する

Logstash の使用メモリを変更するには C:\srv\logstash\bin\logstash.bat を開いて SETLOCAL の下部に

set LS_MIN_MEM=256m
set LS_MAX_MEM=1g

という記述を追加してください。

Elasticsearch Plugin のインストール

ローカル上のファイルからプラグインをインストールするにはコマンドプロンプトを開き C:\srv\elasticsearch\bin に移動して

plugin --url file:///path/to/plugin --install plugin-name

と打ちます。公式プラグインリストはここにあります。例えば Elasticsearch Head Plugin をインストールするには GitHub から elasticsearch-head-master.zip をダウンロードして端末に何らかの方法で保存し、

plugin --url file:///C:/Users/Dev/Downloads/elasticsearch-head-master.zip --install elasticsearch-head

と打ちます。これで http://localhost:9200/_plugin/head/ でアクセスできるようになります。ポイントはパスに含まれるバックスラッシュ "" をスラッシュ "/" に置き換えているところでしょうか。

23
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?