web-dev-qa-db-ja.com

Mac OSX10.6のシステムログ

Console.appが各ファイルの最後の30分しか表示しないところまで、システムログファイルがいっぱいになっています。何かがサンドボックスから脱出しようとしているように見えますが、正確にはわかりません...次のようなメッセージが何度も繰り返されています。

Feb  3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny file-read-data /private/var/log/asl/StoreData
Feb  3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
Feb  3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny file-read-data /private/var/log/asl/StoreData
Feb  3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
Feb  3 00:29:59: --- last message repeated 1 time ---
Feb  3 00:29:57 Brians-mini sandboxd[16]: *** process 16 exceeded 500 log message per second limit  -  remaining messages this second discarded ***
Feb  3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
Feb  3 00:30:00: --- last message repeated 499 times ---
Feb  3 00:29:58 Brians-mini sandboxd[16]: *** process 16 exceeded 500 log message per second limit  -  remaining messages this second discarded ***
Feb  3 00:29:58 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name

編集して追加:

アクティビティモニターによると、sandboxdは60%のCPUを使用しており、syslogdは120%を使用しています。さて、それはPERプロセッサだと思います(私はコア2デュオを使用しています)が、それでもこれら2つのプロセスのCPUは非常に多くなっています...

編集:リクエストに応じてvar/log/asl:

drwxr-xr-x  25 root     wheel       850 Jan  6 06:41 ./
drwxr-xr-x  47 root     wheel      1598 Feb  4 15:16 ../
-rw-r-----   1 root     admin     11414 Jan  4 11:49 2010.01.04.U0.G80.asl
-rw-------   1 root     wheel       874 Jan  4 09:41 2010.01.04.U0.asl
-rw-------   1 acordex  wheel     43862 Jan  4 17:53 2010.01.04.U501.asl
-rw-r--r--   1 root     wheel     44614 Jan  4 23:42 2010.01.04.asl
-rw-r-----   1 root     admin  10241494 Jan  5 16:53 2010.01.05.U0.G80.asl
-rw-------   1 acordex  wheel    669585 Jan  5 18:11 2010.01.05.U501.asl
-rw-r--r--   1 root     wheel    772889 Jan  5 23:42 2010.01.05.asl
-rw-r-----   1 root     admin      9731 Jan  6 18:54 2010.01.06.U0.G80.asl
-rw-------   1 acordex  wheel    404532 Jan  6 18:50 2010.01.06.U501.asl
-rw-r--r--   1 root     wheel    838013 Jan  6 18:53 2010.01.06.asl
-rw-r-----   1 root     admin     52896 Sep 24 18:20 BB.2010.09.30.U0.G80.asl
-rw-r--r--   1 root     wheel     50908 Sep 29 10:30 BB.2010.09.30.asl
-rw-r-----   1 root     admin     58875 Oct 30 11:18 BB.2010.10.31.U0.G80.asl
-rw-r--r--   1 root     wheel     46188 Oct 30 17:41 BB.2010.10.31.asl
-rw-r-----   1 root     admin     10322 Nov  5 18:21 BB.2010.11.29.U0.G80.asl
-rw-r--r--   1 root     wheel      2159 Nov  4 17:21 BB.2010.11.29.asl
-rw-r-----   1 root     admin      6586 Nov  9 14:06 BB.2010.11.30.U0.G80.asl
-rw-r--r--   1 root     wheel     23147 Nov 25 16:36 BB.2010.11.30.asl
-rw-r-----   1 root     admin     21686 Dec 16 19:06 BB.2010.12.31.U0.G80.asl
-rw-r--r--   1 root     wheel     36951 Dec 23 18:32 BB.2010.12.31.asl
-rw-r--r--   1 root     wheel      2584 Jan  6 16:49 BB.2011.01.31.asl
-rw-r--r--   1 root     wheel        12 Jan  6 18:54 StoreData
-rw-r--r--   1 root     wheel         8 Jan  6 16:59 SweepStore
6
Brian Postow

syslogd自体が問題を引き起こしているように見えます。データファイルからサンドボックス化されているため、データファイルにアクセスしようとすると、サンドボックスエラーが生成され、syslogdに渡されます。これにより、ファイルを再度取得しようとします...これはsyslogdsandboxdが実行できる速度で繰り返されます。

/System/Library/LaunchDaemons/com.Apple.syslogd.plist(syslogdの起動方法を制御するlaunchdアイテム)の内容を確認します。次のようなセクションが必要です。

    <key>ProgramArguments</key>
    <array>
<!--
    Un-comment the following lines to run syslogd with a sandbox profile.
    Sandbox profiles restrict processes from performing unauthorized
    operations; so it may be necessary to update the profile
    (/usr/share/sandbox/syslogd.sb) if any changes are made to the syslog
    configuration (/etc/syslog.conf).
-->
<!--
        <string>/usr/bin/sandbox-exec</string>
        <string>-f</string>
        <string>/usr/share/sandbox/syslogd.sb</string>
-->
        <string>/usr/sbin/syslogd</string>
    </array>

上記の例(私のMacから取得)では、syslogdのサンドボックスラッパーがコメントアウトされていることに注意してください。 Macでも同じですか?そうでない場合は、コメントマーカーを再度追加し、syslogdを再起動します(これはlaunchctlで実行できますが、マシンを再起動するだけです)。

別の注意:サンドボックスプロファイル/usr/share/sandbox/syslogd.sbを調べたところ、(私の専門家の目には)mach-task-name/private/var/log/asl/StoreDataへのアクセスを拒否しているように見えます-どうやらAppleは、syslogdが実際に必要とするものと一致するようにプロファイルをデバッグ(/更新)していません...

5
Gordon Davisson

さて、物事を埋めるプロセスはサンドボックス化されています(プロセス16)。

なぜこれほど多くのログが記録されるのかについては、問題を理解するために、より多くのメッセージを確認する必要があります。 (この小さなスニペットからは、一部のプログラムが不正な処理を実行しようとしているように見えます。指定されたファイルにアクセスしますが、ここにはあまり情報がありません。)

1
Jon Lasser

2つの異なる考え:

  1. これらのエラーの原因となっているsandboxdによって生成された特定のプロセスがあるかどうかを特定してみてください。アクティビティモニターアプリを実行し、ウィンドウ上部の選択リストから[すべてのプロセスを階層的に]を選択します。リストでsandboxdを見つけて、その下に子プロセスがあるかどうかを確認します。子プロセスはインデントされます。

  2. ログメッセージには/ private/var/log/aslが記載されています。 aslmanagerasl.conf(aslmanagerの設定ファイル)のマニュアルページを見てください。設定ファイルにはログレベルの設定があります。おそらく、これはより詳細なレベルにぶつかったのでしょう。

1
Doug Harris

これは、セーフモードで起動したときに発生しますか?

別のユーザーで発生しますか?

Console.logにリードはありますか?

ls -la /private/var/log/asl/の結果を貼り付けることができますか?おそらく何かがそこにありません。

/System/Library/LaunchDaemons/com.Apple.aslmanager.plistまたは/private/etc/asl.confを変更しましたか

syslog | grep -v sandboxd | grep -v "last message repeated" | tail -n 100を使用すると、syslogで10.6の7日前にさかのぼるエントリを確認できるはずです。これにより、ASLのサンドボックス化されていない最新の100エントリが表示されます。おそらくそれはあなたに他に何が起こっているかについての手がかりを与えるでしょう。

ASLがすぐに最大サイズに達するほど急速にいっぱいになる場合は、/private/etc/asl.confのmax_store_sizeを使用して、ASLデータベースが一時的に最大サイズに拡大できるサイズを増やすことができます。 マニュアルページ の詳細=。それを実行してから上記のsyslogコマンドを実行すると、有用なログ情報が得られる場合があります。

0
ridogi