一步步建立 ELK log分析平台 --- logstash 6.5.4 安装

目录

 

1. 下载logstash 

2. 复制一个default.conf 文件

3.启动logstash


1. 下载logstash 

# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.tar.gz

移动到安装目录解压 #tar -zxvf logstash-6.5.4.tar.gz

2. 复制一个default.conf 文件

这个配置架构里面,log是直接通过beats来收集的,没有经过Redis,后期需要的时候,再通过Redis来收集吧

#cp logstash-sample.conf default.conf

[root@iZj6c8tmr3yb0ntvym98ryZ config]# more default.conf 
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

3.启动logstash

# ./logstash -f ../config/default.conf
Sending Logstash logs to /home/admin/logstash-6.5.4/logs which is now configured via log4j2.properties
[2019-01-20T13:21:40,807][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2019-01-20T13:21:40,835][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"6.5.4"}
[2019-01-20T13:21:44,165][INFO ][logstash.pipeline        ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[2019-01-20T13:21:44,776][INFO ][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://localhost:9200/]}}
[2019-01-20T13:21:45,039][WARN ][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>"http://localhost:9200/"}
[2019-01-20T13:21:45,201][INFO ][logstash.outputs.elasticsearch] ES Output version determined {:es_version=>6}
[2019-01-20T13:21:45,205][WARN ][logstash.outputs.elasticsearch] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>6}
[2019-01-20T13:21:45,242][INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://localhost:9200"]}
[2019-01-20T13:21:45,283][INFO ][logstash.outputs.elasticsearch] Using mapping template from {:path=>nil}
[2019-01-20T13:21:45,330][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"template"=>"logstash-*", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"_default_"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}}
[2019-01-20T13:21:45,508][INFO ][logstash.outputs.elasticsearch] Installing elasticsearch template to _template/logstash
[2019-01-20T13:21:45,774][INFO ][logstash.inputs.beats    ] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
[2019-01-20T13:21:45,968][INFO ][logstash.pipeline        ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x4dbb075b run>"}
[2019-01-20T13:21:46,097][INFO ][org.logstash.beats.Server] Starting server on port: 5044
[2019-01-20T13:21:46,169][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-01-20T13:21:46,496][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

整个系统服务器端的安装工作完成,下面我们需要做的就是在对于log服务器上安装log收集工具,beats

ELK stack(Elasticsearch,Logstash,Kibana)是一套流行的日志管理和分析解决方案。使用Docker Compose部署ELK非常方便,让我们来看看如何实现。 1. 安装Docker和Docker Compose 首先,你需要在你的机器上安装Docker和Docker Compose。如果你还没有安装,可以按照Docker官方文档进行安装:https://docs.docker.com/engine/installation/ 2. 创建docker-compose.yml文件 在你的项目目录中创建一个名为docker-compose.yml的文件,用于定义ELK stack服务的配置。 ``` version: '2' services: elasticsearch: image: elasticsearch:6.5.4 container_name: elasticsearch environment: - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 ports: - "9200:9200" volumes: - esdata:/usr/share/elasticsearch/data logstash: image: logstash:6.5.4 container_name: logstash volumes: - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf depends_on: - elasticsearch ports: - "5044:5044" kibana: image: kibana:6.5.4 container_name: kibana environment: - ELASTICSEARCH_URL=http://elasticsearch:9200 ports: - "5601:5601" depends_on: - elasticsearch volumes: esdata: driver: local ``` 在这个文件中,我们定义了三个服务:Elasticsearch,Logstash和Kibana。使用image关键字,我们指定了我们要使用的Docker映像。container_name关键字允许我们为容器指定一个名称,以便我们可以轻松地引用它们。对于Elasticsearch,我们还定义了环境变量和卷。 对于Logstash,我们挂载了一个名为logstash.conf的配置文件,以便我们可以定义Logstash如何处理日志数据。我们还定义了对Elasticsearch的依赖关系和一个端口映射。 对于Kibana,我们定义了一个环境变量,指定Kibana应该连接到哪个Elasticsearch实例,并定义了另一个端口映射。 最后,我们还定义了一个名为esdata的卷,用于持久化Elasticsearch数据。 3. 创建logstash.conf文件 在你的项目目录中创建一个名为logstash.conf的文件,并将以下内容复制到文件中。 ``` input { file { path => "/var/log/*.log" start_position => "beginning" sincedb_path => "/dev/null" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "logs-%{+YYYY.MM.dd}" } } ``` 这个文件告诉Logstash如何处理日志数据。在这种情况下,我们从一个名为/var/log/*.log的文件中读取日志数据,并使用Grok模式匹配来解析它们。我们还使用date插件将时间戳解析为可搜索的格式。最后,我们将数据发送到Elasticsearch中。 4. 启动ELK stack 一旦你创建了docker-compose.yml和logstash.conf文件,就可以启动ELK stack了。在你的项目目录中运行以下命令: ``` docker-compose up ``` 这个命令将启动Elasticsearch,Logstash和Kibana服务,并将它们连接在一起。你可以使用以下命令在后台运行它们: ``` docker-compose up -d ``` 一旦启动,你可以通过访问http://localhost:5601来访问Kibana界面,从而查看和分析日志数据。 总结 Docker Compose是一种强大的工具,可帮助你轻松地部署和管理复杂的应用程序。使用它来部署ELK stack可以让你更轻松地管理和分析日志数据。希望这篇文章对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值