mamori017.log

歴史的クソブログ

LogstashをインストールしてElasticsearchにデータを登録する

(2018/02/18) LogstashからElasticsearchへのデータ登録については新しい記事があります。 mamori017.hatenablog.com

前提

Elasticsearch、Kibanaがインストール済みの環境にLogstashをインストールすることを前提にしています。

Logstash

www.elastic.co

リポジトリを登録する。

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

httpsに対応したapt methodをインストールする。

$ sudo apt-get install apt-transport-https

パッケージのダウンロード元を追記する。

$ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Logstashをインストールする。

$ sudo apt-get update
$ sudo apt-get install logstash

Elasticsearchにデータを登録する

適当にログを用意する。試しにWindows IISログを/home/share/ubuntu/test.logとして保存したものを使用する。

#Software: Microsoft Internet Information Services 10.0
#Version: 1.0
#Date: 2017-04-12 01:48:53
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2017-04-12 01:51:31 127.0.0.1 GET / - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/56.0.2924.87+Safari/537.36 - 200 0 0 1280
2017-04-12 01:51:31 127.0.0.1 GET /iisstart.png - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/56.0.2924.87+Safari/537.36 http://127.0.0.1/ 200 0 0 11
2017-04-12 01:51:31 127.0.0.1 GET /favicon.ico - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/56.0.2924.87+Safari/537.36 http://127.0.0.1/ 404 0 2 2

データを取り込むための設定を行う。

$ sudo vi /etc/logstash/conf.d/pipeline.conf

pipeline.confについてはよくわかっていないので、とりあえず登録を行うファイルとファイルの読み込み開始位置の設定、登録先のElasticsearchのURLだけを記述した。

input {
    file {
        path => "/home/share/test.log"
        start_position => "beginning"
    }
}

output {
    elasticsearch {
        hosts => ["localhost:9200"]
    }
}

logstashを起動する。

$ sudo service logstash start

curl 'localhost:9200/_cat/indices?v'で登録されているか確認してみる。index項目名がlogstash-yyyy.mm.ddのデータが存在しているはず。

$ sudo curl 'localhost:9200/_cat/indices?v'
health status index               uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   logstash-2017.04.21 MgSZzLJLSdaFJfhLlUao6A   5   1          7            0     22.4kb         22.4kb
yellow open   .kibana             TjYeEr9cRZShGEaM-BAd0g   1   1          2            0      9.6kb          9.6kb

Kibanaでは取り込んだログを見ることができた。

f:id:mamori017:20170421171232p:plain

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

Ubuntu 16.04にElasticSearch 5.3.0とKibana 5.3.0をインストールする

OpenJDK

ElasticsearchはJava 8が必要になるのでOpenJDKを使用してインストールする。

$ apt-get install openjdk-8-jdk

Javaバージョンを確認する。

ubuntu@ubuntu:~$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

Elasticsearch

www.elastic.co

リポジトリを登録する。

$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

パッケージのダウンロード元を追記する。

$ echo "deb http://packages.elastic.co/elasticsearch/5.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-5.x.list

Elasticsearchをインストールする。

$ sudo apt-get update
$ sudo apt-get install elasticsearch

この時点でElasticsearchのバージョンは5.0.0-alphaになっているはずなので5.3.0にアップデートする。このアップデートをスキップした場合、ブラウザでKibanaを見たときにElasticsearchとKibanaでバージョンが違うと警告が出る。

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.deb
$ sudo dpkg -i elasticsearch-5.3.0.deb

リモート接続を許可するため、/etc/elasticsearch/elasticsearch.ymlの設定を変更する。

変更前
#network.host: "localhost"
変更後
network.host: "0.0.0.0"

Elasticsearchを開始する。

ubuntu@ubuntu:~$ sudo /etc/init.d/elasticsearch start
[ ok ] Starting elasticsearch (via systemctl): elasticsearch.service.

curl http://localhost:9200でElasticsearchが動作しているか確認したところ、curl: (7) Failed to connect to localhost port 9200 接続を拒否されましたと出力された。

blog.johtani.info

この記事によると、ElasticsearchはIPv4IPv6どちらにもバインドするようなので、IPv6を無効にするようhostsファイルを変更する。

変更前
::1 localhost
変更後
#::1 localhost

再度確認してみたところ表示されるようになった。

ubuntu@ubuntu:~$ curl "http://localhost:9200/"
{
  "name" : "EVAwQeO",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "y0uAjCj5TE2M6Z-Zw4TK9g",
  "version" : {
    "number" : "5.3.0",
    "build_hash" : "3adb13b",
    "build_date" : "2017-03-23T03:31:50.652Z",
    "build_snapshot" : false,
    "lucene_version" : "6.4.1"
  },
  "tagline" : "You Know, for Search"
}

Kibana

www.elastic.co

リポジトリを登録する。

$ sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

httpsに対応したapt methodをインストールする。

$ sudo apt-get install apt-transport-https

パッケージのダウンロード元を追記する。

$ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Kibanaをインストールする。

$ sudo apt-get update
$ sudo apt-get install kibana

リモート接続を許可するため、/etc/kibana/kibana.ymlの設定を変更する。

server.host: "0.0.0.0"

Kibanaを開始する。

ubuntu@ubuntu:~$ sudo /etc/init.d/kibana start
kibana started

ブラウザからhttp://localhost:5601にアクセスして確認する。 ここで警告が出ていなければインストールは完了。

f:id:mamori017:20170418145559p:plain

Elasticsearchが起動していなかったり、ElasticsearchとKibanaのバージョンが異なっていたりするとStatus:Redと表示される。この画面の場合はElasticsearchが起動していない場合。

f:id:mamori017:20170419102308p:plain

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

Microsoft Edgeで取得できるkeydown・keyupイベントのキーコード一覧

Microsoft Edge(38.14393.0.0)上でjQueryのkeydown、keyupイベントからキーコードを取得してみたので調べた。

キー

キーコード キー メモ
229 同時押ししないとキーコードが取得できないキーを押した場合に出力。
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
48 0
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
189 -
222 ^
220 \
192 @
219 [
187 ;
186 :
221 ]
188 ,
190 .
191 /
226 _
27 Esc
243、244 半角/全角 Shift or Ctrlと同時押しで出力。単独で229。
8 BackSpace
13 Enter
9 Tab
240 CapsLock Ctrl or Altと同時押しで出力。Shiftと同時押しで20。単独で229。
16 Shift
17 Ctrl
18 Alt
91 Windows
32 Space
28 変換 Shift or Alt or Ctrlと同時押しで出力。単独で229。
242 カタカナ/ひらがな Altと同時押しで245、246。単独で229。
93 Menu
29 無変換
45 Insert
46 Delete
36 Home
35 End
33 PageUp
34 PageDown
44 PrintScreen Keyupイベントで取得。先に別のキーが押されていないと出力されないっぽい。
145 ScrollLock
19 Pause

ファンクションキー

キーコード キー メモ
112 F1
113 F2
114 F3
115 F4
116 F5
117 F6
118 F7
119 F8
120 F9
121 F10
122 F11
123 F12

カーソル

キーコード キー メモ
37
38
39
40

テンキー

キーコード キー メモ
96 0 NumLockを押してないとInsert。
97 1 NumLockを押してないとEnd。
98 2 NumLockを押してないと↓。
99 3 NumLockを押してないとPageDown。
100 4 NumLockを押してないと←。
101 5 NumLockを押してないとClear。
102 6 NumLockを押してないと→。
103 7 NumLockを押してないとHome。
104 8 NumLockを押してないと↑。
105 9 NumLockを押してないとPageUp。
144 NumLock
106 *
107 +
109 -
110 .
111 /