Sonar のスキャンについて、SSH/WinRMによるホスト名の取得に対応しました

Kompira Sonar について、SSH/WinRMによるホスト名の取得に対応するアップデートを行いました。

今まではDNS、もしくはNetBIOSによる名前解決でのみホスト名の取得が行われておりましたが、今回のアップデートによってSSH/WinRM経由でもホスト名を取得できるようになりました。

f:id:fp4t1425:20200821182938p:plain
スキャン後のノードリストサンプル

f:id:fp4t1425:20200821180331p:plain
既存ノードの場合、赤枠のホスト名部分がSSH/WinRMで取得可能になります

取得ロジック

Linux/UnixであればSSHで、WindowsであればWinRMでホスト名を取得することが可能ですが、なるべく確実にホスト名が取得できるようそれぞれ下記のロジックで取得を行います。

SSHの場合(Linux/Unix)

  1. hostname -f コマンドでのFQDN取得
  2. hostname コマンドでの単体ホスト名取得
    -f オプションが実装されていない環境も多いため、FQDNでの取得に失敗した場合はこちらでの取得になります

WinRMの場合(Windows)

下記のPowerShellコマンドを順番に実行し、取得できたものを使用します。

  1. [System.Net.Dns]::GetHostEntry($env:COMPUTERNAME).Hostname
    ドメイン環境等であれば、こちらのコマンドでドメイン名を含むFQDNを取得します
  2. hostname
  3. $Env:COMPUTERNAME
  4. (Get-WmiObject Win32_ComputerSystem).Name

注意点

  • 既存ノードの 表示名 については互換性維持のためホスト名での上書き等は行いません
    新規ノードの場合自動でホスト名が表示名となります
  • ノードリスト画面でホスト名を確認したい場合は、リスト右上にある歯車マークから ホスト名 にチェックを入れることにより表示することが可能です
  • SSH/WinRMによる取得は認証情報が適切に設定されており、ログイン可能なノードに限ります