Metricbeat安装下载,nginx模块使用

目录

  • Metricbeat
    • Metricbeat组成
    • 下载
    • 启动
    • Metricbeat Module
      • system module配置内容
    • Nginx Module
      • 开启Nginx Module
    • 配置nginx module
    • 测试

Metricbeat

Metricbeat安装下载,nginx模块使用_第1张图片

  • 定期收集操作系统或应用服务的指标数据
  • 存储到Elasticsearch中,进行实时分析

Metricbeat组成

Metricbeat有2部分组成
一部分是Module,另一个部分为Metricset

  • Module
    • 收集的对象:如 MySQL、Redis、Nginx、操作系统等
  • Metricset
    • 收集指标的集合:如 cpu、memory,network等

以Redis Module为例:
Metricbeat安装下载,nginx模块使用_第2张图片

下载

首先我们到官网,找到Metricbeat进行下载

Metricbeat安装下载,nginx模块使用_第3张图片

可以直接使用wget下载

# 移动到该目录下
cd /opt/elk
# 下载文件
wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.8.1-linux-x86_64.tar.gz
# 解压文件
tar -zxvf  metricbeat-8.8.1-linux-x86_64.tar.gz
# 修改文件名
mv  metricbeat-8.8.1-linux-x86_64 metricbeat

然后修改配置文件

vim metricbeat.yml

添加如下内容

metricbeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
  index.codec: best_compression
setup.kibana:
output.elasticsearch:
  hosts: ["192.168.40.150:9200","192.168.40.138:9200","192.168.40.138:9200"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

默认会指定的配置文件,就是在

${path.config}/modules.d/*.yml

也就是 system.yml文件(默认开启),我们也可以自行开启其它的收集

启动

       在配置完成后,我们通过如下命令启动即可

./metricbeat -e

Metricbeat安装下载,nginx模块使用_第4张图片

       在ELasticsearch中可以看到,系统的一些指标数据已经写入进去了:

Metricbeat安装下载,nginx模块使用_第5张图片

Metricbeat Module

Metricbeat Module的用法和我们之前的filebeat的用法差不多

#查看列表
./metricbeat modules list 

能够看到对应的列表

Enabled:
system #默认启用

Disabled:
aerospike
apache
…………

system module配置内容

- module: system
  period: 10s  # 采集的频率,每10秒采集一次
  metricsets:  # 采集的指标
    - cpu
    - load
    - memory
    - network
    - process
    - process_summary

Nginx Module

开启Nginx Module

在nginx中,需要开启状态查询,才能查询到指标数据。

#进入到安装nginx的目录,重新编译nginx
[root@elk-node1 nginx-1.23.4]# pwd
/nginx/nginx-1.23.4
[root@elk-node1 nginx-1.23.4]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
# 编译安装
[root@elk-node1 nginx-1.23.4]# 
make
make install
[root@elk-node1 sbin]# ./nginx -V  #查询版本信息
nginx version: nginx/1.23.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx1 --with-threads --with-http_ssl_module --with-http_stub_status_module --with-stream
[root@elk-node1 conf]# pwd 
/usr/local/nginx1/conf
#配置nginx
[root@elk-node1 conf]# vim nginx.conf
location /nginx-status {
    stub_status on;
    access_log off;
}

Metricbeat安装下载,nginx模块使用_第6张图片

[root@elk-node1 nginx1]# ./sbin/nginx -s reload
# 重启nginx
./nginx -s reload

测试

Metricbeat安装下载,nginx模块使用_第7张图片

结果说明:

  • Active connections:正在处理的活动连接数
  • server accepts handled requests
    • 第一个 server 表示Nginx启动到现在共处理了10个连接
    • 第二个 accepts 表示Nginx启动到现在共成功创建 10 次握手
    • 第三个 handled requests 表示总共处理了 28 次请求
    • 请求丢失数 = 握手数 - 连接数 ,可以看出目前为止没有丢失请求
  • Reading: 0 Writing: 1 Waiting: 0
    • Reading:Nginx 读取到客户端的 Header 信息数
    • Writing:Nginx 返回给客户端 Header 信息数
    • Waiting:Nginx 已经处理完正在等候下一次请求指令的驻留链接(开启keep-alive的情况下,这个值等于 Active - (Reading+Writing))

配置nginx module

#启用nginx module
./metricbeat modules enable nginx

#修改nginx 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.150:8080"] # 要配置成8080端口,因为我之前进行了修改
# Path to server status. Default server-status
  server_status_path: "nginx-status"
#username: "user"
#password: "secret"

修改完成后,启动nginx

#启动
./metricbeat -e

测试

我们能看到,我们的nginx数据已经成功的采集到我们的系统中了
Metricbeat安装下载,nginx模块使用_第8张图片

可以看到,nginx的指标数据已经写入到了Elasticsearch。

更多的Module使用参见官方文档:在这里

你可能感兴趣的:(nginx,elasticsearch,运维)