外部のPostgreSQL Log Serverを利用しているときにWSM v11.3.2から v11.4.xへアップグレードすると問題があります

これは、WatchGuard System Manager v11.4に適用します。

________________________________________

もし外部PostgreSQLデータベースに WatchGuard Log Serverを補完している場合、WatchGuard System Managerをv11.3.2から v11.4.xへアップグレードした際に問題が生じることがあります。LogViewerでログメッセージを確認しようとするときに、全ての値が「0」(ゼロ)になっているかもしれません。

WatchGuard System Manager v11.4では、ログメッセージからIPアドレスを収集する方法を変更し、後でFQDNによって解決できるようにしました。新しいバージョンでは、ルールではなく、トリガーを利用することになりました。

このトリガーは、補完された処理であり、PL/pgsql言語で書かれています。PL/pgsql は、 PostgreSQL の一部で、Windows上のWatchGuard内部のPostgreSQLデータベースに標準でインストールされます。もしこのPL/pgsqlをLinux PostgreSQLサーバにインストールしていない場合、この問題が発生することがあります。

通常、PL/pgsqlがインストールされていない場合、次のログメッセージがap_collector.logファイルで表示されます:
ERROR:{ERROR: language “plpgsql” does not exist HINT: Use CREATE LANGUAGE to load the language into the database
ERROR:{ERROR: function ptraffic() does not exist }(SQL:create trigger traffic before insert on cluster_traffic_20110215_0 for each row execute procedure ptraffic)”

解決方法

外部PostgreSQLデータベースをホストしているサーバにPL/pgsq言語をインストールする必要があります。これはPostgreSQL binディレクトリに含まれているcreatelangプログラムで行うことができます:
1. ログサーバを停止する
2. Linuxシステムのシェルから次のコマンドを実行:
 createlang plpgsql d (log database name) -U (database admin user)
3. 言語を作成後A、このクエリーで確認できます:
 select * from pg_language where lanname = ‘plpgsql’;
 lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanva
 lidator | lanacl
 ———+———-+———+————–+—————+———–+————–+——–
 plpgsql | 10 | t | t | 11571 | 11572 |
 11573 |
 (1 row)

現在のステータス
Open