在 Linux
Instana 代理程式可以安裝為 Linux 服務。 大部分 Linux 發行套件都使用 SystemV init 或 systemd 服務 Script。
建議您在支援的 Linux 發行套件上使用 單行 解決方案。
- 支援的作業系統
- 支援的平台架構
- 自動安裝(單線性)
- 套件安裝 (手動)
- 準備代理程式
- 安裝代理程式
- 識別安裝期間的問題
- 檢查主機代理程式的狀態
- 配置代理程式
- 執行代理程式
- 更新代理程式
- 解除安裝代理程式
- Tarball 安裝
- 設定及置換環境變數
- 配置檔
- 暫存檔
支援的作業系統
Instana 主機代理程式在下列 Linux 作業系統及發行套件上受支援:
- Ubuntu Linux 14.04 (trusty)
- Ubuntu Linux 16.04 (xenial)
- Ubuntu Linux 18.04 (海狸)
- Ubuntu Linux 20.04 (焦點)
- Ubuntu Linux 22.04 (jammy)
- CentOS 6 [1]
- CentOS 7
- CentOS 8
- CentOS 9
- Debian 9 (伸展)
- Debian 10 (buster)
- Debian 11 (牛棚)
- Suse Linux Enterprise Server (SLES) 12 [2]
- Suse Linux Enterprise Server (SLES) 15
- Red Hat Enterprise Linux (RHEL) 6 [3]
- Red Hat Enterprise Linux (RHEL) 7
- Red Hat Enterprise Linux (RHEL) 8
- Red Hat Enterprise Linux (RHEL) 9
- Oracle Enterprise Linux 7
- Oracle Enterprise Linux 8
- Oracle Enterprise Linux 9
- Amazon Linux 1
- Amazon Linux 2
- Alma Linux 8
- Alma Linux 9
- z/Linux, Linux on Z (s390x, 64 位元) [3: 1]
- Kylin Linux Advanced Server v10 (x86_64 & aarch64) [4]
支援的平台架構
下列平台架構支援 Linux 作業系統及發行套件:
| 名稱 | 位元 | 供應商 |
|---|---|---|
| x86 | 32 位元 | Intel/AMD |
| x64, amd64 | 64 位元 | Intel/AMD |
| ARM | 32 位元 | ARM |
| arm64, aarch64 | 64 位元 | ARM |
| PPC | 32 位元 | IBM Power |
| PPC | 64 位元 | IBM Power |
| ppc64le | 64 位元 | IBM Power ,小序排列法 |
| s390x | 64 位元 | IBM z/Architecture |
自動安裝 (單線性)
代理程式單行程式是一個功能強大的 Script ,可在 Linux型作業系統上執行主機代理程式的自動化安裝。
支援的配送
單線性支援下列 Linux 發行套件:
- Debian 衍生工具 (
apt套件管理程式) - Red Hat 衍生工具 (
yum套件管理程式) - SUSE 衍生工具 (
zypp套件管理程式)
使用單線性
附註: 您需要 root 使用者專用權,才能安裝 Instana 主機代理程式。
若要使用單線性,請完成下列步驟:
登入 Instana ,然後按一下 其他 > 代理程式 > Instana 代理程式安裝 > Linux。
從 技術 清單中,選取 自動安裝 (單線性)。
您的 代理程式金鑰 及位置已在單行指令中預先移入。
針對主機代理程式安裝,複製並執行下列其中一個指令:
使用 Zulu JVM 的動態代理程式 (互動式安裝):
curl -o setup_agent.sh https://setup.instana.io/agent && chmod 700 ./setup_agent.sh && sudo ./setup_agent.sh -a $yourAgentKey -t dynamic -e $location:443使用 Zulu JVM 的動態代理程式 (無聲自動安裝):
curl -o setup_agent.sh https://setup.instana.io/agent && chmod 700 ./setup_agent.sh && sudo ./setup_agent.sh -a $yourAgentKey -t dynamic -e $location:443 -y使用 Zulu JVM 的靜態代理程式 (互動式安裝):
curl -o setup_agent.sh https://setup.instana.io/agent && chmod 700 ./setup_agent.sh && sudo ./setup_agent.sh -a $yourAgentKey -t static -e $location:443使用 Zulu JVM 的靜態代理程式 (無聲自動安裝):
curl -o setup_agent.sh https://setup.instana.io/agent && chmod 700 ./setup_agent.sh && sudo ./setup_agent.sh -a $yourAgentKey -t static -e $location:443 -y若要執行 Instana 主機代理程式,請執行下列其中一個指令:
- 如果您的作業系統使用
systemd作為 init 系統,請執行systemctl start instana-agent.service指令。 - 如果您的作業系統使用
SysVinit作為 init 系統,請執行service instana-agent start指令。
- 如果您的作業系統使用
其他參數
單線性指令接受下列參數:
| 參數 | 說明 |
|---|---|
-a = (必要) |
代理程式金鑰。 |
-d = (選用) |
Instana 下載金鑰。 如果您使用自行管理 (內部部署) Instana 部署, Instana 會為您提供金鑰。 |
-e = (必要) |
主機代理程式端點。 |
-m = (選用) |
設定 Instana 代理程式模式 apm (預設值)、 infra或 aws。 |
-t = (選用) |
代理程式特性 dynamic (預設值) 或 static。 |
-j = (選用) |
選取 Eclipse OpenJ9 11 作為組合的 Java 執行時期。 |
-y = (選用) |
非互動式提示。 如果在沒有互動式 Shell 的情況下執行設定,請指定它。 |
-s = (選用) |
啟動 instana-agent 服務,並讓它在開機時啟動。 此選項僅適用於執行 systemd的系統。 |
-g = (選用,如果設定 -b 則需要) |
主機代理程式之 Git型配置管理 功能的遠端 URL 規格。 |
-b = (選用,如果設定 -g 則需要) |
要追蹤主機代理程式之 Git型配置管理 功能的遠端分支名稱。 |
-u = (選用,如果設定 -p 則需要) |
如果您將 HTTP 型遠端系統用於主機代理程式的 Git型配置管理 功能,則為用於基本鑑別的使用者名稱。 |
-p = (選用) |
如果您將 HTTP 型遠端系統用於主機代理程式的 Git型配置管理 功能,則為基本鑑別的密碼。 |
當您下載並執行 one-liner.sh Script 時,它會透過建立儲存庫檔案,將 Instana 的公用系統套件儲存庫新增至您的系統。 這個檔案會將 Instana 鑑別儲存庫新增至機器的安裝來源。
安裝期間的潛在問題
Debian型
使用 Debian型衍生工具,您可能會在發出安裝時遇到下列輸出。 在此情況下,請安裝套件 apt-transport-https ,因為 Apt 目前不會從 HTTP 伺服器取回字型。
Setting up Instana APT repository
Importing Instana GPG key
Updating apt metadata ...
E: The method driver /usr/lib/apt/methods/https could not be found.
APT repository metadata update failed
SUSE 和 SLES
如果 SUSE Linux Enterprise Server 12 提供下列輸出,您需要更新 openssl 以透過現代 HTTP 連線適當地接收構件:
Setting up Instana agent for GNU/Linux
Setting up Instana zypper repository
Updating zypper metadata ...
Installing Instana agent ...
Error building the cache:
[instana-agent|https://_@packages.instana.io/agent/generic/x86_64] Valid metadata not found at specified URL
Some of the repositories have not been refreshed because of an error.
No provider of 'instana-agent-static' found.
Instana agent package install failed
CentOS
在 CentOS 6 型系統上,過時的 libcurl 版本可能會導致此日誌輸出:
Setting up Instana agent for GNU/Linux
Setting up Instana YUM repository
Updating YUM metadata ...
YUM repository metadata update failed
RHEL
已啟用 FIPS (美國聯邦資訊處理標準) 或 SELinux 可能會在單線性安裝期間導致下列錯誤:
Error unpacking rpm package instana-agent-dynamic-20210630-0948.x86_64
Error: Transaction failed
在下列設定中,手動安裝 instana-agent 套件失敗:
sudo rpm -ivh instana-agent-dynamic-20210713-1352.x86_64.rpm
...
error: unpacking of archive failed on file /etc/init.d/instana-agent;60eda3b3: cpio: Digest mismatch
error: instana-agent-dynamic-20210713-1352.x86_64: install failed
手動安裝的可能暫行解決方法是使用下列指令跳過驗證:
sudo rpm -ivh --nodigest --nofiledigest instana-agent-dynamic-20210713-1352.x86_64.rpm
套件安裝 (手動)
若為手動套件安裝,請執行下列步驟:
登入 Instana ,按一下 其他 > 代理程式 > Linux。
從 技術 清單中,選取 套件 (DEB , RPM)。
複製並貼上代理程式套件下載頁面的 URL:
https://_:${INSTANA_AGENT_KEY}@packages.instana.io/agent/download。
Debian 衍生
若要使用 Instana 代理程式套件的資源準備 Apt ,請建立下列檔案:
# /etc/apt/sources.list.d/instana-agent.list
deb [arch=amd64] https://packages.instana.io/agent generic main
# /etc/apt/auth.conf.d/instana-packages.conf
machine packages.instana.io
login _
password ${INSTANA_AGENT_KEY}
或者,您可以將鑑別寫在 /etc/apt/sources.list.d/instana-agent.list中的 URL 中,但它會造成溫和的安全風險,且 apt 會發出警告,每當您安裝或更新 Instana 套件時都會顯示這些警告。
若要將 Instana GPG 金鑰新增至 APT ,請執行下列指令:
wget -qO - https://packages.instana.io/Instana.gpg | sudo apt-key add -
RPM 型發行套件
將下列程式碼 Snippet 複製到您的 yum 來源 (/etc/yum.repos.d/Instana-Agent.repo):
[instana-agent]
name=Instana
baseurl=https://_:${INSTANA_AGENT_KEY}@packages.instana.io/agent/generic/x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.instana.io/Instana.gpg
priority=5
sslverify=1
附註: 將 ${INSTANA_AGENT_KEY} 取代為 代理程式金鑰。
如果您想要啟用 GPG 套件驗證,部分發行套件需要您事先將金鑰匯入套件管理程式的金鑰環。
若要匯入金鑰,請執行下列指令:
rpm --import https://packages.instana.io/Instana.gpg
openSUSE/SLES
若為 openSUSE 及 SUSE Linux Enterprise Server ,路徑為 /etc/zypp/yum.repos.d/Instana-Agent.repo,但內容可以維持與 RPM 型發行套件相同。
準備代理程式
重新整理套件管理程式的來源之後,您需要使用 主機代理程式端點 及 代理程式金鑰來配置代理程式。
如果在執行安裝之前設定下列環境變數,則會自動配置代理程式。
export INSTANA_AGENT_KEY=$agentkey
export INSTANA_AGENT_HOST=$endpoint
export INSTANA_AGENT_PORT=$endpoint_port
如果您使用 Git型配置管理,將這項資訊放在檔案中是很好的方法。
對於 systemd , drop-in 是改寫服務環境特性的最簡單方法。
若為 SysVinit,請將檔案放置在 /etc/sysconfig (Red Hat 衍生工具) 或 /etc/default (Debian 衍生工具) 中。 如需相關資訊,請參閱 設定及置換環境變數。
安裝代理程式
重新整理套件管理程式的來源之後,請安裝下列其中一個特性:
Debian 導數
若要安裝靜態代理程式,請執行下列指令:
apt-get install instana-agent-static
若要安裝動態代理程式,請執行下列指令:
apt-get install instana-agent-dynamic
Red Hat 衍生工具
若要安裝靜態代理程式,請執行下列指令:
yum install instana-agent-static
若要安裝動態代理程式,請執行下列指令:
yum install instana-agent-dynamic
Eclipse OpenJ9 11 組合套件
Eclipse OpenJ9 11 組合代理程式的套件名稱是 instana-agent-static-j9 及 instana-agent-dynamic-j9。
安裝期間識別的問題
在安裝期間,您可能會遇到下列問題:
Debian型導數可能會呈現連線錯誤訊息。 此錯誤位於 GnuTLS中-取決於 Curl、git 或 apt 之類的程式:
GnuTLS recv error (-9): A TLS packet with unexpected length was received使用 Debian型衍生物,您可能會在發出安裝時遇到下列輸出。 在此情況下,請安裝套件
apt-transport-https,因為 Apt 目前不會從 HTTP 伺服器取回字型。E: The method driver /usr/lib/apt/methods/https could not be found.` `APT repository metadata update failed如果 SUSE Linux Enterprise Server 12 提供下列輸出,您需要更新 GnuTLS、 OpenSSL和 NSS 程式庫及其相依程式 (例如 Curl)。 此更新對於透過現代 HTTP 連線適當地接收構件很重要:
Error building the cache: [instana-agent|https://_@packages.instana.io/agent/generic/x86_64] Valid metadata not found at specified URL Some of the repositories have not been refreshed because of an error. No provider of 'instana-agent-static' found. Instana agent package install failed如果您嘗試使用 systemd 來啟用
instana-agent服務,則可以在 SUSE Enterprise Linux中看到下列錯誤訊息:systemctl enable instana-agent Synchronizing state of instana-agent.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable instana-agent ln -sf ../instana-agent /etc/init.d/rc2.d/S50instana-agent ln: failed to create symbolic link '/etc/init.d/rc2.d/S50instana-agent': No such file or directory若要解決此錯誤,請刪除檔案
/etc/init.d/instana-agent,然後執行 systemctl enable instana-agent 指令。然後,您可以看到已正確建立符號鏈結:
systemctl enable instana-agent Created symlink /etc/systemd/system/multi-user.target.wants/instana-agent.service → /lib/systemd/system/instana-agent.service.`在 CentOS 6 型系統上,過時的 libcurl 版本可能會導致此日誌輸出:
Updating YUM metadata ... YUM repository metadata update failed
若要解決此問題,必須更新 libcurl 版本。
檢查主機代理程式的狀態
安裝主機代理程式之後,您可以在 Instana 使用者介面或主機上檢查主機代理程式的狀態。 如需相關資訊,請參閱 檢查主機代理程式的狀態。
配置代理程式
如需主機代理程式配置的相關資訊,請參閱 主機代理程式配置。
執行代理程式
若要執行 Instanta 代理程式,請執行下列其中一個指令:
systemctl start instana-agent.service(如果您的作業系統使用systemd作為 init 系統)。service instana-agent start(如果您的作業系統使用SysVinit作為 init 系統)。
更新代理程式
您可以使用作業系統的套件管理程式來升級機器上的代理程式套件。 若要更新及管理系統的套件和修補程式,請執行下列指令:
yum update // apt-get upgrade
然後,會升級 instana-agent-static 或 instana-agent-dynamic 套件。
解除安裝代理程式
若要解除安裝 Instana 代理程式,首要步驟是包裝管理程式。
在 Debian 衍生工具上解除安裝
執行下列指令,以取得系統上所安裝套件的名稱:
apt list --installed | grep instana-agent
輸出會保留確切的套件名稱,以用於 uninstall 指令。 在下列範例中,套件名稱為 instana-agent-static-j9/generic:
instana-agent-static-j9/generic,now 20221024-1455 amd64 [installed]
執行下列指令,以解除安裝代理程式:
sudo apt-get purge <package_name>
其中 <package_name> 是您取得的套件名稱。
在 Red Hat 衍生工具上解除安裝
執行下列指令,以取得系統上所安裝套件的名稱:
yum list installed | grep instana-agent
輸出會保留要用於解除安裝指令的確切套件名稱。 在下列範例中,套件名稱為 instana-agent-static-j9.x86_64:
instana-agent-static-j9.x86_64 20221024-1455 @instana-agent
執行下列指令,以解除安裝代理程式:
sudo yum remove <package_name>
其中 <package_name> 是您取得的套件名稱。
附註: 在實施時, Instana 代理程式所建立的部分檔案不是套件的一部分。 清除 Instana 代理程式安裝的程序需要額外的手動步驟來移除安裝目錄。 SUSE 和 Red Hat 衍生物需要清除,因為 Yum 不支援清除。
執行下列指令,以移除安裝目錄:
rm -rf /opt/instana/agent
Tarball 安裝
Instana 主機代理程式必須安裝在系統層面可存取的位置,且需要以 root 使用者身分執行。 如果您以任何其他使用者執行主機代理程式,則主機代理程式的功能會受到限制。 這是因為部分效能度量僅受 root 支援。 監視 Docker 儲存器只能由 Docker 主機上的 root 來執行。 此外,只有 root 或啟動使用者可以連接及監視 Java 虛擬機器 (JVM)。 如果您無法以 root 身分執行主機代理程式,請確保代理程式使用者在 sudoers 中列出,並具有有效的 Shell。
執行代理程式的使用者必須能夠寫入代理程式目錄及其所有子目錄。 代理程式會根據自動偵測來下載必要的感應器,並在其 data 子目錄中建立日誌檔。 請確定您有大約 100 MB 的可用磁碟空間。
必要條件
代理程式需要有 Java Development Kit (JDK)。 您可以查看支援的 JDK 清單,如下所示。 您有兩個選項:
將 JDK 放置或鏈結至
<instana-agent-install-dir>/jvm(使<instana-agent-install-dir>/jvm/bin/java存在)。可自訂的方法是匯出稱為 JAVA_HOME 的環境變數,以指向這個 JDK (也可以透過
instana-agent-install-dir>/bin/setenv來設定這個環境變數)。
下列 JVM 支援執行代理程式:
- IBM OpenJ9 JDK 11 (偏好)
- Azul Zulu JDK 8
- OpenJDK JDK 8
- Oracle Hotspot JDK 8
- Amazon Corretto JDK 8
- IBM J9 8
JVM 必須是系統上所有使用者的執行檔。 建議您使用您選擇之 Java 發行套件的最新可用修補程式版本。 代理程式需要支援 TLSv1.3 的 JDK (適用於所有現行 JDK 8 和 JDK 11 建置)。 視您的 OS 發行套件而定,由於匯出控制, OS 配送器所提供的套件可能不包含高度加密支援。 如果您使用這類套件,可能會遇到類似「java.lang.RuntimeException: 無法產生 DH 金鑰組」的錯誤。
若要在偵測檔案系統變更時減少代理程式使用的資源,您需要在 Linux 發行套件上安裝 inotify-tools 套件。
代理程式通訊
代理程式會從下列主機下載更新項目及感應器:
DNS 名稱: artifact-public.instana.io 目的地埠: tcp/80 及 tcp/443
目前, Instana 服務在兩個不同的區域中提供。 您的個別實例位於地理上最接近大部分代理程式及使用者的位置。 代理程式會在下載時預先配置,但部分安裝方法需要 Instana 後端配置。 請參閱產品內的「代理程式管理」區段或您在 Instana 的技術聯絡人,以瞭解實例所在的地區。
如果您使用自行管理 (內部部署) Instana ,請使用在 Docker (內部部署) 上自行管理 Instana 後端中說明的端點。
如果您使用 SaaS,請使用 主機代理程式端點上說明的端點。
下載代理程式
若要下載代理程式,請遵循下列步驟:
登入 Instana ,然後按一下 其他 > 代理程式。
按一下 安裝 Instana 代理程式。
在下拉功能表中,選取適當的作業系統。
按一下 下載 按鈕,並解壓縮對應於系統架構的代理程式保存檔。
它會自動預先配置您的帳戶設定,因此您只需要擷取並啟動代理程式。
使用 wget 下載代理程式
若要使用 wget 下載代理程式,請執行下列指令:
wget --save-cookies {{agent_folder_name}}/instana-cookies.txt --post-data 'email={{instana_username}}&password={{instana_password}}' https://{{instana_tenant_unit}}-{{instana_tenant}}.instana.io/auth/signIn
wget --content-disposition --load-cookies {{agent_folder_name}}/instana-cookies.txt --post-data 'type=linux64' https://instana.io/ump/{{instana_tenant}}/{{instana_tenant_unit}}/agent/download -O {{opt_folder}}/{{name_of_agent_archive.tar.gz}}
啟動代理程式
若要啟動代理程式,請執行下列指令:
INSTANA_AGENT_FOLDER/bin/start
停止代理程式
若要停止代理程式,請執行下列指令:
INSTANA_AGENT_FOLDER/bin/stop
代理程式的狀態
若要查看代理程式的狀態,請執行下列指令:
INSTANA_AGENT_FOLDER/bin/status
設定及置換環境變數
當代理程式安裝為套件並由 SystemV init 或 systemd執行時,需要一個位置來設定特定的 Instana 環境變數。 此外,可能需要置換特定的環境變數。 例如,對於 LXC 儲存器支援,代理程式需要在其路徑上具有 LXC 指令行公用程式。 請參閱可置換環境變數的方式。
SystemV Init
代理程式會在 /etc/default/ 目錄 (Debian 及衍生工具) 或 /etc/sysconfig/ 目錄 (Red Hat 及衍生工具) 中尋找對應的 Shell Script。 如果服務名稱未變更,則為 SysVinit Script 原始檔 /etc/default/instana-agent 檔案或 /etc/sysconfig/instana-agent 檔案。
例如,在 Debian 中,可以使用 /etc/default/instana-agent 來更新 Instana 變數及 PATH (當發現可讀取此檔案時):
INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_HOST=$endpoint
INSTANA_AGENT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
系統
對於 systemd ,您可以找到各種可用的選項、drop-in 單元、 EnvironmentFile 指引及廣域環境設定。 「放入單元」是最建議的方法。
在下列選項中,請務必先執行 sudo systemctl daemon-reload ,然後再執行 sudo systemctl restart instana-agent.service ,以重新載入具有變數變更的代理程式。
拖放單元
透過使用 drop-in 單元,您可以置換特定設定,而無需變更原始 systemd 單元檔案。 必須將外掛程式放置在名稱為 <name>.conf的 /etc/systemd/system/<unit>.d/ 中。
比方說,如果要設定 Instana 和 PATH 環境變數,請建立含有下列內容的 /etc/systemd/system/instana-agent.service.d/10-environment.conf 檔:
[Service]
Environment=INSTANA_AGENT_KEY=$agentkey
Environment=INSTANA_AGENT_HOST=$endpoint
Environment=INSTANA_AGENT_PORT=$endpoint_port
Environment=PATH=/usr/local/bin:${PATH}
EnvironmentFile 指引
此解決方案使用 drop-in 單元,但從個別檔案讀取的環境指引除外。 例如,建立具有下列內容的 /etc/instana/environment.conf 檔案:
INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_HOST=$endpoint
INSTANA_AGENT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
然後,在 systemd (drop-in) 單元檔案中,使用下列配置:
[Service]
EnvironmentFile=/etc/instana/environment.conf
廣域環境設定
依預設, systemd 會從各種路徑 (例如 /etc/systemd/system.conf 或 /etc/systemd/system.conf.d/10-default-env.conf) 讀取廣域配置。 透過在這些檔案中放置 DefaultEnvironment 配置,它們會變成可供所有 systemd 裝置使用。 如需相關資訊,請參閱 systemd config。
例如,當您在/etc/systemd/system.conf.d/10-default-env.conf 檔中設定時,下列配置會建立三個 Instana 環境變數:
[Manager]
DefaultEnvironment="INSTANA_AGENT_KEY=<key>" "INSTANA_AGENT_HOST=<host>" "INSTANA_AGENT_PORT=<port>"
配置檔
在安裝期間會建立下列檔案一次:
- /opt/instana/agent/etc/mvn-settings.xml
- /opt/instana/agent/etc/org.ops4j.pax.url.mvn.cfg
- /opt/instana/agent/etc/instana/com.instana.agent.bootstrap.AgentBootstrap.cfg
- /opt/instana/agent/etc/instana/com.instana.agent.main.config.Agent.cfg
- /opt/instana/agent/etc/instana/com.instana.agent.main.config.UpdateManager.cfg
- /opt/instana/agent/etc/instana/com.instana.agent.main.sender.Backend.cfg
- /opt/instana/agent/etc/instana/configuration.yaml
當使用者編輯這些檔案或套件管理程式升級代理程式套件時,不會改寫這些檔案。
暫存檔
Instana 主機代理程式會在 /tmp/.instana/ 目錄中安裝它需要的部分檔案,如果在主機執行時間內刪除這些檔案,則會在更新期間造成問題。
Tmpfiles.d
在 system.d型系統上, systemd-tmpfiles deamon 可以刪除 /tmp/.instana 目錄中主機代理程式所需的檔案,這會導致難以進行疑難排解的更新失敗。 從 v181版開始, DEB 和 RPM 代理程式套件會自動在 /usr/lib/tmpfiles.d 中安裝下列配置 Script ,以調整行為來與 Instana 主機代理程式搭配使用:
# Instana files in /tmp cannot be deleted when the agent is running,
# or it may lead to issues on agent update
R! /tmp/.java_pid*
R! /tmp/.instana/*
此配置僅容許 tmpdfiles.d 在主機重新啟動之後刪除 Instana 代理程式所需的檔案。 新執行的 Instana 主機代理程式會在啟動時重建檔案。
重要事項: Red Hat Enterprise Linux 和 CentOS(在第 6 版和第 7 版中) ,不論 Instana 這類套件可以指定哪些原則,預設 tmpdfiles.d 原則都會每 10 天刪除整個 /tmp 目錄一次。 這表示像 instana 之類的套件可以定義自訂原則,以控制系統或套件本身的行為。
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# See tmpfiles.d(5) for details
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
...
除了編輯預設 tmpfiles.d 原則,沒有可用的已知暫行解決方法。 不當的 tmpfiles.d 原則位於 /usr/lib/tmpfiles.d/tmp.conf中。
重要事項: 許多 Debian 衍生工具 (包括 Ubuntu) ,不論 Instana 之類的套件可以指定哪些原則,都會刪除整個 /tmp 目錄的預設 tmpdfiles.d 原則。 安裝時, DEB 及 RPM 套件會執行測試,以驗證暫存檔 tmpfiles.d的行為,並執行指令 systemd-tmpfiles --remove。 在原則會置換 Instana 代理程式套件所指定之所需行為的系統上,您可能會看到下列警告:
WARNING: The tmpfiles.d policies of this system may cause the Instana agent to malfunction by deleting the /tmp/.instana directory; refer https://www.instana.com/docs/setup_and_manage/host_agent/on/linux#tmpfiles.d for more information.
除了編輯預設 tmpfiles.d 原則,沒有可用的已知暫行解決方法。 不當的 tmpfiles.d 原則位於 /usr/lib/tmpfiles.d/tmp.conf中。
Tmpwatch
Red Hat Enterprise Linux 6 和 CentOS 6 包含工具 tmpwatch,已知它會在 /tmp/.instana中刪除不必要的檔案。 不過,在這些發行套件中使用 tmpwatch 有時會導致主機代理程式發生更新問題。 如需相關資訊,請參閱 暫存檔。
# Deal with tmpwatch, found in RHEL 6 and CentOS 6.
# It is a cronjob, installed in /etc/cron.d/daily, with pretty much hardcoded
# configurations to wipe data the Instana agent needs.
readonly TMPWATCH_CRONJOB='/etc/cron.d/daily/tmpwatch'
if [ -f "${TMPWATCH_CRONJOB}" ]; then
# Let's check if we already touched the file and, if not, add our excludes
if ! grep "${TMPWATCH_CRONJOB}" Instana 2&>1 > /dev/null; then
echo "tmpwatch discovered in '${TMPWATCH_CRONJOB}': adding the exclude flags for Instana"
# Edit in place with `sed`
sed -i '/^flags=/a flags="${flags} -x /tmp/instana -x /tmp/.javapid* # Added by Instana"' "${TMPWATCH_CRONJOB}"
fi
fi
Red Hat Enterprise Linux 6 和 CentOS 6 包含工具
tmpwatch,已知可刪除/tmp/.instana中的必要檔案。 不過,在這些發行套件中使用 tmpwatch 有時會導致主機代理程式發生更新問題。 如需相關資訊,請參閱 暫存檔。 ↩︎由於 OpenSSL 二進位檔過期,不支援 Suse Linux Enterprise Server (SLES) 11。 ↩︎
Instana 主機代理程式支援 s390x 平台,具有先前列出且在 IBM Z上也受支援的 Red Hat、Suse 及 Ubuntu 版本。 ↩︎ ↩︎
對 Kylin Linux 的支援僅限於中國大陸。 ↩︎