監視主機

在您安裝 Instana 代理程式之後,會自動部署並安裝主機感應器。

支援的 OS

  • Linux
  • 視窗
  • Mac OS/OS X
  • Solaris on Sparc
  • AIX

配置

如需詳細資訊,請參閱我們的 代理程式配置 說明文件。

度量值集合

若要檢視度量值,請在「Instana 使用者」介面的資訊看板中選取 基礎架構 ,按一下特定的受監視主機,然後您可以看到包含所有已收集度量值及受監視處理程序的主機儀表板。

配置資料

  • 作業系統名稱及版本
  • CPU 型號及計數
  • GPU 模型及計數
  • 記憶體
  • 開啟的檔案數上限
  • 主機名稱
  • 完整網域名稱
  • 機器 ID
  • 開機 ID
  • 啟動時間
  • 已安裝套件
  • 系統 ID

附註:

System ID 可用來與資產管理系統產生關聯。 依預設, Instana 代理程式會針對 Linux OS 收集 System ID 。 若為其他受支援的作業系統 (Windows、 macOS、Solaris、 AIX) ,您需要使用代理程式 configuration.yaml 檔案來明確啟用此特性:

com.instana.plugin.host:
  collectSystemId: true

效能度量

CPU 使用率

整體 CPU 使用率 (以百分比表示)。

資料點: Filesystem

精度: 1 秒

記憶體用量

其計算方式為: (total - actualFree) / total (以百分比表示)。

感應器會使用 actualFree 值 (包括可用及快取記憶體的實際受限記憶體) ,而不只是 free (通常是相當低的值 (用於快取/緩衝))。

資料點: Filesystem

精度: 1 秒

CPU 負載

在過去選取的時段內,正在或等待執行的處理程序平均數。

資料點: Filesystem

精度: 5 秒

CPU 使用率

CPU 使用率值,以百分比表示; usersystemwaitnicesteal。 在選取的時段內,這些值會顯示在圖形上。

資料點: Filesystem

精度: 1 秒

環境定義切換

環境定義切換總數。 這僅在 Linux 主機上受支援。 在選取的時段內,該值會顯示在圖形上。

資料點: Filesystem

精度: 1 秒

CPU 負載

CPU 負載。 在選取的時段內,該值會顯示在圖形上。

資料點: Filesystem

精度: 1 秒

個別 CPU 使用率

個別 CPU 使用率值,以百分比表示; usersystemwaitnicesteal。 在選取的時段內,這些值會顯示在圖形上。

資料點: Filesystem

精度: 1 秒

個別 GPU 用量

個別 GPU 用量值。

資料點 已收集自 精度 單元
Gpu Usage nvidia-smi 1 秒 %
Temperature nvidia-smi 1 秒 °C
Encoder nvidia-smi 1 秒 %
Decoder nvidia-smi 1 秒 %
Memory Used nvidia-smi 1 秒 %
Memory Total nvidia-smi 1 秒 bytes
Transmitted throughput nvidia-smi 1 秒 bytes/s
Received throughput nvidia-smi 1 秒 bytes/s

支援的 Nvidia 圖形卡:

品牌 模型
特斯拉 S1070, S2050, C1060, C2050/70, M2050/70/90, X2070/90, K10, K20, K20X, K40, K80, M40, P40, P100, V100
誇德羅 4000、5000、6000、7000、 M2070-Q、K 系列、M 系列、P 系列、RTX 系列
GeForce 不同層次的支援,可用度量值比 Tesla 和 Quadro 產品少

支援的 OS: Linux

必要條件: 已安裝最新官方 Nvidia 驅動程式。

這裡說明啟動具有 GPU 支援的 Instana 代理程式 Docker 儲存器: 透過 Instana 代理程式儲存器啟用 GPU 監視

附註:

透過使用 nvidia-smi 指令行公用程式將輪詢及查詢分割成兩個處理程序,仔細設計 GPU 度量值的資料收集以產生最小影響。 背景處理程序以迴圈模式啟動,並保留在記憶體中。 它可大幅改善度量值收集效能,並防止任何潛在的額外負擔。 感應器會根據所配置的輪詢率 (依預設每秒) 來查詢 GPU 度量值。 此解決方案可讓感應器每秒針對多個 GPU 收集精確且最新的度量值,而無需額外負擔。

附註:

透過使用 nvidia-smi 指令行公用程式將輪詢及查詢分割成兩個處理程序,仔細設計 GPU 度量值的資料收集以產生最小影響。 背景處理程序以迴圈模式啟動,並保留在記憶體中。 它可大幅改善度量值收集效能,並防止任何潛在的額外負擔。 感應器會根據所配置的輪詢率 (依預設每秒) 來查詢 GPU 度量值。 此解決方案可讓感應器每秒針對多個 GPU 收集精確且最新的度量值,而無需額外負擔。

GPU 記憶體/處理程序

下列處理程序清單使用 GPU。

資料點 已收集自 精度
Process Name nvidia-smi 1 秒
PID nvidia-smi 1 秒
GPU nvidia-smi 1 秒
Memory nvidia-smi 1 秒

支援的 Nvidia 圖形卡:

品牌 模型
特斯拉 S1070, S2050, C1060, C2050/70, M2050/70/90, X2070/90, K10, K20, K20X, K40, K80, M40, P40, P100, V100
誇德羅 4000、5000、6000、7000、 M2070-Q、K 系列、M 系列、P 系列、RTX 系列
GeForce 不同層次的支援,可用度量值比 Tesla 和 Quadro 產品少

支援的 OS: Linux

必要條件: 已安裝最新官方 Nvidia 驅動程式。

這裡說明啟動具有 GPU 支援的 Instana 代理程式 Docker 儲存器: 透過 Instana 代理程式儲存器啟用 GPU 監視

附註:

透過使用 nvidia-smi 指令行公用程式將輪詢及查詢分割成兩個處理程序,仔細設計 GPU 度量值的資料收集以產生最小影響。 背景處理程序以迴圈模式啟動,並保留在記憶體中。 它可大幅改善度量值收集效能,並防止任何潛在的額外負擔。 感應器會根據所配置的輪詢率 (依預設每秒) 來查詢 GPU 度量值。 此解決方案可讓感應器每秒針對多個 GPU 收集精確且最新的度量值,而無需額外負擔。

附註:

透過使用 nvidia-smi 指令行公用程式將輪詢及查詢分割成兩個處理程序,仔細設計 GPU 度量值的資料收集以產生最小影響。 背景處理程序以迴圈模式啟動,並保留在記憶體中。 它可大幅改善度量值收集效能,並防止任何潛在的額外負擔。 感應器會根據所配置的輪詢率 (依預設每秒) 來查詢 GPU 度量值。 此解決方案可讓感應器每秒針對多個 GPU 收集精確且最新的度量值,而無需額外負擔。

記憶體

已用記憶體值 (以百分比表示)。 以位元組為單位的記憶體值; swap totalswap freebufferscachedavailable。 在選取的時段內,這些值會顯示在圖形上。

資料點: Filesystem

精度: 1 秒

開啟檔案

開啟檔案使用情形 (在作業系統上可用時); currentmax。 在選取的時段內,這些值會顯示在圖形上。

附註:

Solaris OS 的支援有限:

  • 全域區域-僅支援 current 度量值
  • 非全域區域-不支援任何度量值

資料點: Filesystem

精度: 1 秒

檔案系統

每個裝置的檔案系統。

資料點 已收集自 精度
Device Filesystem 60 秒
Mount Filesystem 60 秒
Options Filesystem 60 秒
Type Filesystem 60 秒
Capacity Filesystem 60 秒
Total Utilization* Filesystem 60 秒
Read Utilization* Filesystem 60 秒
Write Utilization* Filesystem 60 秒
Used Filesystem 1 秒
Leaked* Filesystem 1 秒
Inode usage Filesystem 1 秒
Reads/s, Bytes Read/s** Filesystem 1 秒
Writes/s, Bytes Writes/s** Filesystem 1 秒

* 總計、讀取及寫入使用率資料點度量會以百分比顯示磁碟 I/O 使用率。 此功能僅與 Linux相容。

* Leaked (指使用中且等於 capacity - used - free的已刪除檔案。 在 Linux 上,您可以使用 lsof | grep deleted找到這些檔案。

** NFS (網路檔案系統) 不支援 Reads/Writes

依預設, Instana 只會監視本端檔案系統。 可以在 configuration.yaml 檔案中明確列出應該監視或排除的檔案系統。 配置設定的名稱是裝置名稱,可從 mtab 檔案或 df 指令輸出的第一個直欄取得。

需要以下列格式指定暫存檔案系統: tmpfs:/mount/point。 例如,要監視的檔案系統清單:

com.instana.plugin.host:
  filesystems:
    - '/dev/sda1'
    - 'tmpfs:/sys/fs/cgroup'
    - 'server:/usr/local/pub'

或要併入/排除:

com.instana.plugin.host:
  filesystems:
    include:
      - '/dev/xvdd'
      - 'tmpfs:/tmp'
      - 'server:/usr/local/pub'
    exclude:
      - '/dev/xvda2'

網路介面

每個介面的網路資料流量及錯誤。

資料點 已收集自 精度
Interface Filesystem 60 秒
Mac Filesystem 60 秒
IPs Filesystem 60 秒
RX Bytes Filesystem 1 秒
RX Errors Filesystem 1 秒
TX Bytes Filesystem 1 秒
TX Errors Filesystem 1 秒

TCP 活動

在選取的時段內, TCP 活動值會顯示在圖形上。

資料點 已收集自 精度
Establised Filesystem 1 秒
Open/s Filesystem 1 秒
In Segments/s Filesystem 1 秒
Out Segments/s Filesystem 1 秒
Established Resets Filesystem 1 秒
Out Resets Filesystem 1 秒
Fail Filesystem 1 秒
Error Filesystem 1 秒
Retransmission Filesystem 1 秒

附註: Instana 不支援 Sun Solaris 主機的 TCP 活動度量值。

處理程序頂端清單

處理程序清單大約每 10 秒重新整理一次,並且只包含具有大量系統用量 (前 10 秒的 CPU 使用率超過 10% ,以及超過 512 MB 記憶體用量 (RSS)) 的處理程序。

使用 Linux top 語意。 100% CPU 是指完整使用單一 CPU 核心,您可以搜尋上個月的 Snapshot 歷程。 正規化 CPU 的計算方式是將 CPU 除以邏輯處理器數目。

資料點 已收集自 精度
PID Filesystem 30 秒
Process Name Filesystem 30 秒
CPU Filesystem 30 秒
CPU (normalized) Calculated 30 秒
Memory Filesystem 30 秒

已安裝套件清單

configuration.yaml 檔案中的 collectInstalledSoftware 設為 true 時,作業系統上已安裝的套件一天可以解壓縮一次。

目前支援下列 Linux 發行套件:

  • Debian型 (dpkg)
  • Red Hat型 (rpmyum)
com.instana.plugin.host:
  collectInstalledSoftware: true # [true, false]

性能簽章

每一個感應器都有一個精選的性能簽章知識庫,可以根據送入的度量對性能簽章進行持續評估,並根據使用者影響來觸發問題或發生事件。

內建事件 會根據實體上的性能簽章失敗來觸發問題或突發事件,而 自訂事件 會根據任何給定實體的個別度量值臨界值來觸發問題或突發事件。

如需主機感應器內建事件的相關資訊,請參閱 內建事件參照

錯誤報告事件 (僅限 AIX 作業系統)

在 AIX 系統上, errpt 指令會從錯誤日誌中的項目產生錯誤報告。 然後會將錯誤報告中的錯誤擷取為事件,並傳送至 Instana。 感應器會擷取永久及暫時錯誤類型,以及軟硬體錯誤類別。 您需要使用代理程式 configuration.yaml 檔案來明確啟用此特性:

com.instana.plugin.host:
  aixEventsPollRate: 900 # In seconds

疑難排解

eBPF 不支援

監視問題類型: ebpf_not_supported

處理程序異常終止 功能偵測到在 Linux型作業系統上執行的處理程序因當機或被外部信號結束而非預期地終止。

此功能建置在 延伸 Berkley 封包過濾器之上,在此主機上似乎無法使用。

若要利用 Instana 的 eBPF型特性,您需要已裝載 debugfs 的 4.7+ Linux 核心。 如需受支援作業系統的相關資訊,請參閱 處理程序異常終止 文件。

SELinux 原則封鎖 eBPF

如果您已在主機上安裝 SELinux ,則通常需要建立原則,以容許代理程式利用 eBPF。 SELinux 可能會阻止 unconfined services (例如主機代理程式) 發出 eBPF 感應器用來檢測 Linux 核心的 bpf_* 系統呼叫。 若要驗證是否發生此情況,必須查看「審核」系統的日誌項目,依預設會儲存在 /var/log/audit/audit.log中。

下列範例來自 Red Hat Linux 機器:

$ cat /var/log/audit/audit.log | grep ebpf
type=AVC msg=audit(1598891569.452:193): avc:  denied  { map_create } for  pid=1612 comm="ebpf-preflight-" 
scontext=system_u:system_r:unconfined_service_t:s0 tcontext=system_u:system_r:unconfined_service_t:s0 
tclass=bpf permissive=0
type=SYSCALL msg=audit(1598891569.452:193): arch=c000003e syscall=321 success=no exit=-13 
a0=0 a1=7ffc0e1f5020 a2=78 a3=fefefefefefefeff items=0 ppid=1502 pid=1612 auid=4294967295 
uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="ebpf-preflight-" 
exe="/opt/instana/agent/data/repo/com/instana/ebpf-preflight/0.1.6/ebpf-preflight-0.1.6.bin" 
subj=system_u:system_r:unconfined_service_t:s0 key=(null)
type=PROCTITLE msg=audit(1598891569.452:193):
proctitle="/opt/instana/agent/data/repo/com/instana/ebpf-preflight/0.1.6/ebpf-preflight-0.1.6.bin"

請注意,審核日誌檔通常會循環,因此在啟動主機代理程式之後不久,我們必須執行此指令。

在日誌檔中,我們看到 map_create 系統呼叫被拒絕。 若要容許 eBPF 感應器進行此系統呼叫,我們需要建立 SELinux 原則。 為此,我們需要 audit2allow程式。 在 Red Hat 系統上,可以如下安裝:

yum install policycoreutils-python

然後,使用 audit2allow,我們可以根據日誌項目來建立原始原則檔案:

grep ebpf /var/log/audit/audit.log | audit2allow -M instana_ebpf

上述指令將建立下列檔案:

ls -Al | grep instana_ebpf
-rw-r--r--. 1 root                    root                      886 31. Aug 18:31 instana_ebpf.pp
-rw-r--r--. 1 root                    root                      239 31. Aug 18:31 instana_ebpf.te

原始原則檔案 instana_ebpf.te現在包含容許拒絕系統呼叫的指示:

$ cat instana_ebpf.temodule instana_ebpf 1.0;require {
	type unconfined_service_t;
	class bpf map_create;
}#============= unconfined_service_t ==============#!!!! This avc is allowed in the current policy
allow unconfined_service_t self:bpf map_create;

此原則將容許任何類型為未限制 (非常通用) 的應用程式建立 map_create 系統呼叫。

此外, eBPF 感應器還需要一些系統。 我們必須編輯 instana_ebpf.te 檔案,使它看起來如下:

$ cat instana_ebpf.te module instana_ebpf 1.0;require {
	type unconfined_service_t;
	class bpf { map_create map_read map_write prog_load prog_run };
}#============= unconfined_service_t ==============#!!!! This avc is allowed in the current policy
allow unconfined_service_t self:bpf { map_create map_read map_write prog_load prog_run };

然後,必須將此檔案重新寫入二進位格式,作為 instana_ebpf.mod 檔案:

$ checkmodule -M -m -o instana_ebpf.mod instana_ebpf.te
checkmodule:  loading policy configuration from instana_ebpf.te
checkmodule:  policy configuration loaded
checkmodule:  writing binary representation (version 19) to instana_ebpf.mod

instana_ebpf.mod 檔案必須重新包裝成可載入模組:

semodule_package -o instana_ebpf.pp -m instana_ebpf.mod

最後,我們可以套用原則套件:

semodule -i instana_ebpf.pp

任何不受限制的處理程序 (例如主機代理程式) 現在都可以建立這些系統。