elasticSearch插件metricbeat收集nginx的度量指標


ngx_http_stub_status_module模塊是Nginx中用來統計Nginx服務所接收和處理的請求數量,只要在編譯安裝Nginx的時候加上參數--with-http_stub_status_module就可以開啟該功能,如果編譯時沒有加該參數的話可以重新編譯安裝一次,不會影響原有的配置文件。

#重新編譯nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make
make install
./nginx -V #查詢版本信息
nginx version: nginx/1.11.6
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module
#配置nginx
vim nginx.conf
location /nginx-status {
stub_status on;
access_log off;
}

測試:

 

 

 結果說明:
Active connections:正在處理的活動連接數
server accepts handled requests
第一個 server 表示Nginx啟動到現在共處理了9個連接
第二個 accepts 表示Nginx啟動到現在共成功創建 9 次握手
第三個 handled requests 表示總共處理了 21 次請求
請求丟失數 = 握手數 - 連接數 ,可以看出目前為止沒有丟失請求
Reading: 0 Writing: 1 Waiting: 1
ReadingNginx 讀取到客戶端的 Header 信息數
WritingNginx 返回給客戶端 Header 信息數
WaitingNginx 已經處理完正在等候下一次請求指令的駐留鏈接(開啟keep-alive的情況下,這個值等於
Active - (Reading+Writing)

2、部署與收集系統指標

 

 

 

vim metricbeat.yml

 

 

 

metricbeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  # Period on which files under path should be checked for changes
  #reload.period: 10s

#==================== Elasticsearch template setting ==========================

setup.template.settings:
  index.number_of_shards: 2
  index.codec: best_compression
  #_source.enabled: false


setup.kibana:

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["127.0.0.1:9200","127.0.0.1:9201","127.0.0.1:9202"]



processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

metricbeat默認會加載${path.config}/modules.d/*.yml下的modules模塊來收集指標數據,默認只開啟了收集system的cpu 內存等信息

 

system module配置: 查看system.yml的信息

# Module: system
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.5/metricbeat-module-system.html

- module: system
  period: 10s
  metricsets:
    - cpu
    #- load
    - memory
    - network
    - process
    - process_summary
    #- core
    #- diskio
    #- socket
  process.include_top_n:
    by_cpu: 5      # include top 5 processes by CPU
    by_memory: 5   # include top 5 processes by memory

- module: system
  period: 1m
  metricsets:
    - filesystem
    - fsstat
  processors:
  - drop_event.when.regexp:
      system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)'

- module: system
  period: 15m
  metricsets:
    - uptime

#- module: system
#  period: 5m
#  metricsets:
#    - raid
#  raid.mount_point: '/'

 

 現在我們要收集nginx的指標信息需要開啟對nginx的配置

#啟用redis module
./metricbeat modules enable nginx
#修改redis module配置
vim modules.d/nginx.yml
# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.5/metricbeat-modulenginx.html
- module: nginx
#metricsets:
# - stubstatus
period: 10s
# Nginx hosts
hosts: ["http://192.168.40.133"]
# Path to server status. Default server-status
server_status_path: "nginx-status"
#username: "user"
#password: "secret"

 

 

開啟nginx之后,我們可以使用命令metricbeat modules list 查看當前啟用了哪些moudles

 

 

接下來我們修改modules.d/nginx.yml

 

 內容如下

# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.5/metricbeat-module-nginx.html

- module: nginx
  #metricsets:
  #  - stubstatus
  period: 10s

  # Nginx hosts
  hosts: ["http://127.0.0.1:8088"]
  server_status_path: "nginx-status"

  # Path to server status. Default server-status
  #server_status_path: "server-status"

  #username: "user"
  #password: "secret"

接下來我們就可以啟動metricbeat.exe收集nginx的指標了

metricbeat -e -c metricbeat.yml

2、讓收集的度量信息在kibana上展示

1、第一步需要修改metricbeat.yml配置

metricbeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  # Period on which files under path should be checked for changes
  #reload.period: 10s

#==================== Elasticsearch template setting ==========================

setup.template.settings:
  index.number_of_shards: 2
  index.codec: best_compression
  #_source.enabled: false


setup.kibana:
  host: "127.0.0.1:5601"

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["127.0.0.1:9200","127.0.0.1:9201","127.0.0.1:9202"]



processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

 1、在這里指定kibana的地址

setup.kibana:
host: "127.0.0.1:5601"

2、文件配置好之后

#安裝儀表盤到Kibana 執行命令/metricbeat setup --dashboards,這里一定要保證kibana已經處於正常的啟動狀態

 

 


安裝成功之后我們在kibana上面就可以看到對於的儀表盤信息了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM