前言

ELK即分别为ElasticSearch、Logstash(收集、分析、过滤日志的工具)、Kibana(es的可视化工具),其主要工作原理就是由不同机器上的logstash收集日志后发送给es,然后由kibana展示

ElasticSeach

详情可参考ElasticSearch、ElasticSearch-head的安装和问题解决 一文

Logstash

安装

官网下载:https://www.elastic.co/cn/downloads/logstash

百度云下载:

链接:https://pan.baidu.com/s/1Ev1WZokXKFbmVLPTWD98kw
提取码:vxt9

linux:

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.3.tar.gz
tar -zxvf logstash-6.2.3.tar.gz
cd logstash-6.2.3

简易使用

./bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'  其中 stdin{} 表示从标准输入输入信息; -e 表示从命令行指定配置;然后 codec=>rubydebug 表示把结果输出到控制台。
./bin/logstash -e 'input { stdin{} } output { stdout{} }' 标准的输入输出,logstash最基本的工作模式,你输入什么,logstash就输出什么

另外,由于Logstash占用内存较大,默认堆内存为1G,因此内存不足的情况下会很卡

Filebeat

轻量级的日志传输工具,适用于没有java环境的服务器上,收集日志后发送给logstash、elasticsearch,缓冲redis、kafka

安装

官网下载:https://www.elastic.co/cn/downloads/beats/filebeat

linux下载:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.1-linux-x86_64.tar.gz
tar -zxvf filebeat-7.6.1-linux-x86_64
mv filebeat-7.6.1-linux-x86_64 filebeat-7.6.1
cd filebeat-7.6.1

修改filebeat.yml文件

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations. - type: log # Change to true to enable this input configuration.
enabled: true # Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/*.log
#- c:\programdata\elasticsearch\logs\*
------------------------------------------------------------

#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]


# Protocol - either `http` (default) or `https`.
#protocol: "https"


# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
#username: "elastic"
#password: "changeme"


#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["192.168.184.131:5044"]

注意:logstash和elasticsearch只能设置一个,否则会报输出不唯一的错误,要先启动logstash再启动filebeat

logstash输出日志到es配置

新建文件vim logfile.conf

input {
file {
path => "/var/log/*.log" //表示扫描目录下的所有以.log结尾的文件并将扫描结果发送给es
type => "ws-log"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["192.168.184.131:9200"]
index => "system-ws-%{+YYYY.MM.dd}" //索引名为system-ws-%{+YYYY.MM.dd}
}
}

此时可以通过以下命令检测配置文件是否有误

../bin/logstash -f logfile.conf --config.test_and_exit(当前目录为logstash-6.2.3/config)

将logstash和filebeat都启动

../bin/logstash -f logfile.conf(当前目录为logstash-6.2.3/config)
./filebeat -e -c filebeat.yml -d "public" (当前目录为filebeat-7.6.1)

如果想要后台启动则可以使用

nohup ../bin/logstash -f logfile.conf &  启动日志存储在当前目录的nohup.log文件中

nohup ../bin/logstash -f logfile.conf >logstash.log & 指定日志存储文件和位置

使用脚本文件启动
vim startup.sh

#!/bin/bash
  nohup ../bin/logstash -f logfile.conf &

 编写完成以后修改文件的执行权限 chmod -R 775 startup.sh

使用./startup.sh执行脚本(在startup.sh文件的目录下)

filebeat同理

Kibana

安装

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz (最好与elasticsearch的版本保持一致)
tar -zxvf kibana-6.2.4-linux-x86_64.tar.gz
mv kibana-6.2.4-linux-x86_64 kibana-6.2.4
cd kibana-6.2.4

修改kibana.yml

server.port: 5601

server.host: "192.168.184.131"

elasticsearch.url: "http://192.168.184.131:9200"

kibana.index: ".kibana" 

启动kibana   ./kibana(在kibana的bin目录下)

后台启动可参考Logstash启动方式

最后当配置无误,启动成功后,会有这样的效果

参考文章:

快速搭建ELK日志分析系统

logstash安装及基础入门

ELK 性能(1) — Logstash 性能及其替代方案

ELK分布式日志系统的搭建的更多相关文章

  1. ELK +Nlog 分布式日志系统的搭建 For Windows

    前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询  SELECT * FROM `LhzxUsers` WHERE UserN ...

  2. 使用Logstash工具导入sqlserver数据到elasticSearch及elk分布式日志中心

    首先记下这个笔记,Logstash工具导入sqlserver数据到elasticSearch. 因为logstash使用java写的,我本地开发是win11,所以javade jdk必须要安装.具体安 ...

  3. .NET下日志系统的搭建——log4net+kafka+elk

    .NET下日志系统的搭建--log4net+kafka+elk 前言     我们公司的程序日志之前都是采用log4net记录文件日志的方式(有关log4net的简单使用可以看我另一篇博客),但是随着 ...

  4. ELK分布式日志收集搭建和使用

    大型系统分布式日志采集系统ELK全框架 SpringBootSecurity1.传统系统日志收集的问题2.Logstash操作工作原理3.分布式日志收集ELK原理4.Elasticsearch+Log ...

  5. 【7.1.1】ELK日志系统单体搭建

    ELK是什么? 一般来说,为了提高服务可用性,服务器需要部署多个实例,每个实例都是负载均衡转发的后的,如果还用老办法登录服务器去tail -f xxx.log,有很大可能错误日志未出现在当前服务器中, ...

  6. .NetCore快速搭建ELK分布式日志中心

    懒人必备:.NetCore快速搭建ELK分布式日志中心   该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaics ...

  7. C#采用rabbitMQ搭建分布式日志系统

    网上对于java有很多开源的组件可以搭建分布式日志系统,我参考一些组件自己开发一套简单的分布式日志系 全部使用采用.NET进行开发,所用技术:MVC.EF.RabbitMq.MySql.Autofac ...

  8. Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考) - 推荐

    http://blog.csdn.net/lc0817/article/details/53266212/ https://github.com/leoChaoGlut/log-sys 上面是我基于S ...

  9. ELK统一日志系统的应用

    收集和分析日志是应用开发中至关重要的一环,互联网大规模.分布式的特性决定了日志的源头越来越分散, 产生的速度越来越快,传统的手段和工具显得日益力不从心.在规模化场景下,grep.awk 无法快速发挥作 ...

  10. Ansible实战:部署分布式日志系统

    本节内容: 背景 分布式日志系统架构图 创建和使用roles JDK 7 role JDK 8 role Zookeeper role Kafka role Elasticsearch role My ...

随机推荐

  1. 可持久化栈学习笔记 | 题解 P6182 [USACO10OPEN]Time Travel S

    简要题意 你需要维护一个栈,有 \(n\) 个操作,支持: 给定一个 \(x\),将 \(x\) 加入栈. 将一个元素出栈. 给定一个 \(x\),将当前栈回退到 第 \(x\) 操作前. 每一次操作 ...

  2. (Java)设计模式:结构型

    前言 这篇博文续接的是 UML建模.设计原则.创建型设计模式.行为型设计模式,有兴趣的可以看一下 3.3.结构型 这些设计模式关注类和对象的组合.将类和对象组合在一起,从而形成更大的结构 * 3.3. ...

  3. windows11 彻底修改c盘中文用户名

    windows11 彻底修改c盘用户名 由于一开始注册的时候没有注意使用了中文名导致后来再使用一些应用的时候出现问题浪费了大量的时间找不出原因(例如:安装cuda 的时候在使用nvcc编译.cu文件的 ...

  4. IntelliJ中高效重构的 10 个快捷方式

    前言 在日常的开发工作中,我们经常需要重构,重构可以让我们写出的代码更上一层楼.所以,我会借助IntelliJ提供的一些功能,帮助我高效进行重构.这里是我推荐10个快捷方式,也是我每天都在使用的,非常 ...

  5. What's new in Dubbo 3.1.5 and 3.2.0-beta.4

    在 1 月 27 日,新年伊始,Dubbo 3.1.5 和 3.2.0-beta.4 正式通过投票发布.本文将介绍发布的变化一览. Dubbo 3.1.5 版本是目前 Dubbo 3 的最新稳定版本, ...

  6. SOFAJRaft源码阅读(伍)-初识RheaKV

    SOFAJRaft的SOFAJRaft-RheaKV 是基于 SOFAJRaft 和 RocksDB 实现的嵌入式.分布式.高可用.强一致的 KV 存储类库.SOFAJRaft-RheaKV 集群主要 ...

  7. 带你读AI论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击

    摘要:这篇文章属于系统分析类的文章,通过详细的实验分析了离地攻击(Living-Off-The-Land)的威胁性和流行度,包括APT攻击中的利用及示例代码论证. 本文分享自华为云社区<[论文阅 ...

  8. 计算机网络基础07 DNS概述

    1 什么是DNS Domain Name System(域名系统),它是一个应用层的服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.当前,对于每一级域名长度的限制是 ...

  9. JavaScript是怎样实现继承的?

    一.是什么 继承(inheritance)是面向对象软件技术当中的一个概念. 如果一个类别B"继承自"另一个类别A,就把这个B称为"A的子类",而把A称为&qu ...

  10. 【译】.NET 7 中的性能改进(三)

    原文 | Stephen Toub 翻译 | 郑子铭 PGO 我在我的 .NET 6 性能改进一文中写了关于配置文件引导优化 (profile-guided optimization) (PGO) 的 ...