关于elastic-stack:Metricbeat安装

60次阅读

共计 4592 个字符,预计需要花费 12 分钟才能阅读完成。

Beats 是轻量级(资源高效,无依赖性,小型)和凋谢源代码日志发送程序的汇合,这些日志发送程序充当装置在根底构造中不同服务器上的代理,用于收集日志或指标(Metrics)。这些能够是日志文件(Filebeat),网络数据(Packetbeat),服务器指标(Metricbeat)或 Elastic 和社区开发的越来越多的 Beats 能够收集的任何其余类型的数据。收集后,数据将间接发送到 Elasticsearch 或 Logstash 中进行其余解决。Beats 建设在名为 libbeat 的 Go 框架之上,该框架用于数据转发,这意味着社区始终在开发和奉献新的 Beats。

环境筹备

​ 作为 Elastic Stack 的补充,在应用 Beats 之前,须要已装置好 Elasticearch 和 Kibana。Elasticsearch 用来存储,剖析和检索数据,而 Kibana 作为可视化,监控和治理端。接下来将基于 Elastic Stack 7.13.4 版本为根底,以 Metricbeat 组件为例,其余 Beats 组件应用办法相似。在装置 Beats 时,须要留神的一点是 Beats 的版本要和 Elasticsearch 及 Kibana 的版本统一,或至多是大版本是统一的。

Beats 组件的下载和装置

tar 包形式装置

咱们这里以 linux 的为例子:其余的相似:

  • 创立文件目录

    mkdir -p /usr/local/beats
  • 下载解压包:
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.13.4-linux-x8 6_64.tar.gz tar xzvf metricbeat-7.13.4-linux-x86_64.tar.gz

如果咱们的网络比较慢的话,咱们能够采纳国内镜像下载:

  • 解压
tar xzvf metricbeat-7.13.4-linux-x86_64.tar.gz

根底配置

​ 进入解压后的 Metricbeat 目录能够看到,装置目录的根目录下如下文件及文件夹:

$ ls -l 
fields.yml 
kibana 
LICENSE.txt 
metricbeat# 残缺的配置文件模板 
metricbeat.reference.yml# 默认的配置文件 
metricbeat.yml
Module
modules.d 
NOTICE.txt 
README.md

咱们只批改应用 metricbeat.yml 这个配置文件。

​ 如果你的 Elasticsearch 和 Kibana 都装置在同一台主机上,并配置了默认的端口,

能够跳过此步骤不批改配置,Metricbeat 默认指定了 localhost。

output.elasticsearch: 
  hosts: ["localhost:9200"] 
  # 如果 ElasticSearch 启用了认证须要配置账号密码 
  username: "YOUR_ACCOUNT" 
  password: "YOUR_PASSWORD"setup.kibana: 
  host: "localhost:5601" 
  # 如果 kibana 启用了认证须要配置账号密码 
  username: "YOUR_ACCOUNT" 
  password: "YOUR_PASSWORD"

​ 配置 Metricbeat,指定运行的模块。

# 查看所有反对的模块 
./metricbeat modules list # 关上 system 模块 
./metricbeat modules enable system

设置初始化环境,在此之前确保 Elasticsearch 和 Kibana 曾经失常运行:

./metricbeat setup -e

下面的命令输入为:

./metricbeat setup 
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling. 

Index setup finished. 
Loading dashboards (Kibana must be running and reachable)

如上所示。

在 setup 这个过程中,它将为 Beat 生成相应的 Dashboard,Index patterns,Index template, 索引生命周期管理策略以及相应的 Ingest pipeline。这个命令的运行工夫比拟长。须要急躁期待。下面的命令针对一个 Beat 来说,只须要运行一次就能够了。

Docker 形式装置

咱们在机器:192.168.2.14 上的虚拟机 linux 的 centos/ 7 下装置。

拉取镜像

docker pull docker.elastic.co/beats/metricbeat:7.13.4

启动 Docker 版 Metricbeat

下载镜像

咱们也能够先启动 docker 容器,而后再次设置 es 或者 kibana 的地址:

docker run -d --name=metricbeat docker.elastic.co/beats/metricbeat:7.13.4

下载 metricbeat.docker.yml 模板文件

curl -L -O https://raw.githubusercontent.com/elastic/beats/7.13/deploy/docker/metricbeat.docker.yml

如果呈现以下问题:

[vagrant@loaclhost /]$ curl -L -O https://raw.githubusercontent.com/elastic/beats/7.13/deploy/docker/metricbeat.docker.yml

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) Failed connect to raw.githubusercontent.com:443; Connection refused

阐明咱们不能拜访下面的 githubusercontent 网络,参考:https://github.com/hawtim/blo…

在 ip 地址查问中央输出:raw.githubusercontent.com 得出如下后果:

此时咱们须要把对应的 raw.githubusercontent.com 波及到的地址增加到 linux 下的 hosts 文件:

185.199.108.133 raw.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133avatars1.githubusercontent.com

在增加 es 跟 kibana 信息:

output.elasticsearch:
  hosts: '192.168.2.11:9200'
  username: 'elastic'
  password: 'elastic'
setup.kibana:
  host: 192.168.2.14:5601

启动 metricbeat 容器

docker run -d \
  --name=metricbeat \
  --user=root \
  --volume="$(pwd)/metricbeat.docker.yml:/usr/share/metricbeat/metricbeat.yml:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  --volume="/sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro" \
  --volume="/proc:/hostfs/proc:ro" \
  --volume="/:/hostfs:ro" \
  docker.elastic.co/beats/metricbeat:7.13.4

metricbeat 配置 集成 kibana、elasticsearch

进入容器

 docker exec -it metricbeat bash

启动 system 和 容器 监控 modules:

metricbeat modules enable system
metricbeat modules enable docker

启动 Beats

​ Metricbeat 启动后会发送 system metrics 数据到 Elasticsearch。

./metricbeat -e

是不是感觉记忆下面的装置步骤很麻烦啊?在 Kibana 中,Elastic 曾经为咱们如何增加数据做了具体的形容,而且装置后的版本肯定是和你装置的 Elasticsearch 及 Kibana 的版本是一样的。

具体的操作步骤如下:

Add data(增加数据)

Metrics

​ 在下面显示了如下装置各种 Metrics 的具体步骤。以 System metrics 为例,在下面的页面中向下滚动:

​ 在下面,咱们抉择所须要的操作系统。再接着依照下面的装置步骤一步一步向下走。

咱们就能够实现所须要的 Beat 的装置。

查看收集到的数据

咱们首先关上 Kibana,并启动 Dashboard:

​ 在下面,咱们搜寻 metricbeat system,咱们就能够发现曾经预置的 Dashboard。咱们抉择 [Metricbeat System] Overview ECS:

常见问题

kibana 的 metricbeat 上的 Dashboard 不展现系统监控信息

拜访:http://192.168.2.14:5601/api/… 呈现:

{"statusCode":403,"error":"Forbidden","message":"Access to Fleet API require the superuser role, and for stack security features to be enabled."}

解决方案:

参考:https://www.elastic.co/guide/…

须要配置 kibana 的平安拜访明码。

ES 设置明码:

https://blog.csdn.net/qq_3123…

Exiting: data path already locked by another beat. Please make sure that multiple beats are not sharing the same data path (path.data).

进入 docker 运行的 metricbeat 容器中之后呈现下面问题,

须要重新启动

kibana 的 dashboard 中无奈看到 metricbeat 局部 system 数据

起因是咱们查问监控的时候, 抉择的是 14 分钟,时钟不统一导致了咱们查问不到最新的展现信息

参考

https://blog.csdn.net/u011337…

https://blog.csdn.net/weixin_…

Failed to connect to raw.githubusercontent.com port 443: Connection refused 的问题

https://github.com/hawtim/blo…

官网:

https://www.elastic.co/guide/…

正文完
 0