字节笔记本字节笔记本

filebeat elasticsearch kibana 日志收集展示系统搭建

2021-06-28

ELK Stack(Elasticsearch、Logstash、Kibana和Filebeat)是一套开源工具,用于日志收集、存储、可视化和分析,其中Elasticsearch作为搜索引擎,Logstash处理日志,Kibana提供可视化界面,Filebeat轻量级传输数据,而X-Pack提供扩展功能如安全管理和监控,但需付费。

Elasticsearch是个开源分布式搜索引擎,特点:分布式,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,可对日志进行收集、分析,并将过滤后的数据转给Elasticsearch使用

kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供友好的web可视化界面,帮助您汇总、分析和搜索重要数据日志。 beats是开源的轻量级数据传输组件,面向简单明确的数据传输场景,可将数据传输给Logstash 和 ElasticSearch,安装在采集端

X-Pack是Elastcsearch的扩展插件,包括基于用户的安全管理、集群监控告警、数据报表导出、图探索,需分别在Elasticsearch和kibana节点安装,X-Pack是付费的。 常用于对应用产生的日志进行收集、整理、展示。

最简单的ELK架构 filebeat --> elasticsearch --> elasticsearch ELK服务器上安装elasticsearch+kibana,其他产生日志的服务器上安装filebeat

elasticsearch安装

yum install -y java-1.8.0

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.rpm
rpm -ivh elasticsearch-6.0.1.rpm

vi /etc/elasticsearch/elasticsearch.yml
cluster.name: my-app
node.name: elk-1  
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200

systemctl daemon-reload
systemctl enable elasticsearch
systemctl restart elasticsearch
systemctl status elasticsearch

kibana安装

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.1-x86_64.rpm
rpm -ivh kibana-6.0.1-x86_64.rpm

vi /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
kibana.index: ".kibana"

systemctl enable kibana
systemctl start kibana
systemctl status kibana

客户端 filebeat安装

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.0.1-x86_64.rpm
rpm -ivh filebeat-6.0.1-x86_64.rpm

vi /etc/filebeat/filebeat.yml
filebeat.prospectors:
- type: log
  enabled: true
  paths: - /var/log/nginx/*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
tags: [webA]
setup.kibana:
  host: "10.31.44.167:5601"
output.elasticsearch:
  hosts: ["10.31.44.167:9200"]

systemctl enable filebeat
systemctl start filebeat
systemctl status filebeat