OpsRampで名前を付けるときは、英数字・ハイフン・アンダースコアだけを使う。これが本記事の結論です。
OpsRampの運用現場では、次のような名前をしばしば見かけます。製品名やサービス名に「+」が含まれていて、それをそのまま名前に入れたケースです。
Integration name: Tenant-A_API_Key_for_Log+Metrics
OpsRampの画面上は問題なく登録・表示されるため、気づかないまま使われ続けがちです。しかし「+」は、名前がAPIや外部ツールで使われた瞬間に、別の意味に化けることがある記号です。画面で通ることと、運用全体で安全なことは別の話です。
OpsRampに付けた名前は、画面の中だけでは使われません。APIの検索条件、自動化スクリプト、チケット連携先、CSVなどにも渡され、それぞれの仕組みが独自のルールで解釈します。
「+」の代表的な落とし穴はURLです。URLのクエリ文字列では、「+」はスペースを表す決まりになっています。そのため、名前をそのまま渡すと次のように化けます。
|
意図した名前 |
受け取り側の解釈 |
結果 |
|---|---|---|
|
|
|
検索にヒットしない |
|
|
|
正しく動く |
エンコードすれば回避できますが、すべてのスクリプトとツールでそれを徒底するのは現実的ではありません。しかもエラーにはならず「0件」と返るだけなので、原因に気づくまでに時間がかかります。
問題が表面化しやすいのは、画面の外で名前を扱う次の4つの場面です。
|
場面 |
起き得るトラブル |
|---|---|
|
REST APIの検索( |
|
|
自動化ツール(Terraform、Ansible、シェルやPowerShellのスクリプト) |
エスケープ漏れで、名前が正規表現やコマンドの引数として誤解釈される |
|
チケット・通知の連携(ServiceNow、メール、Teamsなど) |
名前をキーにした突き合わせで、エンコードの違いによる不一致が起きる |
|
CSVのエクスポート・インポート |
|
Client名、Integration名、リソース名、タグ、デバイスグループ名、モニターテンプレート名など、人が付ける名前はすべて対象です。
どの記号も、URL・OS・ディレクトリサービスなど、どこかの仕組みで「特別な意味」を持っています。
|
記号 |
特別な意味を持つ場所 |
起きること |
|---|---|---|
|
|
URLクエリ、正規表現、LDAP/ADのDN、cmd.exeのcopy |
スペース化け、繰り返し指定、エスケープが必要。IISは既定でURLパス中の |
|
|
URL |
パラメータの区切りやページ内リンクとして解釈され、値が途中で切れる |
|
|
URL、Windowsの環境変数 |
エンコード文字の開始や変数展開として扱われる |
|
|
パス、URL |
階層の区切りとして扱われる。Windowsではファイル名に使えない |
|
|
シェル、正規表現 |
ワイルドカードとして展開される |
|
|
シェル、PowerShell |
変数展開、コマンドの実行や連結、リダイレクトとして扱われる |
|
|
CSV、JSON、SQL、シェル |
列の区切りや文字列の終わりとして扱われる |
|
スペース |
コマンドの引数、URL |
引数が分かれる。 |
|
|
Windowsのパス、検索式( |
ドライブ指定や、検索式の区切りとして扱われる |
ホスト名は、規格(RFC 1123)で「英数字とハイフンのみ」と決まっています。リソース名にホスト名を使う場合は、この規則がそのまま当てはまります。
使う文字を A-Z a-z 0-9 - _ の5種類に絞れば、ほぼすべての仕組みで安全に通ります。
_、項目内の単語の区切りは -。- で始まる名前は、コマンドのオプションとして誤解釈される。LogMetrics や Log-Metrics とし、正式表記は説明欄に残す。|
対象 |
避けたい例 |
推奨例 |
|---|---|---|
|
Integration |
|
|
|
Client |
|
|
|
デバイスグループ |
|
|
|
タグ(キー:値) |
|
|
名前を変える前に、その名前を参照している場所を洗い出してください。変更そのものより、参照先の更新漏れが障害の原因になります。
Integrationのように作り直しが必要なものは、新しい名前で作成して動作を確認してから古い方を削除すると、切り替えの間に監視が途切れません。
名前は「人が読むラベル」であると同時に、「機械が扱う識別子」でもあります。画面で登録できたかどうかではなく、APIや連携先でもそのまま通るかどうかで判断してください。
OpsRampを導入する最初の段階で命名ルールを決めておくことが、後の自動化や他システムとの連携を楽にします。命名ルールの策定や既存環境の見直しは、VistaNetまでお気軽にご相談ください。