這篇文章會示範如何安裝並使用 Metricbeat 傳送 Nginx 伺服器狀態到 Elasticsearch 中,並使用 Kibana 即時監控相關資料。
透過安裝 Metricbeat 這個輕量的 shipper 在需要監控的 Server 上,就可以定時的蒐集相關系統或服務的狀態資訊到 Elasticsearch 或是 Logstash,提供系統層級的監控,目前常見的服務都提供模組支援。
為什麼系統層級 (Metric) 的監控很重要?
解決的痛點:
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
Metricbeat 的安裝使用步驟如下
./metricbeat modules enable nginx
啟用模組metricbeat.yml
中的 cloud.id 及 cloud.auth 並填入正確資料modules.d\nginx.yml
中的 server_status_path: "server-status"
./metricbeat test config -e
看看有沒有打錯Kibana 就是一個管理的 GUI,啟動 Metricbeat 後就可以去 Dashboard 開啟相關範本後瀏覽。
Nginx Dashboard 匯整了剛剛 Nginx stub_status 模組提供的狀態
System Dashboard