共计 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/…