ダウンロード
最新バージョン : 2.1.0-RELESE
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM@Github
OpenRTM-aist GitHubサイト
ROS
Robot Operating System
Choreonoid
モーションエディタ/シミュレータ
DAQ-Middleware
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM-aist GitHubサイト
Robot Operating System
モーションエディタ/シミュレータ
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
Fluentd、Fluent Bitはログの処理や転送を行うオープンソースのソフトウェアライブラリです。
Fluentd、Fluent Bitはデータを収集するInputプラグイン、データを送信するOutputプラグインを設定できます。 Fluentd、Fluent Bitの概要図は以下のようになっています。
Inputは外部プロセスから受信、プロセス内部からのログ書き込み、CPU使用率やディスク使用率等を取得するなどで収集したデータをOutputに渡します。 Outputは受け取ったデータを外部プロセスへ送信、ファイルへ書き込み、標準出力等します。 Input、Outputはプラグインとして実装されており、プラグインを変更することでデータの収集方法や送信方法を変更できるため、以下のような様々なデータの収集方法、送信方法を選択できます。
またInputからOutputにデータを渡す前にFilterでデータの変換、追加、除外等を実行できます。
Inputにはタグが設定でき、Output、Filterにはマッチングルールを設定できます。 Output、Filerはマッチングルールに一致したタグのデータを受け取ることができます。
このページではOpenRTM-aistのFluent Loggerプラグインの使用方法を説明します。
C++版
Windows
Fluent Bitのインストール
Fluent BitのビルドにBison/Flexが必要なため適当な場所に展開して環境変数PATHに設定します。
set PATH=%WORKDIR%\win_flex_bison-2.5.24;%PATH%
OpenSSLを適当な場所に展開してください。
Windows用に修正したFluent Bitのソースコードを適当な場所に展開してPowerShellでそのフォルダに移動してください。
PowerShellで以下のコマンドを実行するとFluent Bitをビルドします。
cmake -DFLB_RELEASE=On -DFLB_TRACE=Off -DFLB_SHARED_LIB=On -DFLB_EXAMPLES=Off -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=${OpenSSL_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${FLUENTBIT_INSTALL_DIR} cmake --build . --config Release cmake --build . --target install --config Release各種ライブラリのインストール
以下のコマンドで必要なヘッダーファイルをコピーします。
$FLUENTBIT_BUILD_DIR = "${FLUENTBIT_SOURCE_DIR}\build"OpenRTM-aistのビルド
CMake実行時にFLUENTBIT_ENABLE、FLUENTBIT_ROOTのオプションを設定します。
他の手順は通常のビルド手順と同じです。
以下のコマンドでインストールしてください。
動作確認
td-agent、もしくはtd-agent-bitをインストール、起動する必要があります。
RTCの起動
rtc.confで以下のように設定する。tagの名前は適宜変更する。
RTCを実行するとログを送信する。
またはOpenRTM-aistに含まれるrtc.fluentbit_stream.confを使用して起動することもできます。
${OPENRTM_INSTALL_DIR}\2.0.0\Components\C++\Examples\vc16\ConsoleOutComp.exe -f ${OPENRTM_INSTALL_DIR}\2.0.0\ext\logger\rtc.fluentbit_stream.confUbuntu
Fluent Bitのインストール
各種ライブラリのインストール
以下のコマンドで必要なヘッダーファイルをコピーします。
export FLUENTBIT_SOURCE_DIR=${WORKSPACE}/fluent-bit-1.8.9 export FLUENTBIT_BUILD_DIR = ${FLUENTBIT_SOURCE_DIR}/build export FLUENTBIT_INSTALL_DIR=/usr/localmkdir -p ${FLUENTBIT_INSTALL_DIR}/include/lib/flb_libco cp -r ${FLUENTBIT_SOURCE_DIR}/lib/flb_libco/libco.h ${FLUENTBIT_INSTALL_DIR}/include/lib/flb_libco cp -r ${FLUENTBIT_BUILD_DIR}/include/jemalloc ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_SOURCE_DIR}/lib/msgpack-*/include/* ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_SOURCE_DIR}/lib/monkey/include/monkey ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_SOURCE_DIR}/lib/mbedtls-*/include/mbedtls ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_SOURCE_DIR}/lib/c-ares-*/include/* ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_BUILD_DIR}/lib/c-ares-*/ares_build.h ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_BUILD_DIR}/lib/c-ares-*/ares_config.h ${FLUENTBIT_INSTALL_DIR}/include/ cp -r ${FLUENTBIT_SOURCE_DIR}/lib/cmetrics/include/* ${FLUENTBIT_INSTALL_DIR}/include/ cp ${FLUENTBIT_SOURCE_DIR}/lib/flb_libco/libco.h ${FLUENTBIT_INSTALL_DIR}/include/OpenRTM-aistのビルド
CMake実行時にFLUENTBIT_ENABLE、FLUENTBIT_ROOTのオプションを設定します。
cmake -DFLUENTBIT_ENABLE=ON -DFLUENTBIT_ROOT=${FLUENTBITINSTALLDIR} ..他の手順は通常のビルド手順と同じです。
以下のコマンドでインストールしてください。
動作確認
td-agent、もしくはtd-agent-bitをインストール、起動する必要があります。
RTCの起動
rtc.confで以下のように設定する。tagの名前は適宜変更する。
RTCを実行するとログを送信する。
動作しない場合は/etc/ssl/certsから壊れたリンクを削除する。
またはOpenRTM-aistに含まれるrtc.fluentbit_stream.confを使用して起動することもできます。
${OPENRTM_INSTALL_DIR}/share/openrtm-2.0/components/c++/examples/ConsoleOutComp -f ${OPENRTM_INSTALL_DIR}/etc/logger/rtc.fluentbit_stream.confPython版
Python版のFluent LoggerプラグインはForward Outputのみに対応しています。 別にForward通信を受信するFluentd、Fluent Bitを起動して、処理して他のOutputプラグインで送信するという使い方ができます。
fluent-logger-pythonのインストール
fluent-logger-pythonのインストールが必要です。
Ubuntuの場合はsudoで実行してください。
動作確認
td-agent、もしくはtd-agent-bitをインストールする必要があります。
RTCの起動
rtc.confに以下のように記述してRTCを起動するとfluentdにログが送信されます。
manager.modules.load_pathはOpenRTM-aistをインストールしたPythonのパスによって適宜変更してください。 Ubuntuの場合は/usr/local/lib/python2.7/dist-packages/OpenRTM_aist/ext/logger/fluentlogger等になります。
fluentdでログは以下のように表示される。
2018-12-26 09:06:18.000000000 +0900 test.simpleio: {"message":"exit","time":"2018-12-26 09:06:18,841","name":"fluent.ec_worker","level":"TRACE"}メッセージの内容、名前、ログを送信した時間、ログレベルが送信される。
簡単な動作確認
OpenRTM-aistをビルド、インストールすると、Fluent Loggerプラグインの簡単な動作確認用の設定ファイルがインストールされます。
source ${OPENRTM_INSTALL_DIR}/etc/environment-setup.sh ${OPENRTM_INSTALL_DIR}/share/openrtm-2.0/components/c++/examples/ConsoleOutComp -f ${OPENRTM_INSTALL_DIR}/etc/logger/rtc.fluentbit_stream.confKibana+Elasticsearchによるログ可視化
KibanaはElastic社の開発したデータ可視化ツールです。 分析エンジンElasticSearchと連携してWebブラウザ上でグラフなどのデータ可視化ができるようになります。
OpenRTM-aistのFluent BitプラグインからElasticSearchにログを送信して、Kibanaでデータを可視化する手順を説明します。
Elasticsearchのインストール
Ubuntu 18.04環境で以下のコマンドによりElasticsearchをインストールします。 Ubuntu 18.04ではElasticsearchのバージョン次第で動作しない場合があるので、こちらで動作を確認した7.8.0をインストールします。
/etc/elasticsearch/elasticsearch.ymlを編集します。
編集後にサービスを再起動します。
メモリの不足で起動できない場合は/etc/elasticesearch/jvm.optionsを編集して調節してください。
Kibanaのインストール
以下のコマンドでKibanaをインストールします。Elasticsearchと同じバージョンを指定します。
また、/etc/kibana/kibana.ymlに以下の行を追加します。
server.hostにNICに設定されたIPアドレスを指定してください。
サービスを再起動します。
動作確認
以下のrtc.confを作成してください。
logger.enable: YES logger.log_level: INFO logger.plugins: ${OPNRTM_INSTALL_DIR}/lib/openrtm-2.0/logger/FluentBit.so logger.logstream.fluentd.input.plugin: lib logger.logstream.fluentd.input.conf.tag: myRTCs_log logger.logstream.fluentd.output0.plugin: es logger.logstream.fluentd.output0.conf.match: * logger.logstream.fluentd.output0.conf.host: 127.0.0.1 logger.logstream.fluentd.output0.conf.port: 9200 logger.logstream.fluentd.output0.conf.Index: fluentbit${OPNRTM_INSTALL_DIR}はOpenRTM-aistをインストールしたパスに置き換えてください。 host、portにElasticsearchのアドレスとポート番号を指定してください。 Indexやtagは任意の文字列を設定します。
このrtc.confを指定してRTCを起動します。
次にWebブラウザからKibanaにアクセスしてログを確認します。 http://127.0.0.1:5601にアクセスしてください。別の端末からアクセスする場合はIPアドレスを変更してください。
可視化するデータのインデックスパターンを設定します。今回の例ではrtc.confでIndexをfluentbitに指定しました。 ページが開いたら左上をクリックして表示されたメニューからManagmentのStack Managementをクリックしてください。
Stack Managementのページの左側のIndex Patternsをクリックします。
Index patternsのページのCreate Index patternボタンを押します。
Create index patternのページでIndex patternをfluentbit*に指定してNext stepボタンを押します。
Step 2でTime Filter field nameは@timestampのままCreate index patternボタンを押します。
ここからはデータを確認します。 ページ左上をクリックして、メニューからKibanaのDiscoverをクリックしてください。
Discoverの画面で左側にインデックスパターンが表示されているため、インデックスパターンをクリックして先ほど設定したfluentbit*に切り替えます。
これでログの一覧が確認できます。グラフなどで利用する手順についてはKibanaのマニュアルなどを参考にしてください。
Pythonで動作確認
OpenRTM-aist Python版で動作確認する場合はElasticsearch Loggerプラグインを使用します。 まずはelasticsearchのPythonライブラリ、ECSフォーマッタ をインストールします。elasticsearchのバージョンには注意してください。
以下のようなrtc.confを用意してESLogger.pyをロードしてください。
接続先のElasticsearchサーバーのアドレス、ポート番号、データを登録するインデックスを指定してください。
このrtc.confを指定してRTCを起動します。