Logstashを用いてMS SQL ServerのデータをElasticsearchに登録するための設定方法

## 目標
Windows環境でSQLServerのデータをkibanaで見えるようにするための環境を構築すること
※kibanaの使い方等は含みません。単純にデータが登録された所までの記事になります。

## 環境+使用ツール
- Windows 10 Pro 1803 x64 jp
  - 新規インストール環境を用意
- elastic (各ツールの概要は[ここ](https://www.elastic.co/jp/products)を参照)
  - [kibana-6.3.1-windows-x86_64](https://www.elastic.co/jp/downloads/kibana)
  - [elasticsearch-6.3.1](https://www.elastic.co/jp/downloads/elasticsearch)
  - [logstash-6.3.1](https://www.elastic.co/jp/downloads/logstash)
- [SQL Server 2017 Express](https://www.microsoft.com/ja-jp/sql-server/sql-server-editions-express)
- [SQL Server Management Studio](https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017)
- [Java Runtime Environment Version 8 Update 181](https://java.com/ja/download/)
- [Microsoft SQL Server 用 JDBC Driver 6.0](https://www.microsoft.com/ja-jp/download/confirmation.aspx?id=11774)

## 手順
1. SQL Server Express のインストール
全てデフォルト設定のままインストールする
  - 「SQL Server 2017 構成マネージャー」を起動
  - 下図の「TCP/IP」を有効にする  
  ![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/dd1adaf4-af31-3b91-d3cf-316706eabc55.png)  
  ![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/38d0d34f-1ae1-3f06-cf4f-695a74bf430f.png)  
  - 「IPアドレス」タブにて、「IPALL」の「TCPポート」を1433とする  
  ![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/bf064b42-5190-6693-e00d-d34a04ff0b6e.png)  
  - 「SQL Server」のプロセスを再起動  
  右クリックメニューに「再起動」がある  
  ![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/8df68488-d64a-21d9-6cae-7c18101c320f.png)
  - 「SQL Server Browser」を起動する  
  下図のように自動起動に設定後、「SQL Server Browser」を右クリックすると「起動」することが出来る  
  ![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/9b4ea258-f577-9fb2-cd51-08da405c0dc8.png)

2. SSMS(SQL Server Management Studio) のインストール
SQLServerへのテスト用データ登録などを行うために必要

3. SSMSにてサンプルデータを登録
  - データベース : Test
  - テーブル : Table_1
  - テーブルの構成+内容 : 下図参照（参考までに... 本記事では登録内容のグラフ化までは行いません）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/b076ad84-4e90-067d-f190-b1b11f858543.png)

4. Java Runtime Environment のインストール
インストール後、下図環境変数を新規作成
![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/ab5149f1-437a-706d-3c1c-dfca7927aee7.png)

5. Microsoft SQL Server 用 JDBC Driver 6.0 を解凍し配置
今回は「C:\Program Files」に配置した
C:\Program Files\Microsoft JDBC Driver 6.0 for SQL Server\...

6. Microsoft SQL Server 用 JDBC Driver 6.0 のファイルをコピーし配置
コピー対象:C:\Program Files\Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\jpn\auth\x64\sqljdbc_auth.dll
コピー先:C:\Program Files\Java\jre1.8.0_181\bin

7. elastic(kibana, elasticsearch, logstash)を解凍し配置
今回は下図のような配置とした
![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/2c44d392-8d33-cabc-b7a8-236167eb59c9.png)

8. elasticsearchを起動
下記ファイルを実行
C:\elastic\elasticsearch-6.3.2\bin\elasticsearch.bat

9. kibanaを起動
下記ファイルを実行
C:\elastic\kibana-6.3.2-windows-x86_64\bin\kibana.bat

10. SQL Server のデータ読み込みの設定ファイルを作成
適当な名称(今回は、sampleconfig.txt)で設定ファイルを作成し、下記場所に保存
C:\elastic\logstash-6.3.2\bin
ファイルの中身

	```bash
	input {  
	  jdbc {
	  jdbc_driver_library => "C:\Program Files\Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\jpn\jre8\sqljdbc42.jar"
	  jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
	  jdbc_connection_string => "jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=Test;integratedSecurity=true;"
	  jdbc_user => "test"
	  statement => "select * from dbo.Table_1"
	  }
	}
	output {
	  elasticsearch {} 
	}
	```

11. logstashを起動(データの登録)
C:\elastic\logstash-6.3.2\bin　に移動し下記コマンドを実行
`logstash.bat -f sampleconfig.txt`

12. ブラウザ(kibana)を起動する
下記アドレスがkibanaのアドレス
http://localhost:5601
![image.png](https://qiita-image-store.s3.amazonaws.com/0/81995/daf1deab-abea-73f9-c5cc-b2e4862975d0.png)
「logstash-2018.07.25」という名称でデータが登録されているのが確認できる

## 最後に
kibana等の使い方は分からないので今後分かり次第、ポイントがあれば記事にしたいと思っています。
また、他のPCのDBからデータを取得したり「MySQL」の場合の対応などを行っていきたいと思っています。