iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
Elastic Stack on Cloud

前端三分鐘 X Elastic Stack系列 第 3

Elastic Metric Quick Start: 監控 Nginx 伺服器狀態 (3)

  • 分享至 

  • xImage
  •  

這篇文章會示範如何安裝並使用 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 模組提供的狀態

https://ithelp.ithome.com.tw/upload/images/20200905/20130026z7jxJb8IxK.jpg

System Dashboard

https://ithelp.ithome.com.tw/upload/images/20200905/20130026yW4Aw0LAu4.jpg


上一篇
Elastic Logging Quick Start: 用 Filebeat 傳送 Nginx Log 到 Elasticsearch (2)
下一篇
Elastic APM Quick Start: 用 APM 傳送 Node.js 服務狀態到 Elasticsearch (4)
系列文
前端三分鐘 X Elastic Stack31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言