ACC 詳細測定:SAM ソフトウェア合計使用状況データの収集と構成<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } .kb-wrapper{font-family:'Lato',sans-serif;font-size:12pt;line-height:1.7;color:#000;max-width:100%} .kb-wrapper p{margin:0 0 12px 0} .kb-wrapper ul{margin:0 0 12px 0;padding-left:24px} .kb-wrapper li{margin-bottom:8px} .kb-wrapper h2{font-size:14pt;font-weight:900;border-bottom:2px solid #e8fce4;padding-bottom:4px;margin:28px 0 10px 0} .kb-wrapper h3{font-size:12pt;font-weight:900;border-bottom:2px solid #e8fce4;padding-bottom:4px;margin:20px 0 8px 0} .kb-wrapper .note{border-left:4px solid #52B8FF;background:#e6f4ff;padding:10px 14px;margin:14px 0} .kb-wrapper .warning{border-left:4px solid #e6a817;background:#fff4e0;padding:10px 14px;margin:14px 0} .kb-wrapper code{background:#e6f0f5;color:#032D42;border:1px solid #b8cfd8;padding:1px 4px;border-radius:3px;font-family:monospace;font-size:11pt} .kb-wrapper pre{background:#e6f0f5;color:#032D42;border:1px solid #b8cfd8;padding:12px 16px;overflow-x:auto;font-family:monospace;font-size:11pt;line-height:1.5;margin:10px 0 16px 0;border-radius:3px} .kb-wrapper ol.steps{list-style:none;padding:0;counter-reset:step-counter} .kb-wrapper ol.steps>li{counter-increment:step-counter;display:flex;align-items:flex-start;margin-bottom:16px;list-style:none} .kb-wrapper ol.steps>li::before{content:counter(step-counter);flex-shrink:0;width:28px;height:28px;border-radius:50%;background:#032D42;color:#63DF4E;font-weight:900;font-size:11pt;text-align:center;line-height:28px;display:block;margin-right:16px} .kb-wrapper ol.steps>li>div{flex:1} .kb-wrapper ol.sub-steps{list-style:lower-alpha;padding-left:24px;margin:10px 0 4px 0} .kb-wrapper table{width:100%;border-collapse:collapse;margin:14px 0;font-size:12pt} .kb-wrapper th{background:#032D42;color:#fff;padding:9px 12px;text-align:left;font-weight:700} .kb-wrapper td{padding:8px 12px;border-bottom:1px solid #ddd;vertical-align:top} .kb-wrapper tr:nth-child(even) td{background:#e8fce4} .kb-wrapper p.disclaimer{font-size:10pt;font-style:italic} 要約 この記事では、エージェントクライアントコレクター (ACC) の SAM Advanced Metering 機能が管理対象エンドポイントでプロセスレベルのソフトウェア使用状況データを収集する方法と、SAM Professional ライセンスの再利用をサポートするために ServiceNow インスタンスでそのデータを処理する方法について説明します。 SAM Advanced Metering は、 installed_software_with_sam_metering チェックの一部として実行されます。インストールされているソフトウェアのユーザーごと、プロセスごとの経過使用時間を収集し、そのデータをステージングテーブルに書き込みます。SAM Professional 再利用ルールでは、このステージングデータを使用して、再利用の対象となる十分に活用されていないソフトウェアライセンスを特定します。 同じチェックモジュールは、基本的な測定 (ソフトウェアエントリごとに最後に使用されたタイムスタンプ) も収集します。基本測定と SAM 詳細測定は、同じチェック結果に別々のデータ構造を生成します。 プラグインと依存関係の要件 ACC ヴィジビリティコンテンツプラグイン (com.sn_acc_vis_content) は、アクティブ化する前に次のプラグインをアクティブ化する必要があります。 プラグインロールcom.agent-nowACC ライフサイクル、MID サーバーセットアップ、ポリシーエンジン、およびエージェントテーブルcom.snc.discovery.ip_basedIP ベースのディスカバリープラットフォームcom.sn_cmdb_ci_classCI クラス定義 使用状況データをステージングテーブルに書き込むには、SAM Professional プラグイン (com.snc.samp) もアクティブにする必要があります。 SAM Advanced Metering の仕組み ACC エージェントは、 installed_software_with_sam_metering チェックを実行すると、プロセスレベルの使用状況データが収集され、 sam_advanced ペイロードとして ServiceNow インスタンスに送信されます。次に、インスタンスは各エントリをインストール済みソフトウェアレコードと照合し、使用状況データをステージングテーブルに書き込みようとします。 ACC エージェント (監視対象エンドポイント上) |+-- installed_software_with_sam_meteringチェック | | |+-- osqueryd モード (デフォルト) | |アキュムレータmarker.json読み取りosqueryd.snapshots.log →ビルド | | |+-- 非 osqueryd モード |エージェント SQLite データベースを読み取る |+-- ServiceNow インスタンス→sam_advancedペイロード (MID サーバー経由) |+-- ルックアップ:samp_sw_product_process (SAM 製品→プロセス名) +-- ルックアップ:cmdb_sam_sw_install (CI にインストールされているソフトウェア) +-- チェック:samp_m2m_rule_product (再利用ルール) +-- 書き込み:sn_acc_vis_content_sam_software_usage_staging データ収集モード SAM Advanced Metering は、次の 2 つのモードのいずれかで動作します。モードによって、エージェントがエンドポイントでプロセス使用状況データを収集する方法が決まります。 osqueryd モード (デフォルト) osqueryd デーモンはエンドポイントで継続的に実行され、sam-metering.conf 構成パックとともにロードされます。300 秒ごとに、パックは processes テーブルに対してスナップショット SQL クエリを実行し、結果を osqueryd.snapshots.log に書き込みます。 メインチェックが開始されると、エージェントはosqueryd.snapshots.logを読み取り、username → process_name → pid-start_time をキーとする累積ファイル (marker.json) を作成します。このファイルは、チェック実行全体の累積経過時間を追跡します。前回のアキュムレータからのデルタは、 sam_advanced ペイロードとしてインスタンスに送信されます。 非 osqueryd モード デフォルトで非アクティブです。 バックグラウンドチェックは 480 秒ごとに実行され、エージェントのローカル SQLite データベースから使用状況メトリクスが読み取られ、データが集計され、ソーステーブルがクリアされます。メインチェックが開始されると、 osqueryd.snapshots.logではなく SQLite データベースから読み取られます。 モードの切り替え モードは、 sn_acc_vis_content.enable_sam_collection_without_osqueryd システムプロパティによって制御されます。 プロパティ値モードインスタンスでアクティブなポリシーfalse (デフォルト)osquerydSAM バックグラウンドポリシーtrue非 osquerySAM バックグラウンドポリシー (非 OsqueryD) このプロパティを更新すると、ビジネスルールによって適切なポリシーが自動的にアクティブ化または非アクティブ化されます。最初にプロパティを設定せずに osqueryd 以外のポリシーを手動でアクティブにしないでください。このプロパティは、メインチェックがエージェントのローカルに保存されている使用状況情報を見つける方法を制御します。 収集されたデータがインスタンスでどのように処理されるか チェック結果がインスタンスに到達すると、 sam_advanced ペイロードは次のように処理されます。データが見つからない場合、各ステップはサイレントスキップされます。ステージングテーブルにレコードがないことが失敗の唯一のインジケーターです。 SAM Professional プラグイン (com.snc.samp) がアクティブであることを確認します。アクティブでない場合、処理は停止し、何も書き込まれません。ペイロード内の各エントリ (ユーザー名、プロセス名、経過時間) について: プロセスから製品へのマッピング [samp_sw_product_process] テーブルでプロセス名を検索します。一致するものが見つからない場合は、エントリをスキップします。エージェント CI のソフトウェアインストール [cmdb_sam_sw_install] テーブルで、一致する SAM 製品を検索します。インストールレコードが存在しない場合は、エントリをスキップします。sn_acc_vis_content.disable_sam_reclamation_rules_for_licensable_softwares が true に設定されていない限り、再利用ルール [samp_m2m_rule_product] テーブルを確認してください。製品の再利用ルールが存在しない場合は、エントリをスキップします。ソフトウェア使用状況ステージング [sn_acc_vis_content_sam_software_usage_staging] テーブルにエントリを書き込みます。 セットアップ要件 SAM Advanced Metering でステージングレコードが生成される前に、以下を確認してください。 インスタンス com.agent-now プラグインがアクティブですcom.snc.discovery.ip_based プラグインがアクティブですcom.snc.samp (SAM Professional) プラグインがアクティブですcom.sn_acc_vis_content プラグインがアクティブです ポリシー SAM 測定ポリシーがアクティブで、正しい CI クラス (cmdb_ci_computer) にアサインされているosqueryd モードの場合: osqueryd がエンドポイントにインストールされている非 osqueryd モードの場合: sn_acc_vis_content.enable_sam_collection_without_osqueryd は true に設定されます データ プロセスから製品へのマッピング [samp_sw_product_process] テーブルにターゲットソフトウェアのプロセス名が入力されますターゲット CI のソフトウェアインストール [cmdb_sam_sw_install] レコードが存在します再利用ルールがターゲットソフトウェア製品の再利用ルール [samp_m2m_rule_product] テーブルに存在するか、 sn_acc_vis_content.disable_sam_reclamation_rules_for_licensable_softwares が true に設定されている エージェント許可リストの要件 チェックを実行するには、次のスクリプトがエージェント許可リスト (check-allow-list.json) に存在する必要があります。 スクリプト必要な引数パターンsam_processor.rb引数パターンは不要ですsam_processor_without_osqueryd.rb引数パターンは不要ですendpoint_discovery.rb--select=... を含める必要があります。installed_software_with_sam_metering...(正規表現で検証済み) 関連するシステムプロパティ 財産デフォルト説明sn_acc_vis_content.enable_sam_collection_without_osquerydfalseosqueryd モード (false) と非 osqueryd モード (true) を切り替えます。このプロパティを更新すると、適切な SAM ポリシーをアクティブ化または非アクティブ化するビジネスルールがトリガーされます。sn_acc_vis_content.enable_license_key_discoveryfalsetrue に設定すると、チェック中にソフトウェアライセンスキーも収集します。sn_acc_vis_content.disable_sam_reclamation_rules_for_licensable_softwaresfalsetrue に設定すると、その製品の再利用ルールが存在するかどうかに関係なく、ライセンス可能なすべてのソフトウェアのステージングデータが書き込まれます。sn_agent.config_publish.max_payload_size15000000エージェントに送信される構成公開プローブの最大ペイロードサイズ (バイト)。sn_agent.mid.agent_expiration_sec259200エージェントキャッシュの有効期間 (秒単位) (デフォルトは 3 日)。 関連テーブル テーブル目的sn_acc_vis_content_sam_software_usage_stagingSAM Advanced Metering 出力:CI ごとのユーザーごとのプロセス使用率samp_sw_product_processプロセス名から SAM 製品へのマッピング:ステージング書き込みを行うにはこの名前を設定する必要があります。cmdb_sam_sw_installソフトウェアインストールレコード:インスタンス側の処理中に CI と照合されますsamp_m2m_rule_productSAM 再利用ルール:プロパティの上書きが設定されていない限り、ステージング書き込みに必要 関連リンク ACC-V:SAM 合計使用状況メトリクスのトラブルシューティングガイド プッシュベースの Discovery と SAM の併用 ACC 基本測定:データ収集と最終使用タイムスタンプ処理