一 Metricbeat 简介

1.1 系统级监控,更简洁将

Metricbeat 部署到您的所有 Linux、Windows 和 Mac 主机,并将它连接到 Elasticsearch 就大功告成了:您可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,还可针对系统上的每个进程获得与 top 命令类似的统计数据

1.2 单个二进制文件提供多种模块

Metricbeat 提供多种内部模块,这些模块可从多项服务(诸如 Apache、Jolokia、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus 等等)中收集指标。安装简单,完全零依赖性。只需在配置文件中启用您所需的模块即可。

而且,如果要找的模块,还可以自己构建。以 Go 语言编写 Metricbeat 模块,过程十分简单。

1.3 容器就绪

近来是不是所有工作都转移到了 Docker 中?通过 Elastic Stack,您能够轻松地监测容器。将 Metricbeat 部署到同一台主机上的一个单独容器后,它将收集与主机上运行的其他每一个容器相关的统计数据。在收集统计数据时,它直接从 proc 文件系统读取 cgroup 信息,这就意味着它无需特权即可访问 Docker API,并且同样适用于其他 Runtime。针对 Docker 的 Autodiscovery 让事情进一步简化,只需指定一个条件即可开启 Metricbeat 模块。

1.4 不错过任何检测信号

将指标通过假脱机传输方式输送至磁盘,这样您的数据管道再也不会错过任何一个数据点,即使发生中断(例如网络问题),也勿需担心。Metricbeat 会保留传入的数据,并在重新上线后将这些指标输送至 Elasticsearch 或 Logstash。

1.5 输送至 Elasticsearch 或 Logstash。在 Kibana 中实现可视化

Metricbeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实指标,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Metricbeat 都能轻松地将您的数据发送至最关键的地方。

定期手机操作系统或应用服务器的指标数据

存储到elasticsearch中,进行实时分析

Metricbeat组成

由两部分组成,一部分是module,另一部分是Metricset

Module收集的对象,如mysql,redis,nginx操作系统等

metricset:收集指标的集合,如cpu,memeory,network等

以redis Module为例

二 安装部署metribeat

2.1 下载包

[root@node4 filebeat]# cd /usr/local/src/

[root@node4 src]# wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.4.2-linux-x86_64.tar.gz

[root@node4 src]# tar -xf metricbeat-7.4.2-linux-x86_64.tar.gz

[root@node4 src]# mv metricbeat-7.4.2-linux-x86_64 /usr/local/metricbeat

[root@node4 src]# cd /usr/local/metricbeat

2.2 配置

[root@node4 metricbeat]# grep -Ev "^$|[#;]" 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: hosts: ["192.168.132.131:9200","192.168.132.132:9200","192.168.132.133:9200"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~

[root@node4 metricbeat]# cd modules.d/

aerospike.yml.disabled    elasticsearch-xpack.yml.disabled  kvm.yml.disabled             prometheus.yml.disabled
apache.yml.disabled elasticsearch.yml.disabled logstash-xpack.yml.disabled rabbitmq.yml.disabled
aws.yml.disabled envoyproxy.yml.disabled logstash.yml.disabled redis.yml.disabled
beat-xpack.yml.disabled etcd.yml.disabled memcached.yml.disabled statsd.yml.disabled
beat.yml.disabled golang.yml.disabled mongodb.yml.disabled system.yml
ceph.yml.disabled graphite.yml.disabled mssql.yml.disabled traefik.yml.disabled
cockroachdb.yml.disabled haproxy.yml.disabled munin.yml.disabled uwsgi.yml.disabled
consul.yml.disabled http.yml.disabled mysql.yml.disabled vsphere.yml.disabled
coredns.yml.disabled jolokia.yml.disabled nats.yml.disabled windows.yml.disabled
couchbase.yml.disabled kafka.yml.disabled nginx.yml.disabled zookeeper.yml.disabled
couchdb.yml.disabled kibana-xpack.yml.disabled oracle.yml.disabled
docker.yml.disabled kibana.yml.disabled php_fpm.yml.disabled
dropwizard.yml.disabled kubernetes.yml.disabled postgresql.yml.disabled

默认只读取system.yml的文件

启动

[root@node4 metricbeat]# ./metricbeat -e

刷新elasticsearch,多了一个metricbeat的索引

看指标数据

看一下system.yml的一些配置

[root@node4 metricbeat]# grep -Ev "^$|[#;]" modules.d/system.yml

- module: system
period: 10s
metricsets:
- cpu
- load
- memory
- network
- process
- process_summary
- socket_summary
process.include_top_n:
- 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

三 metribeat的module配置

[root@node4 metricbeat]# ./metricbeat modules list

Enabled:
system Disabled:
aerospike
apache
aws
beat
beat-xpack
ceph
cockroachdb
consul
coredns
couchbase
couchdb
docker
dropwizard
elasticsearch
elasticsearch-xpack
envoyproxy
etcd
golang
graphite
haproxy
http
jolokia
kafka
kibana
kibana-xpack
kubernetes
kvm
logstash
logstash-xpack
memcached
mongodb
mssql
munin
mysql
nats
nginx
oracle
php_fpm
postgresql
prometheus
rabbitmq
redis
statsd
traefik
uwsgi
vsphere
windows
zookeeper

3.1 配置nginx module的状态查询

在nginx中,只有开启状态查询,才能查询到指标数据

[root@node4 metricbeat]# cd /usr/local/src/

[root@node4 src]# cd nginx-1.16.1

[root@node4 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module

[root@node4 nginx-1.16.1]# make && make install

[root@node4 nginx-1.16.1]# nginx -V

configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module

3.2 配置文件添加状态

nginx的配置文件添加

[root@node4 nginx-1.16.1]# grep -Ev "^$|#" /usr/local/nginx/conf/nginx.conf

worker_processes  ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server {
listen ;
server_name localhost;
location /nginx-status{
stub_status on;
access_log off;
}
location / {
root html;
index index.html index.htm;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
}

[root@node4 nginx-1.16.1]# nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

3.3 访问测试

[root@node4 nginx-1.16.1]# nginx  -s reload

访问http://192.168.132.134/nginx-status

3.4 结果说明

Active connections:正在处理的活动连接数

server accepts handled requests

  • 第一个 server表示 Nginx启动到现在共处理了6个连接
  • 第二个 accepts表示Ngin启动到现在共成功创建6次握手
  • 第三个 handled requests表示总共处理了21次请求
  • 请求丢失数=握手数·连接数,可以看出目前为止没有丢失请求

Reading: 0 Writing: 1 Waiting: 1

  • Reading: Nginx读取到客户端的 Header信息数
  • Writing: Nginx返回给客户端 Header信息数
  • Waiting: Nginx已经处理完正在等候下一次请求指令的驻留链接(开启 keep-alive的情况下,这个值等于Active(Reading+Writing)

3.5 启动nginx的module

[root@node4 nginx-1.16.1]# cd /usr/local/metricbeat/

[root@node4 metricbeat]# ./metricbeat modules enable nginx

Enabled nginx

[root@node4 metricbeat]# ll modules.d/

[root@node4 metricbeat]# vi modules.d/nginx.yml

# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.4/metricbeat-module-nginx.html - module: nginx
#metricsets:
# - stubstatus
period: 10s # Nginx hosts
#hosts: ["http://127.0.0.1"]
hosts: ["http://192.168.132.134"]
# Path to server status. Default server-status
#server_status_path: "server-status"
server_status_path: "server-status" #username: "user"
#password: "secret"

再次启动

[root@node4 metricbeat]# ./metricbeat -e

3.6 查看配置结果

原始数据

{
"_index": "metricbeat-7.4.2-2019.11.25-000001",
"_type": "_doc",
"_id": "ba0oo24BcnOPLK2rVzUH",
"_version": ,
"_score": ,
"_source": {
"@timestamp": "2019-11-25T15:22:39.039Z",
"metricset": {
"period": ,
"name": "stubstatus"
},
"service": {
"address": "192.168.132.134",
"type": "nginx"
},
"event": {
"dataset": "nginx.stubstatus",
"module": "nginx",
"duration":
},
"nginx": {
"stubstatus": {
"current": ,
"hostname": "192.168.132.134",
"accepts": ,
"handled": ,
"dropped": ,
"requests": ,
"writing": ,
"reading": ,
"waiting": ,
"active":
}
},
"ecs": {
"version": "1.1.0"
},
"host": {
"name": "node4",
"id": "a833bbe7e3634c75ab1b427c4049d056",
"containerized": false,
"hostname": "node4",
"architecture": "x86_64",
"os": {
"version": "7 (Core)",
"family": "redhat",
"name": "CentOS Linux",
"kernel": "3.10.0-957.27.2.el7.x86_64",
"codename": "Core",
"platform": "centos"
}
},
"agent": {
"id": "6abe64f1-2aa7-483a-8b23-2dd8e3cf4972",
"version": "7.4.2",
"type": "metricbeat",
"ephemeral_id": "35503dcb-9f11-4e23-9e07-9dd520ecdb14",
"hostname": "node4"
}
}
}

nginx的metriabeat已经配置完成,后面继续完成ngxin这一部分配置

ELK学习实验007:Nginx的日志分析系统之Metribeat配置的更多相关文章

  1. ELK学习实验006:Nginx的日志分析系统之filebeat配置

    一 Filebeat工作原理 Filebeat由两个主要组件组成: prospector和 harvester 1.1 harvester 负责读取单个文件的内容 如果文件在读取时被制除或重命名, F ...

  2. ELK + Filebeat 日志分析系统

    ELK + Filebeat 日志分析系统 架构图 环境 OS:CentOS 7.4 Filebeat: 6.3.2 Logstash: 6.3.2 Elasticsearch 6.3.2 Kiban ...

  3. ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台(elk5.2+filebeat2.11)

    ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台 参考:http://www.tuicool.com/articles/R77fieA 我在做ELK日志平台开始之初选择为 ...

  4. ELK日志分析系统-Logstack

    ELK日志分析系统 作者:Danbo 2016-*-* 本文是学习笔记,参考ELK Stack中文指南,链接:https://www.gitbook.com/book/chenryn/kibana-g ...

  5. [原创]ubuntu14.04部署ELK+redis日志分析系统

    ubuntu14.04部署ELK+redis日志分析系统 [环境] host1:172.17.0.4 搭建ELK+redis服务 host2:172.17.0.3 搭建logstash+nginx服务 ...

  6. Docker笔记(十):使用Docker来搭建一套ELK日志分析系统

    一段时间没关注ELK(elasticsearch —— 搜索引擎,可用于存储.索引日志, logstash —— 可用于日志传输.转换,kibana —— WebUI,将日志可视化),发现最新版已到7 ...

  7. ELK日志分析系统简单部署

    1.传统日志分析系统: 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安 ...

  8. Rsyslog+ELK日志分析系统

    转自:https://www.cnblogs.com/itworks/p/7272740.html Rsyslog+ELK日志分析系统搭建总结1.0(测试环境) 因为工作需求,最近在搭建日志分析系统, ...

  9. Rsyslog+ELK日志分析系统搭建总结1.0(测试环境)

    因为工作需求,最近在搭建日志分析系统,这里主要搭建的是系统日志分析系统,即rsyslog+elk. 因为目前仍为测试环境,这里说一下搭建的基础架构,后期上生产线再来更新最后的架构图,大佬们如果有什么见 ...

随机推荐

  1. 云上快速搭建Serverless AI实验室

    Serverless Kubernetes和ACK虚拟节点都已基于ECI提供GPU容器实例功能,让用户在云上低成本快速搭建serverless AI实验室,用户无需维护服务器和GPU基础运行环境,极大 ...

  2. mysql ip常见异常

    这次的项目采用mysql数据库,以前没怎么接触过,所以遇到很多问题,在此小小总结一下: (1)com.mysql.jdbc.exceptions.jdbc4.CommunicationsExcepti ...

  3. Vue.js 第1章 Vue常用指令学习

    今日目标 能够写出第一个vue应用程序 能够接受为什么需要学vue 能够使用指令 能够通过指定完成简单的业务(增加删除查询) 能够理解mvvm 为什么要学习vue 企业需要 可以提高开发效率 实现vu ...

  4. TensorFlow 中的卷积网络

    TensorFlow 中的卷积网络 是时候看一下 TensorFlow 中的卷积神经网络的例子了. 网络的结构跟经典的 CNNs 结构一样,是卷积层,最大池化层和全链接层的混合. 这里你看到的代码与你 ...

  5. 1x1卷积

    你可能会想为什么有人会用1x1卷积,因为它关注的不是一块像素,而是一个像素,图1 图1 我们看看传统的卷积,它基本上是运行在一个小块图像上的小分类器,但仅仅是个线性分类器.图2 图2 如果你在中间加一 ...

  6. Android Studio(三):设置Android Studio编码

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  7. Fish Shell使用心得

    Fish的官网宣传语是 Finally, a command line shell for the 90s. 翻译过来就是 Fish shell 是一个为90后准备的 shell. 有人说:" ...

  8. mysql 第一课 win7艰难的配置与删除注册表重新安装

    mysql 这个安装一定要慎重!慎重!慎重! 重要的事情说三遍.. 不会的一定要按步骤来~出错了真的很难受. 详细教程 -->  https://jingyan.baidu.com/album/ ...

  9. Vue 组件中的data数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 在spring security3中使用自定义的MD5和salt进行加密

    首先看代码: <authentication-manager alias="authenticationManager"> <authentication-pro ...