Kibana 啟用 PHP APM

魔王卷子發表於2021-09-21

本篇文章主要是解釋如何使用ES的APM功能進行獲取執行狀態。其實官網有安裝流程,我僅僅是把我安裝的過程記錄下。

前言

因為阿里雲有ARMS。正好跟網上的朋友溝通的時候知道了APM。突然發現阿里雲的AMRS不就是APM麼。又因為ARMS只最高支援PHP7.3,所以我特意過來看下ES的APM如何安裝,因為它支援PHP8.0。支援的版本也比較新。

首先請按照前面兩篇文章進行設定ubuntu 安裝 ElasticSearchubuntu 安裝 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 收集的相關資訊了。

相關文章