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がデフォルトでインストールされているため、登録は実に簡単です。
- 登録したいシステムのターミナルで、root権限で”subscription-manager register –auto-attach”を実行し、subscriptionの情報を登録します。
- 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の概略と内容が表示されます。
- デフォルトではフィルタが適用された状態で
- SeverityがImportant以上のRuleで
- システムが該当しているもの
のみが表示されています(図の緑で囲った部分にフィルタがあります)。まずは、これらのフィルタを解除してみます。
- 1. のRuleは「RHEL8でサポートされていないネットワークドライバを使用している」というルールになります。一方で、2番めのRuleは「TCP SACK Panic」というDoS攻撃が引き起こされる、Linuカーネルの脆弱性に関するものになります。Ruleにはセキュリティに関するものやシステムのドライバの問題など、システム環境に関して多岐に渡ったものが準備されています。
- Ruleの箇所をクリックすると、Rule(この場合は脆弱性)の詳細と該当するシステム(この場合は”HogeHoge”)、また修正で更新した際に再起動が必要か、等の情報が表示されます。
- また、”Knowledge Base Article”をクリックすると、RHNの脆弱性KBが表示されます。
- システム名をクリックすると、対象のシステムで脆弱性を解消する方法(更新方法や更新できない場合の緩和手段の手順)が表示されます。
3.3. Inventory
左ペインのInventoryをクリックすると、Insights-Engineに登録されているシステムが表示されます。
- システムをクリックすると、システムの概略が表示されます。システム名やBIOSのバージョン、OSのバージョン情報、インストールされているモジュール、インストールされているパッケージ情報等も表示されます。
- Kernelモジュールをクリックするとシステムにインストールされているモジュールが表示されます。
- 「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_config | Satelliteサーバを用いた自動設定。デフォルトはYes |
authmethod / username / password | Red Hat Insightサーバへの接続情報 |
base_url | Red Hat InsightサーバのURL。デフォルトはcert-api.access.redhat.com:443/r/insights |
proxy | システムからRed Hat InsightサーバまでにProxyが設定されている場合にはこれで指定する |
auto_update | 自動更新を有効にする |
display_name | Red Hat Insightサーバでの表示名 |
4.3 insights-clientのオプション
また、insights-clientを実行する際のオプションですが、下記が主なものになります。
使い方: insights-client [オプション]
オプション | 説明 |
---|---|
–compliance | OpenSCAPを用いてシステムをスキャンしレポートをアップロードします。 |
–conf | 設定ファイルを指定します。 |
–enable-schedule / –disable-schedule | スケジューリングを有効/無効にします。 |
–register / –unregister | システムをRed Hat Insight Serviceに登録・解除します。 |
–test-connection | Red Hat Insight Serviceへの接続をテストします。 |
–off-line | Red Hat Insight Serviceに情報を送らず、/var/tmp/以下に情報をtar.gzファイルとして出力します。 |
–status | マシンがRed Hat Insightに登録しているかどうかがわかります。 |
4.4 insights-clientの実行例
前項で説明しましたが、insights-clientには色々なオプションが用意されています。以下では、幾つか代表的なものを試してみます。
- 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 ~]#
- 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 ~]#
- 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 関連記事
- Red Hat Insightsとは
https://redhat.sios.jp/blog/guest-blog/red-hat-insights/ - Red Hat InsightsのPlanner機能
https://redhat.sios.jp/blog/guest-blog/red-hat-insights-planner/ - Red Hat Insightsの説明(Part 1)
https://redhat.sios.jp/blog/sios-blog/insights-part1/ - Red Hat Insightsの説明 (Part 2)
https://redhat.sios.jp/blog/sios-blog/insights-part2/ - Red Hat Insightsの説明 (Part 3)
https://redhat.sios.jp/blog/sios-blog/insights-part3/