搭建es+kibana+logstash+filebeat 日志收集分析

本文详细介绍如何使用Elasticsearch、Kibana、Logstash和Filebeat构建日志收集、处理和展示系统。涵盖组件安装配置、日志切割规则、多实例部署等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现目标:

使用elasticsearch+kibana+logstash+filebeat搭建服务,以支持(日志收集切分展示查找)

架构:

10.6.14.77 es,kibana,logstash  (三项默认的配置均为localhost,起在同一台服务器不再需要修改)

logstash 在单服务器上起多个实例,分别收集每个服务的日志,以隔离各个服务的日志收集

filebeat (起在各个需要收集日志的服务器上)

通过supervisor控制各个服务器上的响应服务

版本:

es 6.2.3 (基础日志数据存储)

kibana 6.2.3 (可视化web端服务)

logstash 6.2.3 (日志切分及归类)

filebeat 6.3.2 (各服务器日志收集)

 

前置:

需要安装java8

elastic stack 官网:https://www.elastic.co/products/

 

elasticsearch:

1.unzip elasticsearch-6.2.3.zip

2.启动  ./bin/elasticsearch  

   后台启动  ./bin/elasticsearch -d

   检测是否启动成功:curl localhost:9200

3.若报错:can not run elasticsearch as root 

   原因:这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch

   解决方案:创建elsearch用户组及elsearch用户

   groupadd elsearch

   useradd elsearch -g elsearch -p elasticsearch

   chown -R elsearch:elsearch elasticsearch

4.若报错:max virtual memory areas vm.maxmapcount [65530] is too low

   sudo sysctl -w vm.max_map_count=262144

   在本机查看启动信息:curl localhost:9200

5. 配置外网访问:

config/elasticsearch.yml

修改为:network.host: 0.0.0.0

    

filebeat:

下载地址:https://www.elastic.co/cn/downloads/beats/filebeat

1.修改filebeat.yml配置

hint: filebeat.yml的默认配置是将数据output至elasticsearch,需要将其注释掉,并启用logstash output

filebeat.inputs: # 设置输入源
  # Change to true to enable this input configuration.
  enabled: true 
  paths:
        - /data/log/* # 读取日志路径
output.logstash: # 设置输出至logstash
  hosts: ["10.6.14.77:5044"]

tail_files: true #从文件末尾开始读取,否则在启动时会读取全文件

# hint: 将es的output注释掉

2.命令行测试启动:

./filebeat -e -c filebeat.yml

 

logstash:

下载地址:https://www.elastic.co/cn/downloads/logstash

1.unzip logstash-6.2.3.zip

2.命令行测试启动:

./bin/logstash -e "input {stdin{}} output {stdout{}}"

可在命令行输入,并输出至命令行

3.配置文件测试启动:

-e:指定logstash的配置信息,可以用于快速测试;
-f :指定logstash的配置文件;可以用于生产环境;

配置文件样例:

input { stdin { } }

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  stdout { codec => rubydebug }
}
.bin/logstash -f test.conf

4.配置启动

input {
    beats {
        port => "5044"
    }
} # 配置输入源为5044端口,filebeat默认打到5044端口

input {
	beats {
		add_field => {"log_type" => "pisces"} # 对于不同服务的filebeat打来的log,添加不同的log_type
		port => 5044
	}
	beats {
		add_field => {"log_type" => "aries"}
		port => 5043
	}
	beats {
		add_field => {"log_type" => "aquarius"}
		port => 5045
	}
}
filter {
	if "pisces" in [tags]{
		grok {
			match => { "message" => "\[%{WORD:info_level} %{DATESTAMP:timestamp} %{WORD:temp}:%{NUMBER:temp}\] %{NUMBER:status} %{WORD:method} %{URIPATHPARAM:request} \(%{IP:ip}\) %{GREEDYDATA:C}"
			}
		} # 切分规则,grok中大写字母为grok规则中的匹配关键字
		mutate {
			split => ["request", "?"] # 将grok中
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值