第11章 Satellite Server のメンテナンス

本章では、監査レコードの取り扱い、未使用タスクの消去方法、いっぱいになったディスクから Pulp を復元する方法、MongoDB からディスク領域を解放する方法、Red Hat Insights を使って問題が発生する前に事前にシステムを診断する方法などの Red Hat Satellite Server のメンテナンス方法について説明します。

11.1. 監査レコードの削除

監査レコードは Satellite で自動作成されます。foreman-rake audits:expire コマンドを使うと、監査はいつでも取り消すことができます。また、cron ジョブを使用して、設定した間隔で、監査レコードの削除をスケジューリングすることも可能です。

デフォルトでは、foreman-rake audits:expire コマンドを使用すると 90 日以上経過した監査レコードが削除されます。days オプションに日数を追加して、監査レコードを保持する日数を指定することが可能です。

たとえば、7 日以上経過した監査レコードを削除する場合は、以下のコマンドを実行します。

# foreman-rake audits:expire days=7

11.2. 監査レコードの匿名化

foreman-rake audits:anonymize コマンドを使うと、データベースで監査レコードを保持しつつ、ユーザーアカウントや IP 情報を削除できます。また、cron ジョブを使用して、設定した間隔で、監査レコードの削除をスケジューリングすることも可能です。

デフォルトでは、foreman-rake audits:anonymize コマンドを使用すると 90 日以上経過した監査レコードが匿名化されます。days オプションに日数を追加して、監査レコードを保持する日数を指定することが可能です。

たとえば、7 日以上経過した監査レコードを匿名化する場合は、以下のコマンドを実行します。

# foreman-rake audits:anonymize days=7

11.3. 未使用タスクのクリーニング

未使用タスクをクリーンアップすると、データベース内のディスクスペースを削減し、ディスク増加率を制限することができます。クリーニングを定期的に実行すると、Satellite のバックアップがより短時間で完了し、全体的なパフォーマンスも上がります。

未使用タスクのクリーニング

インストーラーには、以前のタスクを自動的に削除する cron ジョブ有効化する機能があります。意図しないタスクの消去を避けるために、この機能はデフォルトでは有効になっていません。

  1. cron ジョブを有効にします。

    # satellite-installer --foreman-plugin-tasks-automatic-cleanup true
  2. デフォルトでは、cron ジョブは毎日午後 7 時 45 分に実行するようにスケジュールされています。この時間を変更するには、--foreman-plugin-tasks-cron-line パラメーターの値を変更します。

    # satellite-installer --foreman-plugin-tasks-cron-line "00 15 * * *"

    上記のコマンドでは、cron ジョブが毎日午後 3 時に実行されるようになります。cron のフォーマットについての詳細は、man 5 crontab を参照してください。

全タスクが削除される頻度の変更と、cron ジョブの詳細な設定は、/etc/foreman/plugins/foreman-tasks.yaml ファイルのコンテンツを変更して行います。

11.4. 完全なディスクからのリカバリー

以下の手順では、Pulp データベースのある論理ボリューム (LV) に空きスペースがない場合の解決方法について説明します。

完全なディスクからのリカバリー

  1. 実行中の Pulp タスクを完了させます。新たなタスクは開始しないでください。ディスクに空きスペースがないため、失敗することになります。
  2. /var/lib/pulp ディレクトリーのある LV に十分な空きスペースがあることを確認します。以下のような方法があります。

    1. 孤立したコンテンツを削除します:

      # foreman-rake katello:delete_orphaned_content RAILS_ENV=production

      これは 1 週間ごとに実行されるので、多くのスペースが解放されるわけではありません。

    2. できるだけ多くのリポートのダウンロードポリシーを 即時 から オンデマンド に変更し、ダウンロード済みパッケージを削除します。手順については、カスタマーポータルの Red Hat ナレッジソリューション How to change syncing policy for Repositories on Satellite 6.2 from "Immediate" to "On-Demand" を参照してください。
    3. /var/lib/pulp ディレクトリーのある LV 上のファイルシステムを拡張します。詳細は、論理ボリュームマネージャーの管理論理ボリュームのファイルシステムの拡張 を参照してください。

      注記

      (ext3、ext4、または xfs などの) 通常外のファイルシステムを使用している場合は、そのファイルシステムをアンマウントして使用されていない状態にする必要があります。その場合、以下を実行します。

      • Satellite サービスを停止します。
      # foreman-maintain service stop
      • LV 上のファイルシステムを拡張します。
      • Satellite サービスを起動します。
      # foreman-maintain service start
  3. ディスクに空きスペースがないために Pulp タスクが失敗していた場合は、それらのタスクを再実行します。

11.5. MongoDB からのディスク領域の確保

MongoDB データベースは、特に負荷の高いデプロイメントにおいて、ディスク領域を大幅に使用できます。以下の手順では、このディスク領域の一部を確保する方法を説明しています。

前提条件

  • MongoDB データベースのバックアップ。バックアップの作成手順については、「完全バックアップのオフライン実行」を参照してください。
  • Pulp サービスの停止。

    # systemctl stop goferd httpd pulp_workers pulp_celerybeat \
    pulp_resource_manager pulp_streamer

MongoDB からのディスク領域の確保

  1. MongoDB シェルにアクセスします。

    # mongo pulp_database
  2. 修復前の MongoDB のディスク領域の使用量を確認します。

    > db.stats()
  3. 現在の MongoDB データベースに 2 GB を足したサイズに相当する空のディスク領域があることを確認します。MongoDB データベースを含むボリュームに十分な領域がない場合、別のボリュームをマウントし、これを修復に使用することができます。
  4. 修復コマンドを入力します。

    > db.repairDatabase()

    データベースのサイズによっては、修復コマンドは、その他すべての操作をブロックし、完了までに時間がかかる場合があることに注意してください。

  5. 修復後の MongoDB のディスク領域の使用量を確認します。

    > db.stats()
  6. Pulp サービスを開始します。

    # systemctl start goferd httpd pulp_workers pulp_celerybeat \
    pulp_resource_manager pulp_streamer

11.6. Satellite Server での Red Hat Insights の使用

Red Hat Insights を使用すると、セキュリティー違反、パフォーマンスの低下、および安定性の消失に関連するシステムとダウンタイムを診断できます。ダッシュボードを使用して、安定性、セキュリティー、またはパフォーマンスの主要なリスクを素早く特定できます。また、カテゴリー別に分類したり、影響度および解決方法の詳細を表示したり、影響を受けたシステムを調べたりすることができます。

サブスクリプションマニフェストに Red Hat Insights のエンタイトルメントを追加する必要はありません。

Satellite Server の Red Hat Insights への登録

Satellite Server を管理し、Satellite で発生する可能性のある問題を診断する機能を向上するには、Satellite Server を Red Hat Insights に登録します。詳細は、『Red Hat Insights Getting Started』を参照してください。

Satellite Server の Red Hat Insights への登録

Red Hat Insights を使用して、Satellite で、管理するホストをモニタリングするには、最初にホストをインストールして Red Hat Insights に登録する必要があります。

Puppet を使用して、または手動でホストをインストールおよび登録する方法については、Red Hat Insights Getting Started を参照してください。

Ansible ロールを使用した Red Hat Insights のデプロイ

RedHatInsights.insights-client Ansible ロールを使用すると、Red Hat Insights とのホストのインストールおよび登録を自動化することができます。Satellite にこのロールを追加するには、4章Ansible ロールの管理 の手順に従ってください。

  1. RedHatInsights.insights-client ロールをホストに追加します。新規ホストについては「ホストの作成」を、任意のホストにロールを追加する方法については「既存ホストへの Ansible ロールの割り当て」を参照してください。
  2. RedHatInsights.insights-client ロールをホストで実行するには、ホスト > すべてのホスト に移動して、使用するホスト名をクリックします。
  3. Ansible ロールの実行 ボタンをクリックします。

ロール実行が完了したら、Satellite web UI の Insights > 概要 ページで追加したホストの表示と作業が可能になります。

追加情報

  • Red Hat Insights プラグインにシステム更新を適用するには、更新後に httpd restart を使用します。
  • Red Hat Insights およびすべてのプラグインのログを確認するには、/var/log/foreman/production.log に移動します。
  • Red Hat Insights との接続に問題がある場合は、証明書が最新のものであることを確認してください。サブスクリプションマニフェストをリフレッシュして証明書を更新します。

ホストの Insights プランの作成

Satellite 6 で、Red Hat Insights 修復プランを作成し、Satellite ホストでこのプランを実行します。

手順

プランを作成するには、以下の手順を行います。

  1. Satellite Web UI で Insights > インベントリー に移動して、Insights プランに追加するホストを選択します。
  2. アクション リストから 新規プラン/Playbook の作成 を選択します。
  3. プラン/Playbook ビルダーウィンドウから、新規プランの作成 を選択して、プランの名前を入力します。
  4. 特定のシステム、グループまたは全システムに、ルールを適用するかどうかを選択します。
  5. プランに追加するルールを 1 つまたは複数選択します。フィルター フィールドを使用して、特定のキーワードを検索します。
  6. 保存をクリックします。
  7. プランナーウィンドウで、Playbook の実行 を選択してます。プランナーウィンドウに移動するには、Insights > プランナー をクリックします。

ジョブウィンドウでは、プランの進捗を表示できます。