5.4. Microsoft SQL Server のワークロード

タグによるグローバルフィルター 機能を使用して、Red Hat Insights for Red Hat Enterprise Linux ユーザーは、Microsoft SQL Server ワークロードを実行しているシステムのグループを選択できます。

2019 年 5 月、Red Hat Insights チームは、Red Hat Enterprise Linux (RHEL) で実行されている Microsoft SQL Server 向けの RHEL 推奨事項の新しい一連の Insights を導入しました。これらのルールは、オペレーティングシステムレベルの設定が Microsoft および Red Hat から文書化された推奨事項に準拠していないことを管理者に警告します。

これらのルールの制限は、データベース自体ではなく、主にオペレーティングシステムを分析することでした。Insights for Red Hat Enterprise Linux および RHEL 8.5 の最新リリースでは、Microsoft SQL Assessment API が導入されています。SQL Assessment API は、MS SQL Server のデータベース設定のベストプラクティスを評価するメカニズムを提供します。API には、Microsoft SQL Server チームが提案するベストプラクティスルールを含むルールセットが付属しています。このルールセットは新しいバージョンのリリースで拡張されていますが、API は高度にカスタマイズ可能で拡張可能なソリューションを提供することを目的として構築されており、ユーザーはデフォルトのルールを調整して独自のルールを作成できます。

SQL Assessment API は PowerShell for Linux (Microsoft から入手可能) でサポートされており、Microsoft は、API を呼び出してその結果を JSON 形式のファイルとして保存するために使用できる PowerShell スクリプトを開発しました。RHEL 8.5 では、Insights クライアントがこの JSON ファイルをアップロードし、結果を Insights for Red Hat Enterprise Linux UI にわかりやすい形式で表示するようになりました。

Insights for Red Hat Enterprise Linux での SQL Server 評価の詳細については、Red Hat Insights で利用できるようになった SQL Server データベースのベストプラクティス を参照してください。

5.4.1. SQL Server 評価の設定

Red Hat Insights に情報を提供するように Microsoft SQL Assessment API を設定するには、データベース管理者は以下の手順を実行する必要があります。

手順

  1. 評価するデータベースで、SQL 認証を使用して SQL Server 評価用のログインを作成します。次の Transact-SQL は、ログインを作成します。<*PASSWORD*> を強力なパスワードに置き換えます。

    USE [master]
    GO
    CREATE LOGIN [assessmentLogin] with PASSWORD= N'<*PASSWORD*>’
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [assessmentLogin]
    GO
  2. システムにログインするための認証情報を次のように保存します。ここでも <*PASSWORD*> をステップ 1 で使用したパスワードに置き換えます。

    # echo "assessmentLogin" > /var/opt/mssql/secrets/assessment
    # echo "<*PASSWORD*>" >> /var/opt/mssql/secrets/assessment
  3. mssql ユーザーのみが資格情報にアクセスできるようにして、評価ツールで使用される資格情報を保護します。

    # chmod 0600 /var/opt/mssql/secrets/assessment
    # chown mssql:mssql /var/opt/mssql/secrets/assessment
  4. microsoft-tools リポジトリーから PowerShell をダウンロードします。これは、SQL Server インストールの一部として mssql-tools および mssqlodbc17 パッケージをインストールしたときに設定したものと同じリポジトリーです。

    # yum -y  install powershell
  5. PowerShell 用の SQLServer モジュールをインストールします。このモジュールには、評価 API が含まれています。

    # su mssql -c "/usr/bin/pwsh -Command Install-Module SqlServer"
  6. Microsoft のサンプル GitHub リポジトリーから runassessment スクリプトをダウンロードします。mssql によって所有され、実行可能であることを確認してください。

    # /bin/curl -LJ0 -o /opt/mssql/bin/runassessment.ps1 https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/manage/sql-assessment-api/RHEL/runassessment.ps1
    # chown mssql:mssql /opt/mssql/bin/runassessment.ps1
    # chmod 0700 /opt/mssql/bin/runassessment.ps1
  7. Red Hat Insights が使用するログファイルを保存するディレクトリーを作成します。繰り返しますが、mssql によって所有され、実行可能であることを確認してください。

    # mkdir /var/opt/mssql/log/assessments/
    # chown mssql:mssql /var/opt/mssql/log/assessments/
    # chmod 0700 /var/opt/mssql/log/assessments/
  8. 最初の評価を作成できるようになりましたが、mssql ユーザーとしてより安全に cron または systemd を介して後続の評価を自動的に実行できるように、必ずユーザー mssql として作成してください。

    # su mssql -c "pwsh -File /opt/mssql/bin/runassessment.ps1"
  9. Insights for Red Hat Enterprise Linux は、次回の実行時に評価を自動的に含めます。または、次のコマンドを実行して Insights クライアントを開始することもできます。

    # insights-client

5.4.1.1. タイマーでの SQL 評価の設定

SQL Server の評価は完了するまでに 10 分以上かかる場合があるため、評価プロセスを毎日自動的に実行することが理にかなっている場合とそうでない場合があります。それらを自動的に実行したい場合は、Red Hat SQL Server コミュニティーが評価ツールで使用する systemd サービスとタイマーファイルを作成しています。

手順

  1. Red Hat public SQL Server Community of Practice GitHub サイト から次のファイルをダウンロードします。

    • mssql-runassessment.service
    • mssql-runassessment.timer
  2. 両方のファイルをディレクトリー /etc/systemd/system/ にインストールします。

    # cp mssql-runassessment.service /etc/systemd/system/
    # cp mssql-runassessment.timer /etc/systemd/system/
    # chmod 644 /etc/systemd/system/
  3. 次のコマンドでタイマーを有効にします。

    # systemctl enable --now mssql-runassessment.timer