Skip to content

一、概述

轻量型指标采集器;用于从系统和服务收集指标,能以一种轻量型的方式,输送各种系统和服务设计数据。

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

1.1 组成

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

  • Module
    • 收集的对象,如:mysql、redis、操作系统等;
  • Metricset
    • 收集指标的集合,如:cpu、memory、network等;

1.2 system module配置

yml
# Module: system


<NolebasePageProperties />




# Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.5/metricbeat-modulesystem.
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: '/'

二、使用示例

三、Module

更多的Module使用参见官方文档: https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html

3.1 相关命令

查看列表

sh
./metricbeat modules list #查看列表
Enabled:
system #默认启用
Disabled:
aerospike
apache
ceph
couchbase
docker
dropwizard
elasticsearch
envoyproxy
etcd
golang
graphite
haproxy
http
jolokia
kafka
kibana
kubernetes
kvm
logstash
memcached
mongodb
munin
mysql
nginx
php_fpm
postgresql
prometheus
rabbitmq
redis
traefik
uwsgi
vsphere
windows
zookeeper

启用/禁用Module

sh
#启用redis module
./metricbeat modules enable redis

3.2 Redis Module

yml
#启用redis module
./metricbeat modules enable redis
#修改redis module配置
#vim modules.d/redis.yml

- module: redis
metricsets:
- info
# - keyspace
period: 10s
# Redis hosts
hosts: ["192.168.1.7:6379","192.168.1.7:6380","192.168.1.7:6381"]
# Network type to be used for redis connection. Default: tcp
#network: tcp
# Max number of concurrent connections. Default: 10
#maxconn: 10
# Redis AUTH password. Empty by default.
#password: foobared

#启动
#./metricbeat -e

3.3 Nginx Module

开启Nginx状态查询

sh
#重新编译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; 
}

测试访问 ip/nginx-status

结果说明:

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

配置Nginx Module

sh
#启用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-module- nginx.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" 

#启动 
./metricbeat -e

四、安装

4.1 普通安装

  1. 下载安装包

  2. 解压

    sh
    tar -xvf metricbeat-6.5.4-linux-x86_64.tar.gz
  3. 配置

    yml
    #vim metricbeat.yml
    metricbeat.config.modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false
    setup.template.settings:
    index.number_of_shards: 1
    index.codec: best_compression
    setup.kibana:
    output.elasticsearch:
    hosts: ["192.168.1.7:9200","192.168.1.7:9201","192.168.1.7:9202"]
    processors:
    - add_host_metadata: ~
    - add_cloud_metadata: ~
  4. 启动

    sh
    ./metricbeat -e