Metricbeat
Metricbeat简介
- 定期收集操作系统、软件或服务的指标数据
- 存储在Elasticsearch中进行实时的分析
Logs VS Metrics
Logs:用来记录离散的时间,具有随机性。例如,应用程序的调试信息或错误信息等
Metrics:用于记录度量或可聚合的数据,具有计划性。例如,服务的响应时长等。
Metricbeat组成
Module
:Metricbeat收集指标的对象,比如linux、windows、mysql等Metricset
:Metricbeat收集指标集合,该集合以减少收集指标调用次数为划分依据;一个Module可以有多个Metricset
Metricbeat有大量的module:
# metricbeat modules list
Enabled:
system
Disabled:
aerospike
apache
ceph
couchbase
docker
dropwizard
elasticsearch
golang
haproxy
http
jolokia
kafka
kibana
kubernetes
memcached
mongodb
mysql
nginx
php_fpm
postgresql
prometheus
rabbitmq
redis
vsphere
windows
zookeeper
#启用模块:
metricbeat modules enable redis
#禁用模块
metricbeat modules disable redis
每个Module都有自己的Metricsets,比如system Module:
metricbeat配置
metricbeat实战
下载地址
(1)修改metricbeat配置文件,指定kibana和es的地址:
#============================== Kibana =====================================
setup.kibana:
host: "192.168.20.101:5601"
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
hosts: ["192.168.20.101:9200","192.168.20.102:9200"]
username: "elastic"
password: "123456"
以system模块为例进行演示,modules.d/system.yml
文件保持默认即可,如果使用redis等其他模块,需要修改配置文件中的hosts地址。
(2)导入dashboard:
metricbeat setup --dashboards
(3)启动服务(rpm安装):
systemctl start metricbeat
查看效果:
Packetbeat
Packetbeat简介
- 抓取网路包数据
- 自动解析网络包协议,如: ICMP DNS、HTTP、Mysql/PgSQL/MongoDB、Memcache、Thrift、TLS 等
Packetbeat抓包
常见抓包工具:tcpdump、wireshark
packetbeat抓包配置有两种:
pcap
基于libpacp实现,跨平台支持af_packet
仅支持linux 系统,基于内存映射的嗅探技术,性能更好
packetbeat配置
packetbeat流量分析
抓取记录网络流量数据,不涉及协议解析network flows
packetbeat.flows:
timeout:30s
period:10s
Packetbeat实战
packetbeat配置文件中kibana和es部分配置同metricbeat配置一样,http部分添加send_request: true
:
- type: http
ports: [80, 8080, 8000, 5000, 8002]
send_request: true
(2)导入dashboard:
packetbeat setup --dashboards
(3)启动服务(rpm安装):
systemctl start packetbeat
查看效果:
Heartbeat
心跳检测,确认对方是否还存活