Luxor各種ログ
Luxorサーバに出力されるログ
検索時やインデックス作成中に異常が発生した場合、ログに出力されます。
Luxorのログ取得に関する設定はlog4j.xmlにて行います。log4j.xmlにてログの出力形式や出力レベルを変更することが可能です。インストールする時のデフォルト設定では、"ERROR"レベルとなっています。
ログファイル名 | 説明 | |
---|---|---|
Luxorサーバ | /var/log/luxor/solr.log | Apache Projectで開発されている検索エンジンSolrに関連するログが出力される |
Luxorサーバ | /var/log/luxor/luxor.log | Luxorの動作中に発生したログが出力される。全文検索実施中のログ、インデックス作成のログや最適化処理などのログ情報はluxor.logに出力される |
製品APサーバに出力されるログ
ログファイル名 | |
---|---|
INSUITE® APサーバ | /home/DreamArts/logs/luxor/luxor_log.YYYYMMDD |
Sm@rtDB APサーバ | /var/logs/hibiki/hibiki.log.YYYYMMDD |
Tomcatに関連するログ
TomcatはLuxorで利用されるサードパティのアプリケーションサーバとなります。本章では、Luxor運用中のTomcat関連ログを説明します。ログの詳細情報、または関連ログのレベル設定に関しては、Tomcatの公式サイトを参照してください。
表 Tomcatに関連するログ
Luxorサーバ | 説明 |
---|---|
/usr/local/luxor/tomcat/logs/catalina.out | catalina.outにはTomcatのログが出力される。コンソールと同じ内容が出力される。サービスの起動時/停止時にTomcatに関する情報も含まれる。 |
/usr/local/luxor/tomcat/logs/catalina.YYYY-MM-DD.log | catalina.YYYY-MM-DD.logには、Tomcatのログが出力される。コンソールと同じ内容が出力される。サービス起動時/停止時にTomcatに関する情報も含まれる。 |
/usr/local/luxor/tomcat/logs/localhost.YYYY-MM-DD.log | localhost.YYYY-MM-DD.logには、Tomcat内で実行するウェブアプリケーションのログが出力される。サービスの起動時/停止時に(Wagbyが内部で利用しているミドルウェアである)SpringやQuartz(ジョブ実行用)のログが出力される。 |
/usr/local/luxor/tomcat/logs/manager.YYYYY-MM-DD.log | manager.YYYYY-MM-DD.logには、Tomcatに標準で含まれている/managerへアクセスした際のログが出力される。 |
/usr/local/luxor/tomcat/logs/host-manager.YYYY-MM-DD.log | host-manager.YYYY-MM-DD.logには、Tomcatに標準で含まれている/host-managerへアクセスした際のログが出力される。 |
/usr/local/luxor/tomcat/logs/localhost_access_log.YYYY-MM-DD.txt | localhost_access_log.YYYY-MM-DD.txtには、主にアクセスの時間、IPアドレス、アクセス先等の関連情報が出力される。Tomcat出力されるすべてのHTTPリクエストのアクセスログが出力される。 |
各種ログの出力原因·出力例·対処法
各種ログの原因及び対処法を説明します。
[1] /var/log/luxor/luxor.logの出力例
[1-1] 出力例: 403 Forbidden on request URL
2011-06-01 14:24:46 Status line: HTTP/1.1 403 Forbidden on request URL: http://localhost/cgi-bin/sr_luxor_permit_check.cgi, discard search result.org.apache/commons.httpclient.HttpException
原因:LuxorサーバからINSUITE®へのアクセス時のIP制限に抵触しています。LuxorサーバIPとして設定していないIPアドレスからアクセスがあった場合に発生します。
対処方法:Luxorのsetup.conf中のiseUrlの設定を見直してください。
[1-2] 出力例: java.io.IOException: No content exception 204.
2011-06-10 15:35:37 ERROR solr.LuxorUtils (LuxorUtils.java:384) can't download http://localhost/cgi-bin/sr_luxor_attach_download.cgi?attach=schedule:/insuite/schedule/201106/62/462/462-1.txt java.io.IOException: No content exception 204.
原因:LuxorがINSUITE®上の添付ファイルをダウンロードする際に、doccatコマンドの実行に失敗したことが原因です。doccatコマンドが処理する対象ファイルサイズの最大値を超えたファイルをダウンロードする場合などに発生します。
対処方法:doccatコマンドが処理する対象ファイルサイズの最大値を調整します。詳細設定については、『INSUITE®アプリケーション·アドミニストレーション·ガイド』のdoccat.confを参照してください。
[1-3] 出力例: java.io.FileNotFoundException
2011-06-10 15:38:32 ERROR solr.LuxorUtils (LuxorUtils.java:384) can't download http://localhost/cgi-bin/sr_luxor_attach_download.cgi?attach=schedule:/insuite/schedule/201106/62/462/462-1.txt java.io.FileNotFoundException: http://localhost/cgi-bin/sr_luxor_attach_download.cgi?attach=schedule:/insuite/schedule/201106/62/462/462-1.txt
原因:ユーザが添付ファイルを伴うデータを登録した後、Luxorサーバは非同期処理にてINSUITE®から添付ファイルをダウンロードします。その間にユーザがデータを削除した場合は発生する可能性があります。
例えば、何らかの障害より、NFS上のファイルの実体が存在せず、DB上にはファイルの情報が存在する、といったような不整合が既に生じていた場合に発生するエラーとなります。
対処方法:特に対処不要です。
[1-4] 出力例: java.io.FileNotFoundException
2011-06-02 11:41:37 ERROR solr.LuxorUtils (LuxorUtils.java:377) can't download http://localhost:10080/solr/cgi-bin/sr_luxor_attach_download.cgi?attach=attach_404 java.io.FileNotFoundException : http://localhost:10080/solr/cgi-bin/sr_luxor_attach_download.gi?attach=attach_404
原因:添付ファイルのダウンロードが失敗した場合に出力されます。原因は三つ可能性があります。
1)添付ファイルの実体がINSUITE®上から削除された(INSUITE®が404を返した)。
2)URL間違い
3)INSUITE®の内部エラー。
対処方法:添付ファイルの実体がINSUITE®上から削除された場合は、問題ありません。
[1-5] 出力例: ERROR filter.BasicAuthFilter
2011-06-02 11:40:30 ERROR filter.BasicAuthFilter (BasicAuthFilter.java:41) AuthFailure:
原因:Basic認証の設定が正しくありません。
対処方法:Luxorサーバsetup.conf中の"iseApacheUser"、"iseApachePass"の設定を見直してください。
[1-6] 出力例: ERROR solr.HttpUtilsEx
2011-06-02 15:02:16 ERROR solr.HttpUtilsEx (HttpUtilsEx.ava:137) Status line: HTTP/1.1 404 Not Found on request URL: http://localhost:10080/solr/cgi-bin/sr_luxor_permit_check.cgi、 discard search result.2011-06-02 15:02:28 ERROR filter.ostCheckFilterINSUITECallback (PostCheckFilterINSUITECallback.ava:113) can't access http://localhost:10080/solr/cgi-bin/sr_luxor_permit_check.cgi
原因:LuxorからINSUITE®へ何らかの原因でアクセスできなかった場合、該当のエラーが出力されます。
対処方法:該当のエラーが1回のみ出力された場合、おそらくは一時的なネットワーク、またはサーバの負荷によるものと考えられますので、対処は不要です。該当のエラーが頻繁に出力される場合、INSUITE®またはLuxorの設定に誤りがある可能性が考えられます。アクセス不能なIPに設定されているかを、Luxorサーバsetup.conf中の"iseUrl"の設定を見直してください。
[1-7] 出力例: java.net.SocketTimeoutException: Read timed out
2012-01-24 23:59:29 ERROR solr.LuxorUtils (LuxorUtils.java:402) can't download http://127.0.0.1/cgi-bin/sr_luxor_attach_download.cgi?attach=schedule:/insuite/schedule/201201/81/81/81-1.txt java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source)
原因:LuxorからINSUITE®への通信がタイムアウトした場合に出力されます。
対処方法:頻繁に発生する場合、LuxorとINSUITE®間のネットワーク設定を見直してください。また、INSUITE®からの添付ファイルダウンロードが何らかの理由で時間を要する場合に発生することがあります。
[1-8] 出力例: java.net.ConnectException: Connection refused
2011-04-25 00:08:03 ERROR solr.LuxorUtils (LuxorUtils.java:402) can't download http://127.0.0.1/cgi-bin/sr_luxor_attach_download.cgi?attach=schedule:/insuite/schedule/201201/81/81/81-1.txt java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source)
原因:LuxorからINSUITE®へのhttp接続(https接続)ができなかった場合に出力されます。
対処方法:INSUITE®サービスが一時停止したか、ネットワークが不通となっていないかをご確認ください。
[2] /home/DreamArts/logs/luxor/luxor_log.YYYYMMDDの出力例
[2-1] 出力例: ERROR: 500 Can't connect
19:30:25 ERROR: 500 Can't connect to 127.0.0.1:10080 (Timeout) request url=http://127.0.0.1:10080/solr/select
原因:INSUITE® APサーバのLuxorサーバIP、ポート番号を指定するパラメータが正しくない可能性があります。
対処方法:INSUITE®の設定ファイルdomain.datの"luxor_ip"(デフォルト:127.0.0.1)、"luxor_port"(デフォルト:10080)パラメータ設定を見直してください。
[2-2] 出力例: ERROR: 404 Not Found
19:36:54 ERROR: 404 Not Found request url=http://127.0.0.1:10080/solr_dir/select
原因:INSUITE®からLuxorサーバへのアクセスに失敗しています。INSUITE® APサーバのLuxor APIを指定するパラメータが正しくない可能性があります。
対処方法:INSUITE®の設定ファイルdomain.datにて、"luxor_rdir"(デフォルト:/solr)パラメータの設定を見直してください。
[2-3] 出力例: ERROR: 401 Unauthorized
19:36:54 ERROR: 401 Unauthorized request url=http://127.0.0.1:10080/solr_dir/select
原因:INSUITE®からLuxorへのアクセス時のBasic認証に失敗しています。INSUITE® APサーバのBasic認証のON/OFFまたはアカウント、パスワードの値がLuxor APサーバの設定と異なることが原因です。
対処方法:Basic認証のON/OFFはINSUITE® APサーバ、Luxorサーバで同じ設定に合わせる必要があります。また、アカウントとパスワードの値もINSUITE® APサーバ、Luxorサーバで同じ値となる必要があります。
[2-4] 出力例: doccat failed
home/DreamArts/cgi-bin/sr_luxor_attach_download.cgi : doccat failed
原因:LuxorがINSUITE®上の添付ファイルをダウンロードする際、doccatの実行に失敗したことが原因です。doccatが処理する対象ファイルサイズの最大値を超えたファイルをダウンロードする場合などに発生します。
対処方法:頻繁に発生する場合、コマンドdoccatの設定を見直してください。doccatの設定については、『INSUITE®アプリケーション·アドミニストレーション·ガイド』のdoccat.confを参照してください。
[3] /var/logs/hibiki/hibiki.log.YYYYMMDDの出力例
[3-1] 出力例: java.net.NoRouteToHostException: No route to host
[3-1] java.net.NoRouteToHostException: No route to host
2012-08-07 11:15:14,894 ERROR luxor.LuxorQueue (LuxorQueue.java:167) : Failed to add luxor queue. key=0,10237; type=Binder; qdate=1346205882414; IndexParameter : [ indexType=Binder; indexOption=Option.INSERT; indexArgs=10237; indexKey=0,10237 ]; java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.\
原因:Luxorサーバに接続できず、インデックスが作成できません。Luxorサーバが起動していない可能性があります。
対処方法:Luxorサーバが起動しているかをご確認ください。
[3-2] 出力例: Can't connection to luxor server.
2012-08-07 13:50:28,294 ERROR luxor.LuxorClient (LuxorClient.java:280) : Can't connection to luxor server. URL: http://10.2.2.147:10080/solr/update_luxor. Parameters: ["function":"insert","component":"binder","id":"10238","title":"binder_20120807","gid":"2000000","reg_date":"2012-08-07T04:50:22Z","upd_date":"2012-08-07T04:50:22Z","reg_account":"1000011","upd_account":"1000011","owner":"1000011","public":"true","allow":"","parent_cabinet_id":"0","document_search_type":"speed","binder_id":"10238","binder_type":"binder","permit_reader":"FormDesigner","permit_reader":"DocManager","permit_reader":"BinderReader","permit_reader":"DocRegAccount","basic_view":"true","validity_start":"","validity_end":"","content":"binder_20120807 binder_20120807"]. java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.
原因:Luxorサーバに接続できず、インデックスが作成できません。LuxorサーバのTomcatが停止された可能性があります。
対処方法:LuxorサーバのTomcatを再起動してください。
[3-3] 出力例: ERROR reindexcmd.IndexRebuildService
(IndexRebuildService.java:854) : some error happended when send luxor add info to luxor server!
2012-08-07 13:11:04,604 FATAL impl.SmartDatabaseImpl (SmartDatabaseImpl.java:488) : Sorry, this operation is not supported yet. java.lang.Throwable at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:488) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:386) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:320) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:299) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:290) at jp.co.dreamarts.hibiki.smartdb.luxor.impl.DocumentRequestCreator.update(DocumentRequestCreator.java:148) at jp.co.dreamarts.hibiki.smartdb.luxor.impl.DocumentRequestCreator.getLuxorRequests(DocumentRequestCreator.java:103) at jp.co.dreamarts.hibiki.smartdb.luxor.reindexcmd.IndexRebuildService.buildIndex(IndexRebuildService.java:791) at jp.co.dreamarts.hibiki.smartdb.luxor.reindexcmd.IndexRebuildCommand.execute(IndexRebuildCommand.java:397) at jp.co.dreamarts.hibiki.smartdb.tool.Tool.run(Tool.java:219) at jp.co.dreamarts.hibiki.smartdb.tool.Main.main(Main.java:337) 2012-08-07 18:22:30,362 ERROR reindexcmd.IndexRebuildService (IndexRebuildService.java:854) : some error happended when send luxor add info to luxor server! java.lang.NullPointerException at jp.co.dreamarts.hibiki.smartdb.api.server.ServerAPIDocument.
原因:full_text_search.xmlの"continueWhenExecption"をfalseに設定し移行ツールを実行する時、移行データに異常があるとインデックスが作成できません。
対処方法:full_text_search.xmlに"continueWhenExecption"をtrueに設定することで、異常データをスキップして移行ツールを続行できるようにします。異常データをスキップしたくない場合は、以上の発生しているデータをご確認ください。
[3-4] 出力例: ERROR reindexcmd.IndexRebuildService(IndexRebuildService.java:816) : バインダID 10,226の文書ID 1に異常があるため、全文検索インデックスが作成できません。
2012-08-07 18:20:03,535 FATAL impl.SmartDatabaseImpl (SmartDatabaseImpl.java:488) : Sorry, this operation is not supported yet. java.lang.Throwable at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:488) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:386) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:320) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:299) at jp.co.dreamarts.insuite.smartcab.impl.SmartDatabaseImpl.get(SmartDatabaseImpl.java:290) at jp.co.dreamarts.hibiki.smartdb.luxor.impl.DocumentRequestCreator.update(DocumentRequestCreator.java:148) at jp.co.dreamarts.hibiki.smartdb.luxor.impl.DocumentRequestCreator.getLuxorRequests(DocumentRequestCreator.java:103) at jp.co.dreamarts.hibiki.smartdb.luxor.reindexcmd.IndexRebuildService.buildIndex(IndexRebuildService.java:791) at jp.co.dreamarts.hibiki.smartdb.luxor.reindexcmd.IndexRebuildCommand.execute(IndexRebuildCommand.java:397) at jp.co.dreamarts.hibiki.smartdb.tool.Tool.run(Tool.java:219) at jp.co.dreamarts.hibiki.smartdb.tool.Main.main(Main.java:337) 2012-08-07 18:20:03,549 ERROR reindexcmd.IndexRebuildService (IndexRebuildService.java:816) : バインダID 10,226の文書ID 1に異常があるため、全文検索インデックスが作成できません。 java.lang.NullPointerException at jp.co.dreamarts.hibiki.smartdb.api.server.ServerAPIDocument.
原因:full_text_search.xmlに"continueWhenExecption"をfalseに設定し、移行ツールを実行する時、移行データに異常があり、インデックスが作成できません。
対処方法:ログの内容に従って異常が発生しているデータを分析し、異常原因をご対応ください。
[4] /var/log/luxor/solr.logの出力例
[4-1] 出力例: too many boolean clauses
binder_id:16375 OR binder_id:16376 OR binder_id:16377 OR binder_id:16378 OR binder_id:16379 OR binder_id:16380 OR binder_id:16381 OR binder_id:16382) AND ( (title:図面) OR (content:図面))': too many boolean clauses Sm@rtDBのhibiki.logに以下のエラーログも同じです。エラー,2017/03/07 14:19:54,"2TIP tip1sap102 2TIP2100-E 2017-03-07 14:19:39,991 ERROR unifiedsearch.UnifiedSearch (UnifiedSearch.java:264) :doucment luxor-search failed.q:[component.q - {_document:_(binder_id:16394 OR binder_id:16396 OR binder_id:16397 OR ...
原因:Luxorで検索する時、検索条件が多すぎて処理失敗となります。Solrの制限事項です。
対処方法:Solrでは検索条件の指定数を制限しています。検索条件を減らしてください。全文検索画面では「対象キャビネット」を利用する場合、検索条件には全ての所属バインダIDを使ってしまう仕様で、全文検索画面の「対象キャビネット」の利用をしないことなどの運用回避が考えられます。
[4-2] 出力例: common.SolrException
2017-04-25 14:50:30,275 ERROR [catalina-exec-7] common.SolrException (SolrException.java:151):org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
原因:INSUITE®とLuxorの間のHTTPリクエストが切断されました。ミドルウェア処理がリクエストのやり取りに影響している可能性があります。
対処方法:INSUITE®とLuxorとの接続見直しが必要です。
ローテート設定
Luxorに関連するログのローテート設定
Luxorに関連するログのローテートはlog4j.xmlにて指定します。デフォルトでは、日時によりログファイルの分割を行います。
設定例:
# cd /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes/
# vi log4j.xml
<appender name="LUXOR_LOG" class="org.apache.log4j.**DailyRollingFileAppender**">
<param name="File" value="/var/log/luxor/luxor.log" />
<param name="DatePattern" value="'.'yyyyMMdd" />
<param name="Append" value="true" />
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p[%t] %C{2} (%F:%L) : %m%n" />
</layout>
</appender>
<appender name="SOLR_LOG" class="org.apache.log4j.**DailyRollingFileAppender**">
<param name="File" value="/var/log/luxor/solr.log" />
<param name="DatePattern" value="'.'yyyyMMdd" />
<param name="Append" value="true" />
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p[%t] %C{2} (%F:%L) : %m%n" />
</layout>
</appender>
日時によりログファイルの分割を行うクラス"DailyRollingFileAppender"において、ログ保存期間を日付単位で設定するパラメータlogMaxBackupDaysを設定します。保存期間を超えたLuxorのsolr.logとluxor.logの削除を行います。詳細は次の表に記載します。
表 Luxorのログ保存期間設定
- 設定ファイル:setup.conf
- ファイルパス:/root/luxor.1.3.8/setup.conf
※Ver.1.3.8の場合のパスを例にしています。各リビジョンに合わせ、読み替えてください。
要素名称 | 初期値 | 説明 |
---|---|---|
logMaxBackupDays | 0(単位:日) | 設定値より古い日付のログが削除される。設定値が0の場合、削除は行われない。 |
注意
1.ログローテート対象は、現時点でのlog4j.xmlの"DatePattern"により生成されたログのみとします。"DatePattern"が変更された場合、変更前の"DatePattern"により生成されたログファイルはローテート対象外となるため、ご注意ください。2.logMaxBackupDaysの変更時、setup.confに設定反映とSolrTomcat再起動が必要です。
DailyRollingFileAppenderのほか、ファイルサイズによりログファイルを分割するRollingFileAppenderを指定することも可能です。
設定例:
# cd /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes/
# vi log4j.xml
<appender name="SYSLOG" class="org.apache.log4j.**RollingFileAppender**">
<param name="File" value="/var/log/luxor/luxor.log" />
<param name="MaxFileSize" value="1MB" />
<param name="MaxBackupIndex" value="2" />
~~ 中略 ~~
</appender>
<appender name="SYSLOG\_SOLR" class="org.apache.log4j.**RollingFileAppender**">
<param name="File" value="/var/log/luxor/solr.log" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="20" />
~~ 中略 ~~
</appender>
# sudo service solrTomcat restart
localhost_access_log.YYYY-MM-DD.txtについて
localhost_access_log.YYYY-MM-DD.txtには、主にアクセスの時間、IPアドレス、アクセス先等の関連情報が出力されます。TomcatによるすべてのHTTPリクエストのアクセスログが出力されます。
本ログを出力する場合、ファイルサイズが膨大となります。(下記ログ例は実際の内容と異なる可能性があります。)
出力しない設定方法は、usr/local/solr/tomcat/conf/server.xmlの以下箇所をコメントアウトして、Luxorを再起動します。
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />