サーバーの状態 - ログ処理問題の修正 - アプリケーション

Microsoft.AppVirtualization.Server.45.VirtualApplicationServer.ServerStatus_Fixloghandlingissues_Application (UnitMonitor)

[サーバーの状態] には、Application Virtualization Server の監視を助け、Application Virtualization Server が正しく動作し、期待されるサービスを提供していることを確認するための情報が表示されます。

Knowledge Base article:

概要

[サーバーの状態] には、Application Virtualization Server の監視を助け、Application Virtualization Server が正しく動作し、期待されるサービスを提供していることを確認するための情報が表示されます。

原因

ログ処理の問題には、いくつかの原因が存在します。主な 3 つの原因を以下に挙げます。

  1. Application Virtualization Server の構成が、ログ ファイルを作成できない場所をポイントしている。たとえば、サーバーは K:\logs\logfile.log にログ ファイルを作成することになっていながら、K: ドライブがコンピュータに存在しない場合です。
  2. Application Virtualization Server サービスの実行に使用しているアカウント (通常 NETWORK SERVICE) がログ ファイルへのアクセス許可がない。
  3. 指定された場所にログ ファイルを作成するのに十分なディスク領域がない。

解決方法

ログ処理の問題には、いくつかの原因が存在します。主な 3 つの原因を以下に挙げます。

  1. Application Virtualization Server の構成が、ログ ファイルを作成できない場所をポイントしている。たとえば、サーバーは K:\logs\logfile.log にログ ファイルを作成することになっていながら、K: ドライブがコンピュータに存在しない場合です。
  2. Application Virtualization Server サービスの実行に使用しているアカウント (通常 NETWORK SERVICE) がログ ファイルへのアクセス許可がない。
  3. 指定された場所にログ ファイルを作成するのに十分なディスク領域がない。

ログ ファイルの場所が有効であることを確認します。現在の場所はレジストリ値 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server\SOFTGRID_LOG_FILE にあります。既定で、ログ フォルダのパスは "%ProgramFiles%\Microsoft System Center App Virt Management Server\App Virt Management Server\Logs" です。

ログ ファイルが書き込まれるドライブ上に十分な領域がない場合も、ログ処理の問題が発生する可能性があります。 可能であれば、以下の手順を実行してディスク領域を開放してください。さらに空き領域を作成するには、ディスク クリーンアップ用のローカル オペレーティング システムのツールを最初に使用してください。その他の選択肢を以下に挙げます。

  1. ごみ箱を空にします。
  2. 一時ディレクトリとコンテンツ ディレクトリが同一ドライブにある場合、一時ディレクトリ中のファイルを削除します。一時フォルダのドライブを判断するには、以下の手順を実行します。
    • コマンド プロンプトを開きます。

    • 「echo %temp%」と入力します。これにより、一時ディレクトリの場所が表示されます。

  3. 一部のファイルを別のパーティション、別のドライブ、または別のコンピュータに移動します。

Application Virtualization service サービスが Application Virtualization ログ ファイルの読み取りと書き込みのアクセス許可がない場合にも、ログ処理の問題が発生する場合があります。

この問題を解決するには、以下の手順を実行します。

  1. ログ ファイルの場所を判断します。ログ ファイル ディレクトリの場所は HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server\SOFTGRID_LOG_FILE レジストリ値にリストされています。
  2. エクスプローラを開き、このログ ファイルを含むディレクトリまで移動します。
  3. ログ ファイルを右クリックし、[プロパティ] をクリックします。[セキュリティ] タブをクリックします。
  4. NETWORK SERVICE アカウント (Application Virtualization サービスが別のアカウントで実行されるように手動で構成している場合は、そのアカウント) のアクセス許可のボックスで [フル コントロール] がチェックされていることを確認してください。

Application Virtualization Server サービスの実行に使用されているアカウントを判断するには、以下の手順を実行します。

  • services.msc を実行します。
  • 右側のウィンドウで、[Application Virtualization Server] を右クリックし、[プロパティ] をクリックします。
  • [ログオン] タブをクリックします。[NETWORK SERVICE アカウント] オプション ボタンがオンになっている場合、サービスは NETWORK SERVICE として実行されます。[アカウント] オプション ボタンがオンになっている場合、サービスはテキスト ボックスで指定されているアカウントとして実行されます。

    Element properties:

    TargetMicrosoft.AppVirtualization.Server.45.VirtualApplicationServer
    Parent MonitorMicrosoft.AppVirtualization.Server.45.ServerStatus.HealthState
    CategoryEventCollection
    EnabledTrue
    Alert GenerateTrue
    Alert SeverityMatchMonitorHealth
    Alert PriorityNormal
    Alert Auto ResolveTrue
    Monitor TypeMicrosoft.Windows.SingleEventLogManualReset2StateMonitorType
    RemotableTrue
    AccessibilityPublic
    Alert Message
    サーバーの状態 - ログ処理問題の修正 - アプリケーション
    {0}
    RunAsDefault

    Source Code:

    <UnitMonitor ID="Microsoft.AppVirtualization.Server.45.VirtualApplicationServer.ServerStatus_Fixloghandlingissues_Application" Accessibility="Public" Target="Microsoft.AppVirtualization.Server.45.VirtualApplicationServer" TypeID="Windows!Microsoft.Windows.SingleEventLogManualReset2StateMonitorType" ParentMonitorID="Microsoft.AppVirtualization.Server.45.ServerStatus.HealthState">
    <Category>EventCollection</Category>
    <AlertSettings AlertMessage="Microsoft.AppVirtualization.Server.45.VirtualApplicationServer.ServerStatus_Fixloghandlingissues_Application.Alert">
    <AlertOnState>Error</AlertOnState>
    <AutoResolve>true</AutoResolve>
    <AlertPriority>Normal</AlertPriority>
    <AlertSeverity>MatchMonitorHealth</AlertSeverity>
    <AlertParameters>
    <AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
    </AlertParameters>
    </AlertSettings>
    <OperationalStates>
    <OperationalState ID="EventRaised" MonitorTypeStateID="EventRaised" HealthState="Error"/>
    <OperationalState ID="ManualResetEventRaised" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
    </OperationalStates>
    <Configuration>
    <ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
    <LogName>Application</LogName>
    <Expression>
    <And>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="String">PublisherName</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="String">Application Virtualization Server</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <Or>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="UnsignedInteger">41538</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="UnsignedInteger">41539</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="UnsignedInteger">44908</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    </Or>
    </Expression>
    </And>
    </Expression>
    </Configuration>
    </UnitMonitor>