標準フレームワークのアラームサーバをCSVからODBCに変更する

<< Click to Display Table of Contents >>

マニュアル > 監視システム構築ガイド > 主要機能の構築 > アラーム > アラームのカスタマイズ > DBを利用したアラーム構築 >

標準フレームワークのアラームサーバをCSVからODBCに変更する

概要

標準フレームワークを利用して構築された標準プロジェクトのアラーム機能では、アラームサーバー(CSV)が使用されています。ここでは、標準プロジェクトのアラーム機能を、CSVからODBCに変更する手順について説明します。

 

ここでは、標準のアラーム機能に対して以下のカスタマイズを行います。

 

カスタマイズ内容

 

データベースを用意し、アラーム用のテーブルを作成する。

ODBCドライバの設定を行う。

アラームサーバー(ODBC)アクションを追加し、設定を行う。

 

画面ライブラリの各種アラーム機能は、アラームサーバーがODBCであっても、CSVの場合と全く同じように動作します。従って、標準のアラーム機能をCSV形式からデータベースに変更したい場合は、アラームサーバーアクションを「アラームサーバー(ODBC)」に変更するのみで、画面側はそのまま利用することができます。

 

尚、ここでは例として、SQLServer2017を用いたデータベースの設定例について紹介します。

 

 

 

サンプルのダウンロード

このページで紹介されている作成例には、サンプルが用意されています。

 

サンプルは以下からダウンロードすることができます。

 

尚、上記のサンプルには、各DBMS用のテーブル作成DDL(alarm.sql)が含まれています。サンプルDDLは以下のフォルダに格納されています。

 

(プロジェクトフォルダ)\DDL_sample

\myslq\alarm.sql

\oracle\alarm.sql

\postgresql\alarm.sql

\sqlserver\alarm.sql

 

 

 

作業手順

■アラームデータ用のデータベースの準備

 

まず、アラームデータを格納するためのデータベースを1つ用意してください。データベースの名称は自由に付与することができますが、今回は例として、「ALARMDB」という名称のデータベースが作成されているものとします。

 

以下は、SQLServer Management Studioのオブジェクトエクスプローラーで表示した例です。

 

p_alarm_0264

 

尚、アラームサーバー(ODBC)アクションは、必ずしもアラームデータ用に専用のデータベースを用意する必要はありません。接続先のデータベースは、アラームデータを格納するテーブル以外の他のテーブルが混在する環境であっても特に問題はありません。

 

 

■データベースにアラームデータ用のテーブルを用意する

 

続いて、上記のデータベースに、アラームデータを格納するためのテーブルを用意してください。

テーブル名は自由に付与することができますが、今回は例として、ALARMDBデータベースに「ALARM」という名称のテーブルが作成されているものとします。

 

ALARMテーブルには以下のフィールドを作成してください。尚、サンプルに含まれているテーブル作成DDL(alarm.sql)を使用してテーブルを作成することもできます(※以下はSQLServerの例です)。

 

フィールド名

データ型

キー設定

NULL許容

補足

ALARMDATE

datetime

PRIMARY KEY

しない


SECINDEX

int

PRIMARY KEY

しない

SECINDEXフィールドには、アラームが同一時刻で発生した場合に、同一時刻内にて0からはじまるインデックス番号が割り当てられます。データベースを使用する場合、本フィールドを定義するようにしてください。

ALARMID

varchar(255)

(なし)

しない


ALARMTYPE

varchar(7)

(なし)

する


ALARMACK

tinyiny

(なし)

する


ALARMRECOVER

tinyiny

(なし)

する


ALARMCONDID

smallint

(なし)

する


 

 

以下は、SQLServerで表示した例です。

 

p_alarm_0265

 

hint

本サンプルには、SQLServer以外のDBMS用のテーブル作成DDL(alarm.sql)が含まれています。実際に使用するDBMSでテーブル定義を行う際の参考としてください。

 

hint

データベース側のテーブルで定義するフィールドのデータ型の名称(例えば「INT」「INTEGER」「NUMBER」「FLOAT」「DOUBLE」など)は、DBMSの種類により差があります。アラームサーバー(ODBC)のようにあらかじめテーブルを手動で作成しておく必要のあるアクションでは、接続するDBMS側で適切なテーブル定義を行う必要があります。接続可能なDBMS毎の推奨データ型については、Appendixの「データベースとの接続設定」を参照してください。

 

attention

PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。

 

 

■アラームサーバー(ODBC)アクションの設定

 

続いて、Panel Serverにアラームサーバー(ODBC)アクションの追加を行い、データベースに接続するための設定を行います。ここでは例として、Windows10環境でSQLServer2017のデータベースと接続するための設定について紹介します。

 

尚、標準プロジェクトのサーバ設定ファイルでは、標準フレームワークにデフォルトで含まれている「Alarm」という名称のアラームサーバー(CSV)アクションが登録された状態となっており、定周期イベント「Alarm」から当アクションを定周期で呼び出すように設定されています。そのため、単にCSVからODBCに変更するための作業手順としては、もともと登録されていた「Alarm」アクションを削除して、新たにアラームサーバー(ODBC)アクションを「Alarm」という名称で追加することで、その他のイベントやクライアント側の設定はそのまま変更せずに利用することができます。

 

 

1.「Alarm」アクションを削除する

 

Panel Serverの左ツリーから、ActionのAlarmを右クリックし、メニューから「削除」を選択します。確認画面が表示されるので、「はい」を選択して削除してください。

 

p_alarm_0266

 

 

2.アラームサーバー(ODBC)アクションを追加する

 

Panel Serverの左ツリーからActionを右クリックし、追加/アクションを選択してください。

 

アクションの追加画面が表示されるので、「アラームサーバー(ODBC)」を選択してOKをクリックします。

 

p_alarm_0267

 

アクション「A01」が追加されました。

 

p_alarm_0268

 

 

3.アラームサーバー(ODBC)アクションの設定を行う

 

A01のプロパティを表示し、各種設定を行います。

 

まず、基本設定タブから、以下の設定を行います。

 

p_alarm_0269

 

 

 

名前を「Alarm」に変更します(※先ほど削除したアラームサーバーCSVアクションと同じ名前にします)。

 

アラームフォルダに、アラームサーバーCSVで設定されていたアラームフォルダを指定してください。以下は設定例です。

 

server_data\alarm

 

 

アラームのメンテナンスを行うにチェックを入れ、日数を指定します。

ここでは例として、3650日、10000レコードと設定しています(※保存日数等の設定については、実際の環境にあわせて適切な値を設定してください)。

 

 

 

 

 

続いて、ODBC設定タブから、以下の設定を行います。

 

p_alarm_0270

 

 

データベースの選択から、接続するDBMSを選択してください。今回の例では「SQLServer」を選択します。

 

データソースには、あらかじめ用意しておいたデータベース「ALARMDB」に接続するためのODBCデータソースを設定してください。尚、データソースの設定手順は、各DBMSとも共通的な操作により行うことができます。ODBC設定については、アクションの共通設定の「ODBC設定」の記述を参照してください。

 

テーブル名には、アラームで使用するテーブルを指定します。ここでは「ALARM」としています。

 

 

attention

PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。従って、以下で指定するテーブル名は小文字で指定するようにしてください。

 

(PostgreSQLの例)

p_alarm_0273

 

 

 

続いて、アラームマスタタブから、以下の設定を行います。

 

p_alarm_0271

 

 

 

マスターファイルに、アラームサーバーCSVで設定されていたアラームマスタを指定してください。以下は設定例です。

 

server\alarm\master.csv

 

 

 

 

 

 

 

続いて、保存項目タブから、以下の設定を行います。

 

p_alarm_0272

 

追加ボタンをクリックして、保存項目を1行追加してください。

 

追加した行に以下のように設定します。

 

DB Field ・・ SECINDEX

Alarm ・・ [SECINDEX]

 

上記で追加したSECINDEXフィールドには、同一秒に発生したアラームに0から始まる連番が自動的に付与されて格納されます。このフィールドの使用は任意ですが、データベースにアラームデータを格納する場合は、SECINDEXフィールドを使用することを強く推奨します。

 

データベース上のテーブルに作成するフィールド名は、本設定の定義と一致している必要があります。具体的には、「DB Field」の列に表示されている名称とテーブルのフィールド名を一致させる必要があります。尚、データベース上のフィールド定義と左記の定義内容の並び順については、特に一致している必要はありません。

 

 

 

 

その他のタブは変更不要です。OKボタンを押して設定を保存してください。

 

 

attention

PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。従って、保存項目タブで指定するDBFieldに指定するフィールド名には、全て小文字で指定するようにしてください。

 

(PostgreSQLと接続する場合の保存項目の設定例)

p_alarm_0274

 

尚、保存項目の設定では、デフォルトで表示されているフィールド名(グレーの部分)は、ダブルクリックする事で編集可能な状態になります。

 

p_alarm_0275

 

 

 

動作確認

それでは、動作を確認してみましょう。

 

アラームデータを格納するためのデータベースの準備および、ODBC設定が完了した状態で、Panel Serverの画面上部にあるオンライン(黄矢印)をクリックしてください。

続いて、Panel Editorの画面上部にあるブラウザ実行アイコン(緑矢印)をクリックし、Panel Browserを呼び出します。

Panel Browserが起動しました。

 

p_alarm_0276

 

 

現状、アラームマスタには、以下のようなアラームが設定されています。

 

p_alarm_0277

 

Panel Serverから、U01.F01.M0000にTrueを書き込んでください。

 

アラームサマリにM0000のアラームが表示されました。

 

p_alarm_0278

 

 

SQLServer側のテーブルに、以下のようなレコードが保存されていることを確認してください。

 

p_alarm_0279

 

 

続いて、Panel ServerからU01.F01.M0001、M0002にTrueを書き込んでください。

 

アラームサマリにM0001、M0002のアラームが表示されました。

 

p_alarm_0280

 

 

SQL Server側のテーブルには、以下のようなレコードが保存されています。

 

p_alarm_0281

 

 

画面から一括確認操作を行い、Panel ServerからU01.F01.M0000、M0001、M0002をFalseに戻してください。

 

アラームサマリ上からはアラーム表示が消えました。

 

p_alarm_0282

 

 

アラーム履歴画面を表示し、アラーム履歴データが正しく表示されることを確認してください。

 

p_alarm_0283

 

 

SQLServer側のテーブルには、以下のようなレコードが保存された状態になりました。

 

p_alarm_0284