本篇文章主要是解釋如何使用ES的APM功能進行獲取執行狀態。其實官網有安裝流程,我僅僅是把我安裝的過程記錄下。
前言
因為阿里雲有ARMS。正好跟網上的朋友溝通的時候知道了APM。突然發現阿里雲的AMRS不就是APM麼。又因為ARMS只最高支援PHP7.3,所以我特意過來看下ES的APM如何安裝,因為它支援PHP8.0。支援的版本也比較新。
首先請按照前面兩篇文章進行設定ubuntu 安裝 ElasticSearch和ubuntu 安裝 kibana。
安裝所需的包
這裡我們需要的是 apm-server。執行以下命令即可安裝:
sudo apt install apm-server
最後執行啟動命令即可。
管理命令
啟動:
sudo systemctl start apm-server
停止:
sudo systemctl stop apm-server
重新啟動:
sudo systemctl restart apm-server
設定開機啟動:
sudo systemctl enable apm-server
取消開機啟動
sudo systemctl disable apm-server
檢視執行狀態
sudo systemctl status apm-server
PHP Agent
這裡需要安裝一個擴充套件。首先的話是需要安裝PHP的。這裡有一篇安裝 PHP8.0 的文章可以用來參考。
如果不是 apt
安裝的 PHP,建議採用下面的 手動安裝 的辦法。
首先從 GitHub 包下載 中下載指定的 deb
包。
然後執行命令安裝 agent
:
sudo dpkg -i <package-file>.deb
安裝成功後可編輯的配置檔案地址為:/etc/php/8.0/fpm/conf.d/99-elastic-apm-custom.ini
。
手動安裝
可以執行如下步驟進行編譯安裝。
首先我們需要將原始碼儲存到一個目錄中。比如說 /usr/local/src
。
首先就是下載檔案並解壓:
sudo wget -c https://github.com/elastic/apm-agent-php/archive/refs/tags/v1.3.tar.gz
sudo tar zxf v1.3.tar.gz
然後我們切入要編譯的目錄並執行編譯命令
cd apm-agent-php-1.3/src/ext
sudo phpize
sudo CFLAGS="-std=gnu99" ./configure --enable-elastic_apm
sudo make
sudo make install
完成後在 php.ini
新增以下配置,以便啟用 elastic_apm
。
extension=elastic_apm.so
elastic_apm.bootstrap_php_part_file=<repo root>/src/bootstrap_php_part.php
配置
elastic_apm.environment
設定環境名稱。比如說測試環境可以設定為 testing
或者 production
。用來區分環境變數。
elastic_apm.hostname
設定主機名稱。因為預設都是隨機的名稱,可以設定為更加人性化的名稱。如果該名稱沒有設定,則預設讀取主機的名稱
elastic_apm.server_url
APM 伺服器的連結地址。包含協議和埠。預設地址是 http://localhost:8200
,如果 APM 伺服器不在本機則需要進行設定。
elastic_apm.service_name
服務的名稱。也就是專案的名稱。比如說 api
專案, base
專案等。
elastic_apm.service_node_name
節點名稱。當有web叢集的時候,該設定特別有用。比如說名稱為 php-1
等等。
elastic_apm.service_version
服務的版本號。比如說PHP的話可以使用 commit ID
作為版本號。可以設定為 git rev-parse HEAD
或者使用簡寫 git log --pretty="%h" -n1 HEAD
。
elastic_apm.transaction_sample_rate
設定對請求取樣的頻率。預設是 1.0
,範圍是 0.0
~ 1.0
之間,如果為不收集,則不記錄上下文資訊,標籤或者跨度。
最後
這樣重啟PHP,訪問幾個連結就可以在 Kibana 中檢視到 APM 收集的相關資訊了。