天天看點

【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

Nginx 是一種非常流行的開源 Web 伺服器,為全球數百萬個應用程式提供服務。 Nginx僅次于Apache,這得益于它作為 Web 伺服器,有效地提供靜态内容和整體性能的方式在全球流行(它還可以充當反向代理,HTTP緩存和負載平衡器)。而從操作和安全性的角度來看,由于Nginx處于應用程式體系結構的關鍵時刻,是以需要對其進行實時資料監控。

Nginx日志記錄基礎

Nginx 為使用者提供了各種日志記錄選項,包括日志記錄到檔案,條件日志記錄和 syslog 日志記錄。 Nginx将生成兩種可用于操作監視和故障排除的日志類型:錯誤日志和通路日志。

預設情況下,這兩個日志通常都位于/var/log/nginx下,但是此位置可能因系統而異。

# cd /var/log/nginx/
# ls
access.log  error.log           

Nginx error logs

錯誤日志包含可用于對操作問題進行故障診斷的診斷資訊。 Nginx error_log指令可用于指定日志檔案的路徑和嚴重性,并可在主要,http,郵件,流,伺服器,位置上下文(按此順序)中使用。

日志示例:

2020/04/22 10:06:21 [error] 9289#0: *4128 connect() failed (111: Connection refused) while connecting to upstream, client: 101.133.213.44, server: notest004, request: "GET /admin/ HTTP/1.1", upstream: "http://121.41.222.215:3000/admin/", host: "121.41.222.215"

Nginx access logs

通路日志包含有關發送到 Nginx 并由 Nginx 服務的所有請求的資訊。 是以,它們是用于性能監控以及安全性的寶貴資源。 Nginx 通路日志的預設格式是組合格式,但是在分發之間可能會有所不同。 與錯誤日志一樣,您可以使用 access_log 僞指令來設定日志檔案路徑和日志格式。

日志示例

47.97.73.90 - - [22/Apr/2020:06:26:39 +0800] "GET / HTTP/1.1" 502 559 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3494.0 Safari/537.36" "-"

準備工作

将 Nginx 日志傳送到阿裡雲 Elasticsearch 最簡單方法是使用 Filebeat。本次教程,将會在阿裡雲服務環境下,通過在雲伺服器ECS上安裝 Nodejs、Nignx、filebeat,同時開通阿裡雲 Elasticsearch 服務。

開通阿裡雲 ECS 服務

開通阿裡雲 Elasticsearch

同一VPC下的 Centos 7.4 版本的 ECS 環境;

• 關閉防火牆以及selinux安全防護工具(ECS為預設關閉狀态);

• 開放

ECS 安全組

端口,確定 Nodejs 通路 3000 端口,Nginx 通路 80 端口;

• 開通阿裡雲 Elasticsearch 6.7 環境,確定控制台開通自動建立索引功能,使用建立的賬号密碼

登入 Kibana

• 監測阿裡雲 Elasticsearch 安全配置是否

開放白名單

限制;

安裝 Nodejs

Nodejs 是一個簡單的基于Express架構的web伺服器,我們可以在阿裡雲ECS 伺服器上寫入如下指令來安裝 Nodejs。

# yum install nodejs
# yum install -y npm
#####檢視node及npm版本#######
# node -v
# npm -v
####部署nodejs 的web伺服器,從git上下載下傳一個簡單的nodejs代碼
# git clone https://github.com/liu-xiao-guo/samplenodejs
####進入samplenodejs根目錄運作如下指令####
# cd samplenodejs/
# npm install
# npm start           

在 ECS 安全組中開啟3000 通路端口,并在浏覽器中輸入 ECS IP通路位址:

http://121.41.xx.xx:3000/hello
【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

如果在控制台及浏覽器能看到如下輸出,表明 Nodejs 應用已經被成功運作。

【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

安裝 Nignx 并設定為反向代理

我們在 阿裡雲ECS 伺服器上寫入如下指令來安裝 Nignx

# yum install nginx
####配置反向代理####
# vim /etc/nginx/nginx.conf
 server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  notest004;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
           proxy_pass http://121.40.100.115:3000;
           index index.html index.htm;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
        }
    }
####啟動nignx###
# systemctl start nginx
           

如果我們想停止nginx,我們可以使用如下的指令:

systemctl stop nginx

要在停止時啟動Web伺服器,請鍵入:

systemctl start nginx

要停止然後再次啟動該服務,請鍵入:

systemctl restart nginx

下載下傳并安裝 Filebeat

在阿裡雲ECS環境中,

下載下傳filebeat安裝包

,并解壓。

安裝

# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.0-linux-x86_64.tar.gz
# tar -zxvf filebeat-6.7.0-linux-x86_64.tar.gz           

配置

修改filebeat-6.7.0-linux-x86_64/filebeat.yml

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["es-cn-0pp19tb10000688c8p.elasticsearch.aliyuncs.com:9200"]
  username: "elastic"
  password: "Elastic123"
  
  setup.kibana:
      host: "https://es-cn-0pp19tb1000888c8p.kibana.elasticsearch.aliyuncs.com:5601"           

啟動 Nginx 子產品

# ./filebeat modules enable nginx

配置子產品

為了能夠使得我們的nginx子產品能夠正确地被 Kibana Dashboard 顯示,我們必須運作如下的指令。

# ./filebeat setup

【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

至此我們的安裝都已經完成。

Kibana Dashboard 展示

進入 Kibana,點選 Dashboard 選擇已導入的 Nginx 子產品

【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

我們點選“【Filebeat Nginx】Overview”

【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

至此,我們完成了對 Nginx 日志的監控。在 Kibana Dashboard 我們可以看到 Nginx 的所有資訊。

聲明:本文由“Beats:使用Elastic Stack對Nginx Web伺服器監控”基于阿裡雲服務環境授權改編

原文作者:Elastic 中國社群布道師——劉曉國

合作編輯: Lettie/大禹

出處連結:

https://me.csdn.net/UbuntuTouch
【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控

阿裡雲Elastic Stack

】100%相容開源ES,獨有9大能力

相關活動

更多折扣活動,請

通路阿裡雲 Elasticsearch 官網 阿裡雲 Elasticsearch 商業通用版,1核2G ,SSD 20G首月免費 阿裡雲 Logstash 2核4G首月免費
【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控
【最佳實踐】阿裡雲Elasticsearch 簡單高效的實作Nginx Web伺服器監控