Windows Server+Photon Server環境でも
Fluentd+Elasticsearch+Kibanaを活用して
各種情報を可視化する
Photon運営事務局 山本昇平
2016/09/13@Photon勉強会
About Me
• 氏名: 山本昇平(Syohei Yamamoto)
• 所属: GMOクラウド株式会社
• 役割: 各種ソリューションの技術担当
• 趣味: ゲームと料理
– 好きなゲーム: スプラトゥーン
• プレイ時間2,000時間、ウデマエはS+99(カンスト)
– 私にとって本日がPhoton最後の勉強会
• 私事ですが10月からはクラウド全般のR&D部門に異動となりました
• お世話になった皆様、誠にありがとうございます!
イントロダクション
イントロダクション
• 今回利用するツール
– Windows パフォーマンスモニター: 各種情報収集ツール
– Fluentd: ログ収集ツール
– Elasticsearch: 全文検索システム
– Kibana: Elasticsearchをグラフで可視化
• 目的(ゴール)
– これらツールを通してPhoton Serverの各種情報を可視化する
• 今回はCPU使用率/同時接続数(CCU)を可視化します
完成イメージ
・Photon同時接続数
・CPU使用率
…など
可視
化
完成イメージ
手順
• ざっくりとした手順
1. Photon Serverからパフォーマンスモニターに出力
2. 可視化したい項目をFluentdで収集
3. Elasticsearch+Kibanaで情報を表示
Photon Serverから
パフォーマンスモニターに出力
完成イメージ
可視
化
こ の 部 分
・Photon同時接続数
・CPU使用率
…など
パフォーマンスモニターとは
• Windows標準で搭載されている、システムの状態や動作
を計測するツール
• OSや個別のアプリケーションの情報を指定された時間
間隔で現在の値を取得できる
• カスタマイズもできる(今回は行わない)
パフォーマンスモニターとは
Photonカウンター
• Photon Serverでは各種情報をパフォーマンスモニター
に出力することができる
• パフォーマンスモニター以外に出力したい場合は、
カスタムパフォーマンスカウンターを利用して出力可能
– Graphite, InfluxDB, StatsD, NewRelic, AWS CloudWatch など
– 詳細はドキュメントサイトの Photonカウンターの項目を参照ください
– https://doc.photonengine.com/ja-
jp/onpremise/current/performance/photon-counters
Photonカウンターの
インストール
• Photon Control上からインストール可能
– PerfMon Counters → Install Countersを選択
– パフォーマンスモニターを起動する際は
Start PrefMonを選択する
パフォーマンスモニターを利用する
• パフォーマンスモニター
– 上部の緑色の+ボタンからPhoton カウンターが正しく
追加されているか確認します
Photonカウンターの確認
• Photon Socket Serverカウンター
– パフォーマンスモニター上にPhotonカウンターが
追加されています
– HTTP/TCP/UDPといったプロトコルごとに、ピア数、切断数、
メッセージ数などの情報をリアルタイムで取得することが可能
– 項目の詳細については下記URLを参照ください
• https://doc.photonengine.com/ja-jp/onpremise/v3/reference/server-
performance-counters
コマンドからも取得可能
• コマンドラインからPhoton Serverのリアルタイムな情
報を取得可能
– パフォーマンスモニターを利用しなくてもOK
– (例) Photonの各種情報をSlack上にWebhookするような
botを作ることも可能
>typeperf "Photon Socket Server: UDP(*)UDP: Peers”
"09/07/2016 14:32:38.203","0.000000","0.000000"
"09/07/2016 14:32:39.203","0.000000","0.000000"
"09/07/2016 14:32:40.203","0.000000","0.000000"
可視化したい項目をFluentdで収集
完成イメージ
可視
化
・Photon同時接続数
・CPU使用率
…など
こ の 部 分
Fluentdを使って外部サーバに送信
• Fluentdから先述のコマンドを実行することで、外部
サーバにPhoton Serverのステータスを送信できる
• 同時にWindows ServerのCPU使用率などの情報を送信
すると良い
• 送信する情報はfluent.confで設定
Windows Serverに
Fluentdをインストールする
• Rubyのインストール
– Ruby 2.3.1 x64
– DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
1. ruby dk.rb init
2. config.ymlを編集する
3. ruby dk.rb install
– http://rubyinstaller.org/downloads/
Windows Serverに
Fluentdをインストールする
• Gitのインストール
– Git for Windows 2.10.0
1. “Use Git from the Windows Command Prompt” を選択する
2. “Checkout Windows-style, commit Unix-style line endings” を選択する
– https://git-for-windows.github.io/
Windows Serverに
Fluentdをインストールする
• Fluentdのインストール
• Fluent-plugin-parserのインストール
• fluent.confの設定
> git clone https://github.com/fluent/fluentd.git
> cd fluentd
> gem install bundler
> bundle
> bundle exec rake build
> gem install pkgfluentd-0.14.2.gem -N
> gem install fluent-plugin-parser --no-ri --no-rdoc
fluent.confの設定例
<source>
type exec
command typeperf -sc 1 "Processor(_Total)% Processor Time" "Photon Socket Server: UDP(*)UDP: Peers"
keys msg
run_interval 15s
tag raw.winsvr.status
</source>
<match raw.winsvr.status>
type parser
remove_prefix raw
key_name msg
format /"(?<time>[d:./ ]*)","(?<processor__per_processor_time>[d.]*)","(?<photon__per_peers>[d.]*)"/
time_format %m/%d/%Y %H:%M:%S.%L
log_level error
</match>
<match winsvr.status>
type copy
<store>
type forward
<server>
host xxx.xxx.xxx.xxx #ここに送信先のホスト名を指定する
</server>
flush_interval 15s
</store>
</match>
Windows Serverに
Fluentdをインストールする
• 以上でWindows Server側の設定は完了
• Fluentdを起動する方法は
• Fluentdをサービスに登録する場合は
– コントロールパネル上から開始・停止が可能
> fluentd –c ./fluent.conf
> fluentd –reg-winsvc i
Elasticsearch+Kibanaで情報を表示
完成イメージ
可視
化
こ の 部 分
・Photon同時接続数
・CPU使用率
…など
Fluentdの設定
• CentOS上に下記をインストール
– Fluentd
– Elasticsearch
– Kibana
• インストール方法については、ネットに沢山転がっているので割愛
• Fluentdのfluent.confを
in_forwardとElasticsearchに合わせて設定する
fluent.confの設定例
<source winsvr.status>
type forward
</source>
<match winsvr.status>
type typecast
item_types processor__per_processor_time:integer,photon__per_peers:integer
prefix typed
</match>
<match typed.winsvr.status>
type elasticsearch
type_name winsvr_status
buffer_type memory
logstash_format true
include_tag_key true
tag_key @log_name
flush_interval 15s
</match>
Fluentdの設定
• Fluentd, Elasticsearch, Kibanaを起動する
• Kibanaのダッシュボードを設定する
– ダッシュボードの設定方法については、
ネットに沢山転がっているので割愛
完成イメージ
まとめ
• Photonの各種情報を取得する場合はPhotonカウンター
を利用すると良い
• Fluentdを使えば簡単に外部サーバに送ることが可能
• Elasticsearch+Kibanaを使えば簡単に可視化できる
最後に
• Windows ServerとPhoton Serverの環境でも、Fluentdを
使えば簡単に各種情報を可視化できることを理解頂けま
したでしょうか?
• 今回は掴みの部分だけを説明しましたが、Photonの各種
情報を取得することに興味がある方はドキュメントを参
考にして頂くか、Photonのスタッフにお尋ねください!
• 他にもっと良い方法があれば教えてください!!
Photon運営事務局からのおしらせ
今後のイベント予定
• 10/6(木)-8(土) INVEN GAME CONFERENCE(韓国)
• 10/22(土) CEDEC九州(福岡)
• その他、弊社会場にてPhotonのイベントを企画中!
ヘルプセンター
• ナレッジベース・コミニュティ(フォーラム)機能
• コンテンツは日々充実化を図っています
• https://support.photonengine.jp/hc/ja
お問い合わせ
• メールアドレス
– developer@photonengine.jp
• Webもご覧ください
– https://photonengine.jp
• ヘルプセンター
– https://support.photonengine.jp/hc/ja
最後に…
一緒に働ける仲間を
大募集中!
詳細はこちら↓
参考URL
• Windowsオンリーの環境でサーバーステータスをfluentd + Elasticsearch + Kibana で収集・可視化する – Qiita
– http://qiita.com/okahashi117/items/897e8e4f1f7c88642a61
• パフォーマンスモニタでPhoton Serverの状態を監視する – Qiita
– http://qiita.com/ikejpcw/items/e9fe70030fad2a52999a
• fluentd for WindowsをRuby 2.2で動かす – Qiita
– http://qiita.com/nurse/items/b38a7f2c084cf2b56631

Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する(2016/9/13 発表資料)

Editor's Notes

  • #28 この部分はネットにもたくさん情報があるので、重要な部分だけお話ししたいと思います。 重要な部分はFluentdのfluent.confを、Windows Server側に合わせてin_forwardの設定する必要があります。 詳細については次のページです。
  • #29 先ほど設定したCPU使用率と同時接続数を取得して、elasticsearchに対して送信する設定です。
  • #30 Kibanaのダッシュボードの設定もネットにたくさん情報があるので割愛します。 基本的にはGUIで並べるだけなので、誰でも直感的に作ることができるかと思います。
  • #33 15分という超短い枠だったので、非常に駆け足な内容になってしまいましたが、Windows ServerとPhoton Serverの環境でも、 Fluentdを使えば簡単に各種情報を可視化できることを理解頂けましたでしょうか?