<< Click to Display Table of Contents >> マニュアル > 監視システム構築ガイド > 主要機能の構築 > ロギング/トレンドグラフ > ヒストリカルデータサーバの利用 > 外部システムのログデータをODBC経由でトレンド表示する |
概要
ヒストリカルデータサーバ(ODBC)アクションを使用して、データベース上のログデータをトレンドグラフに表示する手順について説明します。
サンプルのダウンロード
このページで紹介されている作成例には、サンプルが用意されています。
サンプルは以下からダウンロードすることができます。
尚、上記のサンプルには、各DBMS用のテーブル作成DDL(logtable.sql)が含まれています。サンプルDDLは以下のフォルダに格納されています。
(サンプルフォルダ)\table_DDL
\myslq\logtable.sql
\oracle\logtable.sql
\postgresql\logtable.sql
\sqlserver\logtable.sql
また、ここで紹介する手順では、以下の環境を用いた構築手順について記載します。
OS: Windows10
DBMS: SQL Server 2017
対応可能なデータベースの種類、バージョンなどの最新情報については、弊社ホームページのFAQ「対応しているデータベース製品は何ですか?」にも掲載されています。 |
設定手順
■データベースの準備
まず、ヒストリカルデータサーバ(ODBC)アクションから接続して参照するためのデータベースを1つ用意してください。データベースの名称は自由に付与することができますが、今回は例として、「LOGGERDB」という名称のデータベースが作成されているものとします。
以下は、SQLServer Management Studioのオブジェクトエクスプローラで表示した例です。
■ログデータ参照用のテーブルについて
続いて、上記のデータベースに、ログデータが格納されているテーブルを用意してください。
テーブル名は自由に付与することができますが、今回は例として、LOGGERDBデータベースに「LOGTABLE」という名称のテーブルが作成されているものとします。
LOGTABLEテーブルには以下のフィールドを作成してください。サンプルに含まれているテーブル作成DDL(logtable.sql)を使用してテーブルを作成することもできます(※以下はSQLServerの例です)。
尚、以下のデータ型は一例です。格納されているデータの種類に応じて適切なデータ型を選択するようにしてください。
フィールド名 |
データ型 |
キー設定 |
NULL許容 |
補足 |
F01 |
datetime |
(なし) |
しない |
レコードが生成された日時です。 |
SD0008 |
int |
(なし) |
する |
数値タグを格納するための数値型のフィールドを用意します。 |
SD0009 |
int |
(なし) |
する |
同上 |
SD0010 |
int |
(なし) |
する |
同上 |
SD0011 |
int |
(なし) |
する |
同上 |
SD0012 |
int |
(なし) |
する |
同上 |
SD0013 |
int |
(なし) |
する |
同上 |
SD0014 |
int |
(なし) |
する |
同上 |
SD0015 |
int |
(なし) |
する |
同上 |
以下は、SQLServerで表示した例です。
テーブルを作成したら、テスト的に表示するためのログデータを数件、登録しておいてください。
以下は、SQLServer Management Studioを使用して1秒間隔でデータを登録した例です。
(SQLServer Management Studioによる表示例)
本サンプルには、SQLServer以外のDBMS用のテーブル作成DDL(logtable.sql)が含まれています。実際に使用するDBMSでテーブル定義を行う際の参考としてください。 |
データベース側のテーブルで定義するフィールドのデータ型の名称(例えば「INT」「INTEGER」「NUMBER」「FLOAT」「DOUBLE」など)は、DBMSの種類により差があります。アラームサーバー(ODBC)のようにあらかじめテーブルを手動で作成しておく必要のあるアクションでは、接続するDBMS側で適切なテーブル定義を行う必要があります。接続可能なDBMS毎の推奨データ型については、Appendixの「データベースとの接続設定」を参照してください。 |
PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。 |
■ヒストリカルデータサーバアクションの設定
1.ヒストリカルデータサーバ(ODBC)アクションを追加する
対象のプロジェクトを開き、Panel Serverでサーバ設定ファイルをを開いた状態にしてください。
Panel Serverの左ツリーからActionを右クリックしてメニューを表示し、「追加」「アクション」を選択してください。
アクションの追加ダイアログが表示されるので、「ヒストリカルデータサーバ(ODBC)」を選択してOKボタンをクリックします。
ツリーのアクションの下に、「A01」としてアクションが新たに追加されました。
この名称は変更することも可能ですが、今回の例ではこのまま使用します。
2.ヒストリカルデータサーバ(ODBC)アクションの設定
続いて、上記で登録したヒストリカルデータサーバ(ODBC)アクションのプロパティを開き、設定を行います。
左記は「ODBC設定」タブです。
データベースの選択から、接続するDBMSを選択してください。今回の例では「SQLServer」を選択します。
データソースには、あらかじめ用意しておいたデータベース「LOGGERDB」に接続するためのODBCデータソースを設定してください。尚、データソースの設定手順は、各DBMSとも共通的な操作により行うことができます。ODBC設定については、アクションの共通設定の「ODBC設定」の記述を参照してください。
テーブル名には、参照するテーブルを指定します。ここでは「LOGTABLE」としています。
|
PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。従って、以下で指定するテーブル名は小文字で指定するようにしてください。
(PostgreSQLの例)
|
3.ヒストリカルデータサーバ(ODBC)のフィールドを定義する
続いて、ヒストリカルデータサーバアクションに対して、フィールドの定義を行います。
左ツリーから「A01」を右クリックし、「追加」「時刻フィールド」を選択してください。
マルチビューを見ると、A01に「F01」というフィールドが追加されました。
F01フィールドのプロパティを開きます。
ODBCフィールドタブでは、以下を設定します。
名称には、本アクションとしてのフィールドの名称を指定します。ここでは「F01」としておきます。
ODBCフィールド名には、データベース上のテーブルのフィールド名を指定します。事前に準備したテーブルのフィールド名である「F01」を指定します。
|
時刻フィールドタブでは、このフィールドの日付時刻のフォーマットを詳細に定義できるようになっています。
ここではデフォルト設定のまま、「OK」ボタンをクリックして閉じてください。
|
続いて、値フィールドを定義します。このフィールドは、取り込むデータの1列につき、対応させる値フィールドを1つずつ追加する必要があります。テータベース上のテーブルのフォーマットに合わせて1つずつ追加してください。
値フィールドを追加するには、左ツリーから「A01」を右クリックし、「追加」「値フィールド」を選択してください。
すると、A01に「F02」というフィールドが追加されました。
F02フィールドのプロパティを開き、設定を行います。
ODBCフィールドタブでは、以下を設定します。
名称には、アクション側のフィールド名を指定します。ここでは「DATA1」としておきます。
ODBCフィールド名には、データベース上のテーブルのフィールド名を指定します。ここでは、事前準備したテーブルのフィールド名である「SD0008」を指定します。
|
上記と同様の手順で、テータベース上の各フィールドに対応した全ての値フィールドを1つずつ追加してください。
A01アクションの内容をマルチビューで表示すると、以下のようなフィールドが登録されていることが確認できます。
以上で設定は完了です。
動作確認
それでは、動作を確認してみましょう。
Panel Serverの画面上部にあるオンライン(黄矢印)をクリックしてください。
Panel Serverを起動したら、Panel Browserを実行してトレンドグラフ画面を表示してください。
現状、何もペンが登録されていないため、グラフには何も表示されていません。
トレンドグラフ画面の設定メニューからペン選択を表示し、ペンの追加を行ってください。
以下はペングループの設定例です。
ペン設定からデータソース選択ダイアログを表示すると、先ほどヒストリカルデータサーバ(ODBC)アクションに定義した値フィールドの名称が表示されます。
|
ペンを追加したら、トレンドグラフのリアルタイム更新のチェックを外し、グラフの開始日時にデータベース上のテーブルにデータが存在する日時を指定してください。
データベース上のテーブルに格納されているログデータが、トレンドグラフに表示される事を確認してください。