在 Azure VM 上安裝彈性堆疊 (ELK)
適用於:✔️ Linux VM ✔️ 彈性擴展集
本文將逐步引導您了解如何在 Azure 中的 Ubuntu VM 上部署 Elasticsearch \(英文\)、Logstash \(英文\) 和 Kibana \(英文\)。 若要查看運作中的彈性堆疊,您可以選擇性地連接到 Kibana,然後處理一些記錄資料的範例。
此外,您可以遵循 Azure 虛擬機器上部署 Elastic 課程模組,以取得在 Azure 虛擬機器上部署 Elastic 的更具引導式教學課程。
在本教學課程中,您將了解如何:
- 在 Azure 資源群組中建立 Ubuntu VM
- 在 VM 上安裝 Elasticsearch、Logstash 和 Kibana
- 使用 Logstash 將範例資料傳送至 Elasticsearch
- 開啟連接埠並處理 Kibana 主控台中的資料
此部署適用於具有彈性堆疊的基本開發。 如需彈性堆疊的詳細資訊,包括適用於生產環境的建議,請參閱 Elastic 文件 \(英文\) 與 Azure 架構中心。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0.4 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
建立資源群組
使用 az group create 命令來建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組。
az group create --name myResourceGroup --location eastus
建立虛擬機器
使用 az vm create 命令來建立 VM。
下列範例會建立名為 myVM 的 VM,並建立 SSH 金鑰 (如果它們不存在於預設金鑰位置)。 若要使用一組特定金鑰,請使用 --ssh-key-value
選項。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
建立 VM 後,Azure CLI 會顯示類似下列範例的資訊。 記下 publicIpAddress
。 此位址用來存取 VM。
{
"fqdns": "",
"id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "40.68.254.142",
"resourceGroup": "myResourceGroup"
}
透過 SSH 連線到您的 VM
如果您還不知道您 VM 的公用 IP 位址,請執行 az network public-ip list 命令:
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
使用下列命令,建立與虛擬機器的 SSH 工作階段。 替換為您虛擬機器的正確公用 IP 位址。 在此範例中,IP 位址是 40.68.254.142。
ssh azureuser@40.68.254.142
安裝彈性堆疊
匯入 Elasticsearch 簽署金鑰並更新您的 APT 來源清單,以包含 Elastic 套件存放庫:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
在 VM 上安裝 Java 虛擬機器並設定 JAVA_HOME 變數 - 這是執行彈性堆疊元件所需的變數。
sudo apt update && sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
執行下列命令以更新 Ubuntu 套件來源,並安裝 Elasticsearch、Kibana 和 Logstash。
sudo apt update && sudo apt install elasticsearch kibana logstash
注意
詳細的安裝指示 (包括目錄配置和初始設定) 保留在 Elastic 文件 \(英文\) 中
啟動 Elasticsearch
使用下列命令啟動 VM 上的 Elasticsearch:
sudo systemctl start elasticsearch.service
此命令不會產生任何輸出,因此請使用這個 curl
命令,確認 Elasticsearch 正在 VM 上執行:
sudo curl -XGET 'localhost:9200/'
如果 Elasticsearch 正在執行,您應該會看到如以下的輸出:
{
"name" : "w6Z4NwR",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "SDzCajBoSK2EkXmHvJVaDQ",
"version" : {
"number" : "5.6.3",
"build_hash" : "1a2f265",
"build_date" : "2017-10-06T20:33:39.012Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
啟動 Logstash,並將資料新增至 Elasticsearch
使用下列命令啟動 Logstash:
sudo systemctl start logstash.service
在互動模式下測試 Logstash ,以確定它正常運作:
sudo /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
這是基本的 Logstash 管線,可回應標準輸出的標準輸入。
The stdin plugin is now waiting for input:
hello azure
2017-10-11T20:01:08.904Z myVM hello azure
設定 Logstash 將核心訊息從這個 VM 轉送至 Elasticsearch。 在稱為 vm-syslog-logstash.conf
的空白目錄中建立新檔案,然後貼在下列 Logstash 設定中:
input {
stdin {
type => "stdin-type"
}
file {
type => "syslog"
path => [ "/var/log/*.log", "/var/log/*/*.log", "/var/log/messages", "/var/log/syslog" ]
start_position => "beginning"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "localhost:9200"
}
}
測試這個設定,並將 syslog 資料傳送至 Elasticsearch:
sudo /usr/share/logstash/bin/logstash -f vm-syslog-logstash.conf
當終端機中的 syslog 項目傳送至 Elasticsearch 時,您看到回應。 一旦您傳送一些資料之後,使用 CTRL+C
退出 Logstash。
啟動 Kibana,並將 Elasticsearch 中的資料視覺化
編輯 /etc/kibana/kibana.yml
並變更 Kibana 接聽的 IP 位址,讓您可以從網頁瀏覽器加以存取。
server.host: "0.0.0.0"
使用下列命令啟動 Kibana:
sudo systemctl start kibana.service
從 Azure CLI 開啟連接埠 5601,以允許從遠端存取 Kibana 主控台:
az vm open-port --port 5601 --resource-group myResourceGroup --name myVM
開啟 Kibana 主控台,然後選取 [建立],以便根據您稍早傳送至 Elasticsearch 的 syslog 資料,產生預設索引。
選取 Kibana 主控台上的 [探索],以搜尋、瀏覽並篩選 syslog 事件。
下一步
在本教學課程中,您將彈性堆疊部署到 Azure 中的開發 VM。 您已了解如何︰
- 在 Azure 資源群組中建立 Ubuntu VM
- 在 VM 上安裝 Elasticsearch、Logstash 和 Kibana
- 將範例資料從 Logstash 傳送至 Elasticsearch
- 開啟連接埠並處理 Kibana 主控台中的資料