若要讓 Telegraf 代理程式收集某些應用程式服務的度量,您必須在目標機器中進行修改。進行這些修改之後,代理程式會開始收集度量。您必須 SSH 至您已部署 Agent (代理程式) 及修改組態檔的所在虛擬機器。
Apache HTTPD
若要讓代理程式收集度量,請修改 /etc/httpd/conf.modules.d/status.conf 中的組態檔,並對 HTTPD 外掛程式啟用 mod_status。
<IfModule mod_status.c> <Location /server-status> SetHandler server-status </Location> ExtendedStatus On </IfModule>
如果沒有組態檔,您必須建立一個組態檔。在您修改組態檔之後,使用下列命令重新啟動 HTTPD 服務:
systemctl restart httpd
Java 應用程式
目前,對 Java 應用程式監控的支援僅限於支援以 jolokia 為基礎的 JMX 監控的應用程式。目前,作為 Java 外掛程式啟用的一部分,jolokia.jar 和 jolokia.war 檔案都放置在「安裝路徑」中。如果要監控的 Java 應用程式是 servlet 容器,則 jolokia.war 檔案將自動部署到在 VMware Aria Operations 中設定 Java 應用程式時提供的「安裝路徑」。如果自動部署不受支援或未啟用,請在啟用外掛程式後重新啟動應用程式,或參閱應用程式的產品說明文件,瞭解手動 .war 部署。
對於所有其他 java 應用程式,請先啟用外掛程式,然後在 "-javaagent:" JVM flag as a command line parameter 中包含 jolokia.jar 檔案的路徑。例如,"-javaagent:/<path_to_jolokia>/jolokia.jar",<path_to_jolokia> 是在應用程式設定期間提供的「安裝路徑」。重新啟動應用程式。
- 支援以 jolokia 為基礎的 JMX 監控。
- (如果關閉自動部署) servlet 容器應用程式支援手動 .war 部署。
- "-javaagent:" JVM flag 作為命令列參數 (JVM_OPTS) 的一部分新增
Nginx
將以下幾行新增至 /etc/nginx/nginx.conf 中的組態檔:
http { server { location /status { stub_status on; access_log off; allow all; } } }
使用下列命令重新啟動 Nginx 服務:
systemctl restart nginx
Postgres
在 /var/lib/pgsql/data/pg_hba.conf 的組態檔中,將 local all postgres peer
的值變更為 local all postgres md5
並使用下列命令重新啟動服務:
sudo service postgresql restart
Cassandra
若要監控 Cassandra 資料庫應用程式,必須納入 Jolokia jar 作為 Cassandra 資料庫應用程式的 JVM 輸入。完成下列步驟:
修改 /etc/default/cassandra。
echo "export JVM_EXTRA_OPTS=\"-javaagent:/usr/share/java/jolokia-jvm-1.6.0-agent.jar=port=8778,host=localhost\"" | sudo tee -a /etc/default/cassandra
備註:可以從 https://jolokia.org/download.html 下載最新版本的 Jolokia 代理程式。若部署 .JAR 檔案,則須在監控之 Java 程序的 JMX 引數中包含 JAR 完整檔案路徑,然後重新啟動該應用程式服務。
或者,您也可以修改 cassandra-env.sh 以啟用代理程式。在 cassandra-env.sh 的尾端納入下列行:
JVM_OPTS="$JVM_OPTS -javaagent:/usr/share/java/jolokia-jvm-1.6.0-agent.jar=port=8778,host=localhost"
查看 JVM 輸入後,重新啟動 Cassandra 服務。
Oracle 資料庫
若要監控 Oracle 資料庫,請完成下列步驟:
從下列位置下載執行個體用戶端程式庫:https://www.oracle.com/database/technologies/instant-client/downloads.html。
您必須下載 Oracle 執行個體程式庫並納入 PATH 之中。
- 安裝 Python 3.6 或更新版本。安裝 cx_Oracle 模組。
python3 -m pip install cx_Oracle --upgrade
建立使用者。
CREATE USER <UserName> IDENTIFIED BY <yourpassword>; GRANT select_catalog_role TO <UserName>; GRANT CREATE SESSION TO <UserName>;
- 若為 Windows 虛擬機器:
- 將 Oracle 即時用戶端程式庫路徑和 Python 路徑附加到 PATH 環境變數。
- 安裝 ARC Agent。
- 若為 Linux 虛擬機器:
- 安裝 ARC Agent。
- 從 /opt/vmware/ucp/ 中取得檔案 exec_oracle_python.sh(wget --no-check-certificate https://<CP_IP>/downloads/salt/content-accessories/exec_oracle_python.sh)。
- 用 LD_LIBRARY_PATH、ORACLE_HOME、PYTHON_BIN 和 TNS_ADMIN 的絕對值填寫 /opt/vmware/ucp/exec_oracle_python.sh。
LD_LIBRARY_PATH:Oracle 即時用戶端程式庫的路徑。例如,/opt/vmware/ucp/instantclient_21_4。
ORACLE_HOME:安裝 Oracle 軟體的檔案系統中的目錄。例如,/u01/app/oracle/product/19.3.0/dbhome_1/。
PYTHON_BIN:Python 可執行檔的路徑。例如,/usr/bin/python。
TNS_ADMIN:指向 SQL*Net 組態檔所在目錄的環境變數。例如,/u01/app/oracle/product/19.3.0/dbhome_1/network/admin。
- 啟用 Oracle DB 外掛程式。
Active MQ 5.16 及更高版本
若要啟用 Active MQ 5.16 及更高版本,請完成下列步驟:
導覽至 /opt/activemq/apache-activemq-5.16.0/webapps/api/WEB-INF/classes/jolokia-access.xml
移除或註解下列幾行:
<cors> <strict-checking/> </cors>
重新啟動 Active MQ 服務。
Microsoft SQL Server
使用者帳戶必須具有下列權限,才能使用 Telegraf 監控 Microsoft SQL Server 應用程式服務。
USE master; GO CREATE LOGIN [telegraf] WITH PASSWORD = N'mystrongpassword'; GO GRANT VIEW SERVER STATE TO [telegraf]; GO GRANT VIEW ANY DEFINITION TO [telegraf]; GO