Red Hat Insightsの説明

投稿者: | 2019年9月27日

Red Hat Insightsの説明

Red Hat Enterprise Linux 8(以下RHEL8)の新機能の一つとして「今まで別売りだったRed Hat Insightの機能が、サブスクリプションしていれば最初から使える」というのがあります。

ここでは、Red Hat Insightsの機能を追いかけ、実際にどのように動作しているのかを見てみます。

1. Red Hat Insightsの概略

Red Hat Insightsは、OSにインストールされたクライアントがシステムの情報を吸い上げ、Red Hat社が提供するInsightのサイトに情報を送付しWebUIを通して可視化するものです。このInsightsを用いることで、各システムの「現在のヘルスチェック」を行うようなことが出来ます。

まず、今後の見通しを良くするため、Red Hat Insightsのシステム構成図を簡単に記します。それぞれの用語の細かい説明は、記事の後半部分(より深い解説)で説明します。

  • insights-clientinsights-core内のClient APIに対するClient API Wrapperです。実際に情報を収集し、HTTPSを用いてInsights Engineに情報を送信します。
  • Insights Engine(insights-core)OSSで提供されているコンポーネントで、データ収集と、Parser/Combiner/Ruleを用いた解析を担っています。
  • Insights Customer Interface実際に情報をわかりやすく見るGUIです。Red Hatの提供するinsightsのサイト(https://cloud.redhat.com/insights/overview)がこれに該当します。

2. Red Hat Insightsへのシステムの登録

システムをRed Hat Insightsに登録するには次のようなステップを行います。RHEL8に関しては、insights-clinetがデフォルトでインストールされているため、登録は実に簡単です。

  1. 登録したいシステムのターミナルで、root権限で”subscription-manager register –auto-attach”を実行し、subscriptionの情報を登録します。
  2. Sroot権限で“insights-client –register”を実行し、システムをRed Hat社のinsightsに登録します。

3. Insights WebUIの一般的な動作

Red Hat Insightsのサイトを確認すると登録されている全てのシステムの状況が「Overview」で出てきます。 また、左側のペインから

  • Overview
  • Rules
  • Inventory
  • Remediations
  • Documentation

が選択できます。これらの項目について簡単に説明します。


3.1. Overview

こちらに、Insightsに登録したシステムの一覧が出てきます。

Insightsでは、Insights-clientが取得したシステムの情報がInsights-Engineに届けられます。Insights-Engineに入ってきた情報は、「Parser」「Combiner」「Rule」と呼ばれる情報分析ルールに基づいて処理されていき、InsightsのWebUIに情報を出力しています。

この「Parser」「Combiner」「Rule」はInsights Engineの中に予め準備されており、Ruleに該当したものだけがOverviewの所に表示されます。RuleにはSeverityやCategory等の情報も用意されています。

各Ruleの内容(概略と説明)は、左側ペインの「Rules」で確認できます。

3.2. Rule

左ペインのRulesをクリックすると、Insights-Engineに登録されているRuleの概略と内容が表示されます。

  1. デフォルトではフィルタが適用された状態で
    • SeverityがImportant以上のRuleで
    • システムが該当しているもの

    のみが表示されています(図の緑で囲った部分にフィルタがあります)。まずは、これらのフィルタを解除してみます。

  2. 1. のRuleは「RHEL8でサポートされていないネットワークドライバを使用している」というルールになります。一方で、2番めのRuleは「TCP SACK Panic」というDoS攻撃が引き起こされる、Linuカーネルの脆弱性に関するものになります。Ruleにはセキュリティに関するものやシステムのドライバの問題など、システム環境に関して多岐に渡ったものが準備されています。
  3. Ruleの箇所をクリックすると、Rule(この場合は脆弱性)の詳細と該当するシステム(この場合は”HogeHoge”)、また修正で更新した際に再起動が必要か、等の情報が表示されます。
  4. また、”Knowledge Base Article”をクリックすると、RHNの脆弱性KBが表示されます。
  5. システム名をクリックすると、対象のシステムで脆弱性を解消する方法(更新方法や更新できない場合の緩和手段の手順)が表示されます。

3.3. Inventory

左ペインのInventoryをクリックすると、Insights-Engineに登録されているシステムが表示されます。

  1. システムをクリックすると、システムの概略が表示されます。システム名やBIOSのバージョン、OSのバージョン情報、インストールされているモジュール、インストールされているパッケージ情報等も表示されます。
  2. Kernelモジュールをクリックするとシステムにインストールされているモジュールが表示されます。
  3. 「Insights」をクリックすると、insightsのRuleで引っかかった問題と対処方法が表示されます。

3.4. Remediations

システムの脆弱性を修正するために出力した「Ansible Playbook」等がこちらに表示されます。

3.5. Documentation

左ペインのDocumentationをクリックすると、RHN上のInsightsに関するドキュメントが表示されます

4. insights-clientの一般的な動作

4.1 insights-clientの基本的な説明

insights-clientをコマンドで実行する際には、/usr/bin/insights-clientを使用します。/usr/bin/insightsは/usr/bin/insights-client-runをキックし、システムの情報を取得します。また、

/usr/bin/redhat-access-insights

は旧パッケージ名(redhat-access-insights)と互換性を担保するものになります。

4.2 insights-clientの参照する設定ファイル

/usr/bin/insights-clientは実行時に設定ファイルを参照します。設定ファイルは/etc/insights-client/insights-client.confファイルになっています。この設定ファイルの中身ですが、以下のようになっています。

オプション説明
log levelログレベルを(DEBUG, INFO, WARNING, ERROR, CRITICAL)から設定できる。デフォルトはDEBUG
auto_configSatelliteサーバを用いた自動設定。デフォルトはYes
authmethod / username / passwordRed Hat Insightサーバへの接続情報
base_urlRed Hat InsightサーバのURL。デフォルトはcert-api.access.redhat.com:443/r/insights
proxyシステムからRed Hat InsightサーバまでにProxyが設定されている場合にはこれで指定する
auto_update自動更新を有効にする
display_nameRed Hat Insightサーバでの表示名

4.3 insights-clientのオプション

また、insights-clientを実行する際のオプションですが、下記が主なものになります。

使い方: insights-client [オプション]

オプション説明
–complianceOpenSCAPを用いてシステムをスキャンしレポートをアップロードします。
–conf設定ファイルを指定します。
–enable-schedule / –disable-scheduleスケジューリングを有効/無効にします。
–register / –unregisterシステムをRed Hat Insight Serviceに登録・解除します。
–test-connectionRed Hat Insight Serviceへの接続をテストします。
–off-lineRed Hat Insight Serviceに情報を送らず、/var/tmp/以下に情報をtar.gzファイルとして出力します。
–statusマシンがRed Hat Insightに登録しているかどうかがわかります。

4.4 insights-clientの実行例

前項で説明しましたが、insights-clientには色々なオプションが用意されています。以下では、幾つか代表的なものを試してみます。

  1. insights-client –test-connectionRed Hat Insight Serviceへの接続をテストします。
    [root@rhel8test ~]# insights-client --test-connection
    Running Connection Tests...
    === Begin Upload URL Connection Test ===
    HTTP Status Code: 200
    HTTP Status Text: OK
    HTTP Response Text:
    Successfully connected to: https://cert-api.access.redhat.com/r/insights/uploads/
    === End Upload URL Connection Test: SUCCESS ===
    
    === Begin API URL Connection Test ===
    HTTP Status Code: 200
    HTTP Status Text: OK
    HTTP Response Text: lub-dub
    Successfully connected to: https://cert-api.access.redhat.com/r/insights/
    === End API URL Connection Test: SUCCESS ===
    
    Connectivity tests completed successfully
    See /var/log/insights-client/insights-client.log for more details.
    [root@rhel8test ~]#
    
  2. insihts-client –statusマシンがRed Hat Insightに登録しているかどうかがわかります。
    [root@rhel8test ~]# insights-client --status
    System is registered locally via .registered file. Registered at 2019-07-02T08:51:52.080635 
    Insights API confirms registration.
    [root@rhel8test ~]#
    
  3. insights-client –offlineRed Hat Insight Serviceに情報を送らず、/var/tmp/以下に情報をtar.gzファイルとして出力します。
    [root@rhel8test ~]# insights-client --offline
    Starting to collect Insights data for rhel8test.localdomain
    Archive saved at /var/tmp/eioxnz3p/insights-rhel8test.localdomain-20190823233138.tar.gz
    [root@rhel8test ~]# ls -lh /var/tmp/eioxnz3p/insights-rhel8test.localdomain-20190823233138.tar.gz
    -rw-r--r--. 1 root root 239K  8月 23 23:32 /var/tmp/eioxnz3p/insights-rhel8test.localdomain-20190823233138.tar.gz
    [root@rhel8test ~]#
    

 

Red Hat Insights 関連記事