ManticoreSearch + Grafanaによる可視化

GrafanaでManticoreSearchのデータを可視化できようなりました！
早速ですが、やっていきます。

今回はDocker環境でManticoreSearchおよびGrafanaを構成していきます。
※後のほうで記載しているLogstashはOSにインストールしたものを利用する前提になっています。よければ前回記事を参照してください。

https://qiita.com/nw-engineer/items/7faf2c5a3b9247da22cc

https://qiita.com/nw-engineer/items/5ef6998ac8a41b8eb816


## 1. コンテナイメージ取得/ManticoreSearch事前設定
下記コマンドにて最新のDockerイメージおよびMariaDB-Clientをインストールします。
```bash
docker pull manticoresearch/manticore
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
yum -y install MariaDB-client
```

外部から接続できるようManticoreSearchを起動させます。
```bash
docker run -e EXTRA=1 --name manticore -v $(pwd)/data:/var/lib/manticore -p 9306:9306 -p 9308:9308 -d manticoresearch/manticore
```

Dockerホストから接続します。
```bash
mysql -P 9306 -u root
```

テスト用テーブルを作成します。
```sql
CREATE TABLE btc_usd_trading (
id bigint,
time timestamp,
open float,
high float,
low float,
close float
);
```

ManticoreSearchのコンテナにログインし、curlコマンドでデータを取得します。
```bash
docker exec -it manticore /bin/bash
apt update
apt install curl
curl -sSL https://gist.githubusercontent.com/donhardman/df109ba6c5e690f73198b95f3768e73f/raw/0fab3aee69d7007fad012f4e97f38901a64831fb/btc_usd_trading.sql | mysql -h0 -P9306
```


## 2. Grafanaインストール
こちらもDockerイメージから起動させます。
```bash
docker run -d --name=grafana -p 3000:3000 grafana/grafana
```

起動したコンテナホストのIP:3000でブラウザからアクセスします。ログインID/PASSの初期値はadmin/adminです。ログイン後、パスワード変更を強制されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/cffec25e-aba5-ceba-0b45-9632d433cf98.png)

## 3. データ可視化
ではいよいよ可視化です。画面中央にある「DATA SOURCES」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/88d73298-67a4-2995-2ebd-33b515bf8779.png)

MySQLを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/fee19300-c78c-e70f-ab83-9a37798061fb.png)

HostにDockerホストのIP：9308とし、Databaseは「Manticore」と入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/4b66e1bd-bf00-4715-a238-3b9af41f0eae.png)

画面右下のSave&testをクリックして、「Database Connection OK」と表示されれば無事接続できています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/6ada2f38-c9b8-b255-4182-55c20a7a7be8.png)

次にDashboardを作成します。「Add visualization」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/628fd34d-8b8f-bbc5-8518-784b0bf8d681.png)

MySQLを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/dd529b82-76da-4e63-a32e-047c2d3ea456.png)

画面右端から「Time Series」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/1b9f8d59-e978-3a73-b600-66850efb6a09.png)

Datasetから「Manticore」、Tableから「btc_use_trading」を選択し、カラムからtime,closeを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/b4c3f7c8-e426-d681-4223-ca41580d2861.png)

グラフは描画されていませんが、下記のようになっていればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/c47d0a94-7bf5-4861-bee8-6528ffae92d0.png)

それでは、次にPaloaltoのデータをTable形式で表示させています。
前回記事を参考にPaloaltoのデータを投げつけます。palo.confの投げ先だけ変更しましょう。

https://qiita.com/nw-engineer/items/5ef6998ac8a41b8eb816#4-logstash%E8%A8%AD%E5%AE%9A

データを投げつけた後は、先ほどの手順と同じようにDatasetをManticoreにしてTableを選択するとPaloのテーブルが選択できるようになりますので、必要なカラムを選択してあげます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/771cd980-8ba2-6c40-ee62-533cc16dce6c.png)

保存をすると、Dashboardからいつでも閲覧できます。これでリアルタイムにデータを可視化することが可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/9d4d7e35-09f7-1b22-7672-dbb36c208084.png)