mamori017.log

歴史的クソブログ

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 /

Opencoverのカバレッジチェック対象を名前空間で除外する

OpenCoverでコードカバレッジを計測する対象がVB.NETのプロジェクトのとき、 テストプロジェクトとプロジェクト内のMy Projectディレクトリ配下のコードについては カバレッジの計測は不要と考えたので-filter:パラメータを使用して除外することにした。

github.com

例えば、ソリューション内にプロジェクトBuildTargetとテストプロジェクトUnitTestが存在している場合で、 BuildTargetディレクトリをカバレッジ計測の対象とし、 UnitTestディレクトリとMy Projectディレクトリ(名前空間Myのもの)をカバレッジ計測から除外するとき、 Opencoverのフィルタパラメータは-filter:"+[BuildTarget*]* -[UnitTest*]* -[*]*.My.*""を指定する。

フィルタの記述ルールについては、Usage · OpenCover/opencover Wiki · GitHubに詳細が書かれているが、 大きく以下の4点を覚えておけばある程度対応できると思う。

  • フィルタの記述がない場合は+[*]*が適用され、すべてを対象とする
  • +[○○*]*は、○○から始まる全てのアセンブリを対象とする
  • -[△△*]*は、△△から始まる全てのアセンブリを除外する
  • -[*]××は、全てのアセンブリ内で××名前空間のものを除外する

フィルタについては、除外したいキーワードだけ指定してもテスト結果は出力されないようなので注意しなければならないのと、 本来であれば、ディレクトリ単位で除外したい場合はWikiにある通り-excludedirs:パラメータを使用すべきだと思う。*1

*1:-excludedirsがうまくいかなかったので諦めた。