re:dash!!!

ダッシュボードの生成元となるデータソース、
MySQLやTreasureData、BigQueryなどのデータベースはもちろん
Google Spreadsheetsからもデータを取得できたり、
Pythonのコードを直接実行することも可能でなんと無料!
ログ可視化に最適なダッシュボードツールですが、自分も検証がてらデビューしてみました。


■今回やりたいこと

・redashサーバをEC2で構築
・redashサーバのnginxアクセスログをS3とRedshiftに格納(fluentdで)
・redashサーバでRedshiftのDBやらを参照できること

BigQueryで実現しようと思いましたが、みんなやってるのでw
結局ログフォーマットを色々いじる上で、
どのサービスを使っても同じなのであえてRedshiftにしてみました。


■re:dashサーバの構築

https://github.com/getredash/redash/releases

・redashインストール

・80番重複エラー修正

redashはnginxで動いているので、
以下のようにデフォルトのポートを変更する必要があります。(80→8081)

・「TemplateNotFound: login.html」の対応

上記の設定をしてnginx再起動すると今度はアクセスができなくなります(私用なのかw)
なので.envにassetのpath指定を行います。

・もう一度./bootstrap.sh

redashのプロセスを一旦killして./bootstrap.shを叩きます。

・セキュリティーグループはredshiftのport 5439を付与

・ダッシュボードのログイン

admin:admin

 


■S3の作成

「Tokyo」リージョンにバケットを作成
バケットの中に「logs」フォルダを作成


■IAMの設定

redashユーザを作成
Attach Policyで「AmazonS3FullAccess」を追加してクレデンシャルをメモ


■Redshiftにクラスターの起動

とりあえずテストなので適当に。

 

・エンドポイントをメモる

 

・適当なテーブルを作る

下記のSQLを作成する


■fluentd(ラッパー)のインストールと設定(td-agent)

※yumでtd-agentをインストールする場合

・Redshitと連携するためにプラグインのインストール

※curlでtd-agentをインストールする場合

・td-agentにaccess_logの読み込み権限を付与

・nginx log formatをltdvに変更する

ログフォーマットはデフォルトだと自分でフォーマットを書く必要があるので(正規表現ツラたん)
ltsvにすれば超楽になります。

・nginxのログ確認

上記の設定をしたことでフォーマットがltsv用に変わりました。

・td-agent.conf

・td-agent起動

の前に!そのまま起動するとエラー出るので起動スクリプトを変更します。(権限の問題)

・td-agentログ確認

実際にredashに何回かアクセスすると
ログにs3とRedshiftにcopyされました〜と出るはずです。


■S3にちゃんとlogが溜まっているか確認

大丈夫そう。

 


■Redshiftのクエリが溜まっているか確認

これも大丈夫そう。

 


■redashのダッシュボードからRedshiftのDBにアクセスできるか確認

Queries > New Queryからredash DBを選択し、適当にSQL書く。

 

よし!できた!あとはVisualization Editorでグラフ化するだけ!


■まとめ

少しハマったのはテーブル内のカラムが違ったくらいでしたね。
次回はグラフ化 how to ブログします。
というか個人でredashサーバ作ってこのブログのsshアタックとか
可視化してみよう。(GIPで犯人特定的なw)
おもしろいし簡単!

参考
https://redash.io/

The following two tabs change content below.

あだちん

1989年生まれ。 ランサーズ/SRE。 2013年新卒に自宅サーバを構築し、技術ブログを立ち上げた。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズにてサーバ系のお仕事も副業で行っている。未経験によるエンジニア勉強会なども実施している。そして「脆弱性スキャナVuls」のOSS活動もしており、広報/エバンジェリスト/VulsRepo init file,chatwork通知のコントリビュータでもある。現在は分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなそうと奮闘中。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください