Elastic Metric Quick Start (Metricbeat, Kibana, Elasticsearch) 監控 Nginx 伺服器狀態

Lin Yen-Cheng on 2020-09-03 4 min. read

這篇文章會示範如何安裝並使用 Metricbeat 傳送 Nginx 伺服器狀態到 Elasticsearch 中,並使用 Kibana 即時監控相關資料。

Metricbeat 簡介

透過安裝 Metricbeat 這個輕量的 shipper 在需要監控的 Server 上,就可以定時的蒐集相關系統或服務的狀態資訊到 Elasticsearch 或是 Logstash,提供系統層級的監控,目前常見的服務都提供模組支援。

為什麼系統層級 (Metric) 的監控很重要?

  • 方便知道什麼時候要加機台
  • 確認系統效能瓶頸發生的位置
  • 在高附載時提供告警

解決的痛點:

  • 輕量不佔資源的監控
  • 完整方便的 Dashboard 模板,也可以自行克制
  • 搭配 Filebeats 傳回的 log 檔可能會更快找出問題
  • 模組多且可直接照教學使用
    • Apache
    • HAProxy
    • MongoDB
    • MySQL
    • Nginx
    • PostgreSQL
    • Redis
    • Zookeeper

Nginx 伺服器資訊

Nginx 有內建的 stub_status 模組,啟用後可以監看基本的伺服器狀態,記得要限制 IP 存取。


location /server-status {
    stub_status on;

    access_log off;
    allow 127.0.0.1;
    deny all;
}

啟用後瀏覽器瀏覽 http://127.0.0.1/server-status 就可以看到下面的資訊

Active connections: 3
server accepts handled requests
 72 72 792
Reading: 0 Writing: 1 Waiting: 2
  • Active connections:目前連線數 (含 Waiting)
  • server accepts handled requests:接受的連線數 已經處理的連線數 已經處理的請求數
  • Reading:目前正在讀取請求表頭的請求數
  • Writing:目前正在讀取請求主體、處理與回應的請求數
  • Waiting:keep-alive 的連線數

安裝 Metricbeat

Metricbeat 的安裝使用步驟如下

  • 下載 Metricbeat 解壓縮
  • ./metricbeat modules enable nginx 啟用模組
  • 找到 metricbeat.yml 中的 cloud.id 及 cloud.auth 並填入正確資料
  • 取消註解 modules.d\nginx.yml 中的 server_status_path: "server-status"
  • ./metricbeat test config -e 看看有沒有打錯
  • ./metricbeat setup
  • ./metricbeat -e
  • 安裝位置盡量接近監控的系統,同一台主機會就不需要消耗網路流量

Kibana 監看 Metric

Kibana 就是一個管理的 GUI,啟動 Metricbeat 後就可以去 Dashboard 開啟相關範本後瀏覽。

Nginx Dashboard 匯整了剛剛 Nginx stub_status 模組提供的狀態

NginxMetric

System Dashboard

SystemMetric


喜歡這篇文章,請幫忙拍拍手喔 🤣

share