ELK日志采集平台(四)---轻量级采集工具metricbeat

  

目录

一、安装metricbeat

二、与kibana数据可视化联用


      logstash是负责采集数据的,是入口,流向为logstash-> ES->kibana,但是它的资源消耗很大,有时候没那么多内存给他占用,同时有些定制的采集指标logstash无法满足。所以有时也使用轻量级的metricbeat来实现采集,流向为metricbeat-> ES->kibana,可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,还可针对系统上的每个进程获得与 top 命令类似的统计数据。同时Metricbeat 提供多种内部模块,用于从服务中收集指标,例如 Apache、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus、Redis 等等。

官网:https://www.elastic.co/guide/en/beats/metricbeat/7.6/metricbeat-installation.html

##进入kibana
    点击集群 -> 使用metricbeat
        输入监测集群URL  http://192.168.19.71:9200

一、安装metricbeat

##在线安装
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.6.2-linux-x86_64.tar.gz
tar xzvf metricbeat-7.6.2-linux-x86_64.tar.gz

##也可以采用docker直接运行
docker pull docker.elastic.co/beats/metricbeat:7.6.2
docker run \
docker.elastic.co/beats/metricbeat:7.6.2 \
setup -E setup.kibana.host=kibana:5601 \
-E output.elasticsearch.hosts=["elasticsearch:9200"]  
##配置进入/etc/metricbeat/modules.d,查看所有模块
    --disabled表示未激活,elasticsearch-xpack已被激活

##vim elasticsearch-xpack.yml
---------------------------------------------
- module: elasticsearch
  metricsets:
    - ccr
    - cluster_stats
    - enrich
    - index
    - index_recovery
    - index_summary
    - ml_job
    - node_stats
    - shard
  period: 10s
  hosts: ["http://localhost:9200"]
  username: "elastic"
  password: "123"
  xpack.enabled: true
---------------------------------------------

##返回上一层,配置metricbeat
vim metricbeat.yml
---------------------------------------------
output.elasticsearch:
  hosts: ["192.168.19.71:9200"]
  username: "elastic"
  password: "123"
---------------------------------------------

##重启elasticsearch服务,查看端口
systemctl restart elasticsearch.service

##同样对server2\3进行处理,然后禁用内部采集即可

二、与kibana数据可视化联用

        filebeat可以对日志信息进行检测,官网介绍:https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-installation.html

         点击logs可以查看到有很多日志信息,但此时hostname检索到es各个主机的日志信息(未安装filebeat),集群的日志都在:/var/log/elasticsearch

        filebeat的数据流向为filebeat->logstash-> ES->kibana,组合使用。假如流量很大,为了确保数据不丢失,可以加入中间件kafaka或者redis,实现消息队列,即filebeat->logstash->kafaka-> ES->kibana;
        server1安装filebeat,激活es模块

##安装:
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.2-x86_64.rpm
sudo rpm -vi filebeat-7.6.2-x86_64.rpm

##配置es
  var.paths:
       - var/log/elasticsearch/*.log
       - var/log/elasticsearch/*_server.json

  gc:
    enabled: true
    var.paths:
        - var/log/elasticsearch/gc.log.[0-9]*
        - var/log/elasticsearch/gc.log

 audit:
    enabled: true
    var.paths:
        - var/log/elasticsearch/*_access.log
        - var/log/elasticsearch/*_audit.json
 slowlog:
    enabled: true
    var.paths:
      - var/log/elasticsearch/*_index_search_slowlog.json
      - var/log/elasticsearch/*_index_search_slowlog.log
      - var/log/elasticsearch/*_index_indexing_slowlog.json
      - var/log/elasticsearch/*_index_indexing_slowlog.log

deprecation:
    enables: true
    var.paths:
      - var/log/elasticsearch/*_deprecatin.json
      - var/log/elasticsearch/*_deprecatin.log
        
##配置filebeat全局文件
    vim filebeat.yml
-----------------------------------------------------------
hosts: ["192.168.19.71:9200"]
username: "elastic"
password: "123"
-----------------------------------------------------------

##启动服务
systemctl enable --now filenbeat.service

##在web端点击logs,通过hostname可以进行查询

上述配置中:

1、服务器日志文件集设置:
        var.paths 一组基于全局的路径,指定在何处查找日志文件。Go Glob支持的所有模式也在这里得到了支持。例如,您可以使用通配符从预定义级别的子目录:/path/to/log//. 1log获取所有文件。这将从/path/到/log的子文件夹中获取所有的.log文件。它不会从/path/获取日志文件到/log文件夹本身。如果此设置为空,Filebeat将根据您的操作系统选择日志路径;
2、gc日志文件集设置
3、审计日志文件集设置

 【部分问题解决】
(1)冷热分离
        注意ELK是实时监测数据的,虽然有数据库的功能,但是完全和数据库不一样,实时监测非常消耗资源,如果只当数据库,纯属大材小用。一般要把数据冷热分离,刚刚采集到数据可以理解为热数据(hot),实时写入ELK分析;过一段时间,数据变为温数据(warm),可以用来查询,不再写入;再过一段时间变为冷数据(cold),查询也很少了,我们可以考虑把他放到数据库中存储,或者从硬件方面来说,从高性能的节点存储换为普通性能的节点,把高性能的节点留给热数据;再过很久,会删除数据。

 - 想要实现上面的冷热分离,进行生命周期管理,必须有:
        1、节点标签。区分冷热节点
        2、生命周期策略。定义热阶段的大小,最长时间,存在时长等等
        3、索引模板引用索引模板策略。模板创建索引,加载生命周期策略
        4、索引模板指定调度节点。将新建索引分片分配到热节点

(2)搜索速度优化
        为了提高es搜索速度,可以考虑下面几种方法:
        1、为文件系统cache留有足够内存,内存越大,速度越快
        2、提升i/o,使用固态硬盘
        3、减少层层嵌套

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要远程采集日志,需要在目标服务器上安装一个日志采集代理,如Logstash或Filebeat。然后,将代理配置为将日志发送到Elasticsearch集群中的一个或多个节点。 以下是大致步骤: 1. 在目标服务器上安装Logstash或Filebeat 2. 配置代理以获取要采集日志 3. 配置代理以将日志发送到Elasticsearch集群中的节点 4. 在Elasticsearch中创建适当的索引模板和搜索查询以检索日志 具体来说,可以按照以下步骤进行操作: 1. 安装Logstash或Filebeat 对于Logstash,可以按照官方文档中的指南进行操作。对于Filebeat,也可以按照官方文档中的指南进行操作。 2. 配置代理 在Logstash或Filebeat中,需要配置输入和输出。输入是指要采集日志文件或数据源,输出是指将日志发送到Elasticsearch集群中的节点。 例如,在Filebeat中,可以使用以下配置: ``` filebeat.inputs: - type: log enabled: true paths: - /var/log/myapp/*.log output.elasticsearch: hosts: ["http://es-node1:9200", "http://es-node2:9200"] ``` 这将采集`/var/log/myapp/*.log`中的日志,并将其发送到`es-node1`和`es-node2`节点上的Elasticsearch。 3. 创建索引模板和搜索查询 在Elasticsearch中,需要创建一个适当的索引模板以确保日志正确地解析和存储。还可以创建搜索查询以检索和过滤日志。 例如,可以使用以下示例索引模板: ``` PUT _template/myapp_logs { "index_patterns": ["myapp-*"], "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "timestamp": { "type": "date" }, "message": { "type": "text" }, "tags": { "type": "keyword" } } } } ``` 此模板指定了一个索引模式,即`myapp-*`,并定义了索引中的字段。还可以创建搜索查询以检索和过滤日志。 总之,远程采集日志需要配置日志采集代理,并将其配置为将日志发送到Elasticsearch集群中的节点。然后,在Elasticsearch中创建索引模板和搜索查询以检索日志

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值