次の方法で共有


UNIX および Linux コンピューターの監視のトラブルシューティング

System Center - Operations Manager では、Windows コンピューターの監視に似た UNIX および Linux コンピューターの監視が提供されます。 正常性とパフォーマンスの監視、レポートの取得、タスクの実行、およびカスタム監視インストルメンテーションを行うことができます。

UNIX および Linux コンピューターで次の要素を監視できます。

  • サービスおよびアプリケーション

  • ファイル システム、ディスクの空き領域、スワップ領域、システム メモリ

  • ネットワーク インターフェイス

  • コア プロセスおよび属性

  • 主な構成

UNIX および Linux コンピューターを監視する前に、次の手順を完了する必要があります。

上記の手順を完了し、エージェントを検出して 1 つ以上の UNIX および Linux コンピューターに正常に展開したら、それらが正しく監視されていることを確認する必要があります。 エージェントがデプロイされると、実行アカウントを使用して、該当する検出ルールを使用して実行されている検出を実行し、監視を開始します。 数分後、[管理] ワークスペースで デバイス管理/UNIX/Linux コンピューターに移動し、コンピューターが Unknown として表示されていないことを確認します。 これらは検出され、OS とディストリビューションの特定のバージョンが表示されます。

既定では、Operations Manager は次のオペレーティング システム オブジェクトを監視します。

  • オペレーティング システム
  • 論理ディスク
  • ネットワーク アダプター

UNIX および Linux 管理パック テンプレートを使用して、管理対象の UNIX および Linux コンピューターに追加の監視および対話機能を提供できます。 詳細については、オーサリング ガイドの「 UNIX または Linux のログ ファイル 」と「 UNIX または Linux のサービス 」を参照してください。

UNIX と Linux の監視のトラブルシューティング

次のセクションでは、Operations Manager での UNIX および Linux コンピューターの監視において発生する場合がある問題についての情報を提供します。

証明書署名エラー メッセージ

UNIX または Linux エージェントのインストール中、次のエラーが表示されることがあります。

Event Type: Error  
Event Source: Cross Platform Modules  
Event Category: None  
Event ID: 256  
Date: 4/1/2009  
Time: 4:02:27 PM  
User: N/A  
Computer: COMPUTER1  
Description: Unexpected ScxCertLibException: Can't decode from base64  
; input data is:  

このエラーは証明書署名モジュールが呼び出されたときに、証明書自体が空の場合に発生します。 このエラーは、リモート システムへの SSH 接続障害が原因である可能性があります。

このエラーが表示される場合は、次の操作を行います。

  1. リモート ホスト上の SSH デーモンが実行されていることを確認します。

  2. 探索ウィザードで指定された資格情報を使用して、リモート ホストとの SSH セッションを開くことができることを確認します。

  3. 探索ウィザードで指定された資格情報に、探索に必要な特権があることを確認します。 詳細については、「 UNIX および Linux コンピューターにアクセスする必要があるCredentialsを参照してください。

証明書名とホスト名が一致しない

証明書で使用されている共通名 (CN) は、Operations Manager によって解決される完全修飾ドメイン名 (FQDN) と一致する必要があります。 CN が一致しない場合は、検出ウィザードの実行時に次のエラーが表示されます。

The SSL certificate contains a common name (CN) that doesn't match the hostname  

UNIX または Linux コンピューターで証明書の基本的な詳細を表示するには、次のコマンドを入力します。

openssl x509 -noout -in /etc/opt/microsoft/scx/ssl/scx.pem -subject -issuer -dates  

これを行うと、次のような出力が表示されます。

subject= /DC=name/DC=newdomain/CN=newhostname/CN=newhostname.newdomain.name  
issuer= /DC=name/DC=newdomain/CN=newhostname/CN=newhostname.newdomain.name  
notBefore=Mar 25 05:21:18 2008 GMT  
notAfter=Mar 20 05:21:18 2029 GMT  

ホスト名と日付を検証し、Operations Manager 管理サーバーで解決される名前に一致していることを確認します。

ホスト名が一致しない場合は、次のいずれかのアクションを使用して問題を解決します。

  • UNIX または Linux ホスト名は正しいものの、Operations Manager 管理サーバーがそれを正しく解決していない場合は、正しい FQDN と一致するように DNS エントリを変更するか、Operations Manager サーバーの hosts ファイルにエントリを追加します。

  • UNIX または Linux のホスト名が正しくない場合は、次のいずれかの操作を行います。

    • UNIX または Linux ホストのホスト名を正しいものに変更し、新しい証明書を作成します。

    • 目的のホスト名で新しい証明書を作成します。

証明書の名前を変更します。

証明書が正しくない名前で作成された場合は、ホスト名を変更して証明書と秘密キーを再作成することができます。 これを行うには、UNIX または Linux コンピューターで、次のコマンドを実行します。

/opt/microsoft/scx/bin/tools/scxsslconfig -f -v  

-f オプションを指定すると、/etc/opt/microsoft/scx/ssl 内のファイルが強制的に上書きされます。

次の例のように、 -h スイッチと -d スイッチを使用して、証明書のホスト名とドメイン名を変更することもできます。

/opt/microsoft/scx/bin/tools/scxsslconfig -f -h <hostname> -d <domain.name>  

次のコマンドを実行してエージェントを再起動します。

/opt/microsoft/scx/bin/tools/scxadmin -restart  

hosts ファイルにエントリを追加します。

FQDN が逆引き DNS にない場合は、管理サーバーにある hosts ファイルにエントリを追加して名前解決を提供できます。 hosts ファイルは、Windows\System32\Drivers\etc フォルダーにあります。 hosts ファイル内のエントリは、IP アドレスと FQDN の組み合わせです。

たとえば、ip アドレスが 192.168.1.1 の newhostname.newdomain.name という名前のホストのエントリを追加するには、hosts ファイルの末尾に次を追加します。

192.168.1.1      newhostname.newdomain.name  

管理パックの問題

ExecuteCommand がパイプライン演算子またはエイリアスをサポートしない

エイリアスまたはパイプライン演算子を ExecuteCommand パラメーターと共に使用すると、コマンドは失敗します。 ExecuteCommand パラメーターは、パイプライン演算子、エイリアス、およびシェル固有の構文をサポートしていません。

UNIX および Linux コンピューターを管理するように設計された System Center Operations Manager 管理パックでは、 ExecuteCommand パラメーターによってシェル プロセスが開始されず、カスタム アクションが失敗します。

次のカスタム アクションの種類ごとに、 ExecuteCommand パラメーターまたは ExecuteShellCommand パラメーターを使用してコマンド引数を呼び出す方法を指定します。

  • Microsoft.Unix.WSMan.Invoke.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.WriteAction

  • Microsoft.Unix.WSMan.Invoke.Privileged.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.Privileged.WriteAction

ExecuteCommand パラメーターは、シェル プロセスを開始せずに、コマンド ライン引数をコンソールに渡します。

ExecuteShellCommand パラメーターは、ユーザーの既定のシェルを使用してシェル プロセスにコマンド引数を渡します。このシェルは、パイプライン、エイリアス、およびシェル固有の構文をサポートします。

Note

ExecuteShellCommand パラメーターは、コマンドを実行しているユーザーの既定のシェルを使用します。 特定のシェルが必要な場合は、 ExecuteCommand パラメーターを使用し、コマンド引数の前に必要なシェルを付けます。

次の例は、 ExecuteCommand および ExecuteShellCommand パラメーターの使用方法を示しています。

  • シェル プロセスを開始せずにコマンド ライン引数をコンソールに渡すには

    <p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> service syslog status </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>

  • 明示的なシェルを参照するシェル プロセスにコマンドライン引数を渡すには

    <p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> /bin/sh ps -ef syslog | grep -v grep </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>

  • ユーザーの既定のシェルを使用するシェル プロセスにコマンド引数を渡すには

    <p:ExecuteShellCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> uptime |&nbsp; awk '{print $10}' |awk -F"," '{print $1}' </p:Command> <p:timeout>10</p:timeout> </p:ExecuteShellCommand_INPUT>

ログ記録とデバッグ

このセクションでは、UNIX および Linux コンピューターの監視に関する問題をトラブルシューティングをするために、ログ記録とデバッグのツールを有効にする方法について説明します。

Note

Operations Manager 2019 UR3 では、エージェントを再起動せずにログ レベルの設定を変更できます。 詳細情報。

Note

エージェントを再起動させることなく、ログ レベルの設定を変更できます。 詳細情報。

Operations Manager モジュールのログ記録を有効にする

UNIX および Linux 用の Operations Manager エージェントは、クライアントの問題のトラブルシューティングに役立つ可能性のあるいくつかのログ ファイルを保持します。 これらのログ ファイルは、管理対象の UNIX または Linux コンピューターにあります。 エージェント ログ ファイルのログ レベルは、必要に応じて構成できます。 より詳細なログ記録が問題の診断に役立つこともあります。 通常の操作では、ログ ファイルの過剰な増加を防ぐために、ログ レベルを既定の構成 (中間) よりも詳細な値に設定しないでください。

Note

Windows リモート管理 (WinRM) の外部で行われる呼び出しは、SSH と SFTP を使用して行われます。 これらのコンポーネントは、Operations Manager とは別個のログ メカニズムに依存しています。

Note

このバージョンの UNIX および Linux 用 Operations Manager エージェントでは、omiserver.log ログ ファイルのログ レベルを既定値から変更することはできません。

  1. コマンド ラインまたは PowerShell プロンプトで次のように入力して、 EnableOpsmgrModuleLogging という名前の空のファイルを、これらのモジュールを呼び出すユーザー アカウントの Temp ディレクトリに作成します。

    COPY /Y NUL %windir%\TEMP\EnableOpsMgrModuleLogging
    
    New-Item "$env:windir\TEMP\EnableOpsMgrModuleLogging"
    

    Note

    一般に、これは呼び出しを行う SYSTEM アカウントであり、C:\Windows\Temp は既定の SYSTEM 一時フォルダーです。

  2. 空のファイルの作成後、Operations Manager は SSH および証明書アクティビティの Temp ディレクトリへのログ記録をすぐに開始します。 SSH モジュールを呼び出すスクリプトは、 <Scriptname.vbs>.log にログを記録します。 その他のモジュールには独自のログがあります。

場合によっては、EnableOpsmgrModuleLogging ログを有効にするために HealthService を再起動する必要があります。

UNIX エージェントのログ記録を有効にする

これらのログは、UNIX エージェントの操作を報告します。 Operations Manager に返されるデータに問題がある場合は、このログを調べます。 scxadmin コマンドを使用して、ログに記録される情報の量を設定できます。 このコマンドの構文は次のとおりです。

scxadmin -log-set [all|cimom|provider] {verbose|intermediate|errors}

次の表に、指定可能なパラメーター値を示します。

Level 説明
エラー 警告 または エラー メッセージのみをログに記録します。
中級 Log InfoWarning、および Error メッセージ。
詳細 デバッグ ログを含む 情報警告エラー メッセージをログに記録します。 このレベルでログを記録すると、ログ ファイルのサイズが急速に増大する可能性があります。 このオプションは、特定の問題を診断するために短期間のみ使用することをお勧めします。

DebugView を使用して検出に関する問題をトラブルシューティングする

DebugView は、検出の問題をトラブルシューティングするための EnableOpsmgrModuleLogging の代替方法です。

  1. DebugView のダウンロード: https://go.microsoft.comfwlink/?Linkid=129486

  2. 検出を実行する管理サーバーで DebugView を起動します。

  3. UNIX エージェントの検出を開始します。 DebugView ウィンドウに出力が表示されます。

  4. DebugView が、検出ウィザード プロセスの各ステップを読み出します。 多くの場合、これが最も迅速なトラブルシューティング方法です。

Windows リモート管理の Operations Manager ログ記録を有効にする

この詳細トレース メソッドは、データをエージェントから収集するために Operations Manager により使用されている Windows リモート管理 (WinRM) のクエリを見るために使用されます。 WinRM 接続に問題があると思われる場合は、このログにトラブルシューティングに役立つ詳細情報が表示されます。

  1. UNIX または Linux エージェントを監視している管理サーバーで、コマンド プロンプトを開きます。

  2. コマンド プロンプトで次のコマンドを入力します。

    1. cd C:\Program Files\Microsoft System Center\Operations Manager\Tools

    2. StopTracing.cmd

    3. StartTracing.cmd VER

  3. Operations Manager で発生している問題を再現します。

  4. コマンド プロンプトで次のコマンドを入力します。

    1. StopTracing.cmd

    2. FormatTracing.cmd

  5. TracingGuidsNative.log ファイルで WS-Man を検索します。

Note

WinRM は、Ws-Management (WS-Man) とも呼ばれます。

Note

FormatTracing コマンドを実行すると、Windows エクスプローラー ウィンドウが開き、 C:\Windows\Logs\OpsMgrTrace ディレクトリが表示されます。 TracingGuidsNative.log ファイルはこのディレクトリにあります。

UNIX および Linux ログ ファイルの管理

UNIX および Linux 用の Operations Manager エージェントでは、エージェント ログ ファイルのサイズは制限されません。 ログ ファイルの最大サイズを制御するには、ログ ファイルを管理するプロセスを実装します。 たとえば、多くの UNIX および Linux オペレーティング システムには、標準ユーティリティとして logrotate が用意されています。 この logrotate ユーティリティを構成して、UNIX または Linux 用の Operations Manager エージェントが使用するログ ファイルを制御できます。 エージェントのログ ファイルを循環または変更した後でログ記録を再開するには、ログが循環したことをエージェントに通知する必要があります。 scxadmin コマンドを次の構文で -log-rotate パラメーターと共に使用できます。

scxadmin -log-rotate all

logrotate 構成ファイルの例

次の例では、linux の logrotate ユーティリティを使用して、scx.log ファイルとomiserver.logをローテーションする構成ファイルを示します。 通常、logrotate はスケジュールされたジョブとして (crond を使用して) 実行され、 /etc/logrotate.dで見つかった構成ファイルに対して動作します。 この構成ファイルをテストして使用するには、環境に適した構成を変更し、 /etc/logrotate.dにファイルをリンクまたは保存します。

#opsmgr.lr  

#Rotate scx.log  
#Weekly rotation, retain four weeks of compressed logs  
#Invoke scxadmin -log-rotate to resume logging after rotation  

/var/opt/microsoft/scx/log/scx.log {  
rotate 4  
weekly  
compress  
missingok  
notifempty  
postrotate  

/usr/sbin/scxadmin -log-rotate all  
endscript  
}

#Rotate scx.log for the monitoring user account named: monuser  
#Weekly rotation, retain four weeks of compressed logs  
#Invoke scxadmin -log-rotate to resume logging after rotation  

/var/opt/microsoft/scx/log/monuser/scx.log {  
rotate 4  
weekly  
compress  
missingok  
notifempty  
postrotate  

/usr/sbin/scxadmin -log-rotate all
endscript  
}  

#Optionally, rotate omiserver.log. This requires that OMI be stopped and started to prevent  
#impact to logging. Monthly rotation, retain two weeks of compressed logs  
#Uncomment these lines if rotation of omiserver.log is needed  

#/var/opt/microsoft/scx/log/omiserver.log{  
#        rotate 2  
#        monthly  
#        compress  
#        missingok  
#        notifempty  
#        prerotate  
#        /usr/sbin/scxadmin -stop  
#        endscript  
#        postrotate  
#        /usr/sbin/scxadmin -start  
#        endscript\
#}  

次のステップ

エージェントの展開に関する一般的な問題の解決に役立つその他のガイダンスについては、 Operations Manager 2012 トラブルシューティング: UNIX/Linux エージェント検出 Wiki を参照してください。