いくつかの原因の可能性があります。
以下の事象とそれぞれの事象の対処方法がありますので、お試しください。これらに該当しない場合には、診断情報 fsdiag の出力を添えて、サポートセンターまでお問合せください。
【事象①】
Linux セキュリティ フルエディションを 64bit の CentOS および RHEL にインストール後、WebUI のステータスに「警告データベースに接続できません。」と表示される。
正常に使用できていて、突然表示されるようになった場合はこれには該当しません。
【原因①】
zlib.i686 のパッケージがインストールされていない場合に、本現象が発生する可能性があります。
【対処方法①】
zlib.i686 をインストール後、再度お試し下さい。
------------------------------------------------------------------------------------------------
【事象②】
Linux セキュリティ フルエディションの WebUI で「警告データベースに接続できません」とメッセージが表示される。
関連のログファイル(postgresql.log)には以下のメッセージが記録されている。
FATAL: password authentication failed for user "fsalerts"
【原因②】
fsav-config 実行において、ユーザが fsav-config の実行を途中で中断した場合に、タイミングによってこのメッセージが出力されることがあります。これは製品の障害ではありません。
警告データベースは、fsav-config の実行で作成され、このタイミングで fsalerts というユーザとパスワードが設定されます。そのパスワードは乱数から生成され、この値は PostgreSQL データベースに設定されるとともに、このデータベースに接続する WebUI の設定ファイルに格納されます。この二つの設定の間に fsav-config が中断された場合、設定情報が一致しなくなります。
WebUI はこの設定ファイル内のパスワードを使用し、警告データベースに fsalerts ユーザ権限でアクセスしますので、パスワードが一致しない場合に今回の現象が発生します。
fsav-config においてデータベースを作成後、リモートアクセス設定の質問が行われ、この処理の最後で WebUI の設定ファイルにパスワードを設定しますので、fsav-config の途中で中断された場合、中断のタイミングによっては作成済データベースのパスワードと WebUI 設定ファイル内のパスワードが一致しなくなり、結果的にパスワード認証エラーとなります。
【対処方法②】
改めて fsav-config コマンドを実行し、最後まで完了させることで解決します。
# /opt/f-secure/fsav/fsav-config
------------------------------------------------------------------------------------------------
【事象③】
Linux セキュリティ フルエディションの WebUI で「警告データベースに接続できません」とメッセージが表示される。
関連のログファイル(postgresql.log)には以下のメッセージが記録されている。
LOG: could not translate host name "localhost", service "28078" to address: Name or service not known
WARNING: could not create listen socket for "localhost"
FATAL: could not create any TCP/IP sockets
【原因③】
PostgreSQL は localhost という名前を使用して通信しようとしますので、localhost の名前解決ができない場合、ログに表示されるメッセージの原因となります。
【対処方法③】
/etc/hosts において localhost エントリが設定されているかをご確認ください。
設定されていない場合、/etc/hosts ファイルに localhost エントリを追加し、fsma サービスを再起動することで解決します。
例
127.0.0.1 localhost
------------------------------------------------------------------------------------------------
【事象④】
Linux セキュリティ フルエディションの WebUI で「警告データベースに接続できません」とメッセージが表示される。
関連のログファイル(postgresql.log)に何も記録されない。正常時に記録される以下の PostgreSQL の起動時(サービス fsma の起動時)のメッセージが記録されていない。
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
【原因④】
postgresql.log ファイルの Owner は fsma, Group は fsc である必要があります。このファイルの Owner, Group がこれ以外に設定されている場合、PostgreSQL 起動スクリプトが正常に出力を行えなくなるため、PostgreSQL が起動できなくなります。結果的に「警告データベースに接続できません」のメッセージが発生します。
【対処方法④】
postgresqlo.log ファイルの Owner, Group をご確認ください。このファイルの Owner/Group が fsma/fsc でない場合、postgresql.log ファイルのパーミッションを fsma/fsc に正しく設定し、fsma サービスを再起動することで復旧します。
また、ファイルの Owner/Group が変更された原因の可能性として、ログローテーションが考えられます。
postgresql.log ファイルは、Linux セキュリティ フルエディションで提供しているログローテーション設定を使い、ログがローテートされます。
ここで、お客様がログローテートの際に作成されるファイルの Owner/Group のデフォルト値 の設定を行うと、その設定が postgresql.log ファイルのログローテート時にも適用され、弊社で期待している fsma/fsc 以外の設定になります。
この結果、fsma ユーザで動作する PostgreSQL 起動スクリプトが書込を行えなくなります。
この場合の対応としては、/etc/logrotate.d/fs-linux-security ファイルの postgresql.log セクションに以下のように "create 0644 fsma fsc" 文を追加することで、予期しないファイルの Owner/Group が設定されることを防ぐことができます。
/var/opt/f-secure/common/postgresql/postgresql.log {
create 0644 fsma fsc
postrotate
if [ -f /var/opt/f-secure/common/postgresql/data/postmaster.pid ]; then
kill -HUP `head -n 1 /var/opt/f-secure/common/postgresql/data/postmaster.pid`;
fi
endscript
}
------------------------------------------------------------------------------------------------
【事象⑤】
LinuxセキュリティフルエディションのWebUI で、「警告データベースに接続できません」とメッセージが表示される。
製品のインストールログ(fsav_install.log)には以下のメッセージが記録されている。
creating template1 database in /var/opt/f-secure/common/postgresql/data/base/1 ... FATAL: could not create semaphores: No space left on device
【原因⑤】
弊社製品のインストール時に、セマフォ数の最大値に達した原因でPostgreSQLのデータベースが正常に作成できず、
PostgreSQLのデーモンが起動できない場合、「警告データベースに接続できません」のメッセージが出力されます。
【対処方法⑤】
セマフォ数の最大値を増やして頂き、製品の再インストールを実施して下さい。
ご参考まで、通常下記コマンドで現在のセマフォ数の最大値をご確認頂けます。
# cat /proc/sys/kernel/sem
出力例: 250 32000 32 128 (セマフォ数の最大値が「128」の場合)
また、下記のコマンドで「/etc/sysctl.conf」の設定ファイルを編集することで、
セマフォ数の最大値を変更することが出来ます。
# echo "kernel.sem = 250 32000 32 200" >> /etc/sysctl.conf
※セマフォ数の最大値を「200」に変更した場合の例となります。