用ElasticSearch,LogStash,Kibana搭建实时日志收集系统

kibana-oss-6.5.4-linux-x86_64.tar.gz 这个kibana-oos时linux环境版本时6.5.4 在开发中使用kibana 连接ES 非oos 则需要安全校验,这时就会连接不上,而kibana-oos这版本连接时,则不要安全校验 立即下载

用ElasticSearch,LogStash,Kibana搭建实时日志收集系统

介绍

  • 这套系统,logstash负责收集处理日志文件内容存储到elasticsearch搜索引擎数据库中。kibana负责查询elasticsearch并在web中展示。
  • logstash收集进程收获日志文件内容后,先输出到redis中缓存,另一logstash处理进程从redis中读出并转存到elasticsearch中,以解决读快写慢速度不一致问题。
  • 官方在线文档:https://www.elastic.co/guide/index.html

一、安装jdk7

  • ElasticSearch,LogStash均是java程序,所以需要jdk环境。
    需要注意的是,多节点通讯,必须保证JDK版本一致,不然可能会导致连接失败。

  • 下载:jdk-7u71-linux-x64.rpm
    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

  • rpm -ivh jdk-7u71-linux-x64.rpm

  • 配置JDK
    编辑/etc/profile文件,在开头加入:

    export JAVA_HOME=/usr/java/jdk1.7.0_71
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  • 检查JDK环境
    使用source /etc/profile命令,使环境变量立即生效。
    查看当前安装的JDK版本,命令:java -version
    检查环境变量,echo $PATH

二、安装elasticsearch

bootstrap.mlockall: true

index.number_of_shards: 1
index.number_of_replicas: 0

#index.translog.flush_threshold_ops: 100000
#index.refresh_interval: -1
index.translog.flush_threshold_ops: 5000
index.refresh_interval: 1  

network.bind_host: 172.16.18.114     

#节点间通讯发布到其它节点的IP地址
#如果不设置由ES自己决定它可能会发现一个地址,但是其它节点可能访问不了,这样节点间通讯将失败                                
network.publish_host: 172.16.18.114                                          

# Security 允许所有http请求
http.cors.enabled: true
http.cors.allow-origin: "/.*/"    
  • 修改bin/elasticsearch文件
# 使jvm使用os,max-open-files
es_parms="-Delasticsearch -Des.max-open-files=ture"

# Start up the service
# 修改OS打开最大文件数
ulimit -n 1000000
ulimit -l unlimited
launch_service "$pidfile" "$daemonized" "$properties"
  • 修改bin/elasticsearch.in.sh文件
......

if [ "x$ES_MIN_MEM" = "x" ]; then
    ES_MIN_MEM=256m
fi
if [ "x$ES_MAX_MEM" = "x" ]; then
    ES_MAX_MEM=1g
fi
if [ "x$ES_HEAP_SIZE" != "x" ]; then
    ES_MIN_MEM=$ES_HEAP_SIZE
    ES_MAX_MEM=$ES_HEAP_SIZE
fi

#set min memory as 2g
ES_MIN_MEM=2g
#set max memory as 2g
ES_MAX_MEM=2g

......
  • 运行
    ./bin/elasticsearch -d
    ./logs下为日志文件

  • 检查节点状态
    curl -XGET ‘http://localhost:9200/_nodes?os=true&process=true&pretty=true’

    {
      "cluster_name" : "elasticsearch",
      "nodes" : {
        "7PEaZbvxToCL2O2KuMGRYQ" : {
          "name" : "Gertrude Yorkes",
          "transport_address" : "inet[/172.16.18.116:9300]",
          "host" : "casimbak",
          "ip" : "172.16.18.116",
          "version" : "1.4.4",
          "build" : "c88f77f",
          "http_address" : "inet[/172.16.18.116:9200]",
          "settings" : {
            "index": {
                "number_of_replicas": "0",
                "translog": {
                    "flush_threshold_ops": "5000"
                },
                "number_of_shards": "1",
                "refresh_interval": "1"
            },      
            "path" : {
              "logs" : "/home/jfy/soft/elasticsearch-1.4.4/logs",
              "home" : "/home/jfy/soft/elasticsearch-1.4.4"
            },
            "cluster" : {
              "name" : "elasticsearch"
            },
            "bootstrap" : {
              "mlockall" : "true"
            },
            "client" : {
              "type" : "node"
            },
            "http" : {
              "cors" : {
                "enabled" : "true",
                "allow-origin" : "/.*/"
              }
            },
            "foreground" : "yes",
            "name" : "Gertrude Yorkes",
            "max-open-files" : "ture"
          },
          "process" : {
            "refresh_interval_in_millis" : 1000,
            "id" : 13896,
            "max_file_descriptors" : 1000000,
            "mlockall" : true
          },
    
          ...
    
        }
      }
    }
  • 表明ElasticSearch已运行,状态与配置相符

            "index": {
                "number_of_replicas": "0",
                "translog": {
                    "flush_threshold_ops": "5000"
                },
                "number_of_shards": "1",
                "refresh_interval": "1"
            }, 
    
          "process" : {
            "refresh_interval_in_millis" : 1000,
            "id" : 13896,
            "max_file_descriptors" : 1000000,
            "mlockall" : true
          },
  • 安装head插件操作elasticsearch
    elasticsearch/bin/plugin -install mobz/elasticsearch-head
    http://172.16.18.116:9200/_plugin/head/

  • 安装marvel插件监控elasticsearch状态
    elasticsearch/bin/plugin -i elasticsearch/marvel/latest
    http://172.16.18.116:9200/_plugin/marvel/

三、安装logstash

  • logstash一个日志收集处理过滤程序。

  • LogStash分为日志收集端进程和日志处理端进程,收集端负责收集多个日志文件实时的将日志内容输出到redis队列缓存,处理端负责将redis队列缓存中的内容输出到ElasticSarch中存储。收集端进程运行在产生日志文件的服务器上,处理端进程运行在redis,elasticsearch同一服务器上。

  • 下载
    wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz

  • redis安装配置
    make
    make PREFIX=/usr/local/redis install
    要注意监控redis队列长度,如果长时间堆集说明elasticsearch出问题了
    每2S检查一下redis中数据列表长度,100次
    redis-cli -r 100 -i 2 llen logstash:redis

  • 配置Logstash日志收集进程
    vi ./lib/logstash/config/shipper.conf

input {
    #file {
    #    type => "mysql_log"
    #    path => "/usr/local/mysql/data/localhost.log"
    #    codec => plain{
    #        charset => "GBK"
    #    }
    #}
    file {
        type => "hostapd_log"
        path => "/root/hostapd/hostapd.log"
        sincedb_path => "/home/jfy/soft/logstash-1.4.2/sincedb_hostapd.access"
        #start_position => "beginning"
        #http://logstash.net/docs/1.4.2/codecs/plain
        codec => plain{
            charset => "GBK"
        }
    }
    file {
        type => "hkt_log"
        path => "/usr1/app/log/bsapp.tr"
        sincedb_path => "/home/jfy/soft/logstash-1.4.2/sincedb_hkt.access"
        start_position => "beginning"
        codec => plain{
            charset => "GBK"
        }
    }
#   stdin {
#       type => "hostapd_log"
#   }
}

#filter {
#    grep {
#        match => [ "@message", "mysql|GET|error" ]
#    }
#}

output {
    redis {
        host => '172.16.18.116'
        data_type => 'list'
        key => 'logstash:redis'
#        codec => plain{
#            charset => "UTF-8"
#        }
    }
#    elasticsearch {
#      #embedded => true
#      host => "172.16.18.116"
#    }
}
  • 运行收集端进程
    ./bin/logstash agent -f ./lib/logstash/config/shipper.conf

  • 配置Logstash日志处理进程
    vi ./lib/logstash/config/indexer.conf

    input {
      redis {
        host => '127.0.0.1'
        data_type => 'list'
        key => 'logstash:redis'
        #threads => 10
        #batch_count => 1000
      }
    }
    
    output {
      elasticsearch {
        #embedded => true
        host => localhost
        #workers => 10
      }
    }
  • 运行处理端进程
    ./bin/logstash agent -f ./lib/logstash/config/indexer.conf
    处理端从redis读出缓存的日志内容,输出到ElasticSarch中存储

四、安装kibana

  • kibana是elasticsearch搜索引擎的web展示界面,一套在webserver下的js脚本,可以定制复杂的查询过滤条件检索elasticsearch,并以多种方式(表格,图表)展示。

  • 下载
    wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.2.tar.gz
    解压后将kibana目录放到webserver能访问到的地方

  • 配置
    修改kibana/config.js:

如果kibana与elasticsearch不在同一机器则修改:
elasticsearch: "http://192.168.91.128:9200",
#这里实际上是浏览器直接访问该地址连接elasticsearch

否则默认,一定不要修改

如果出现connection failed,则修改elasticsearch/config/elasticsearch.yml,增加:

http.cors.enabled: true  
http.cors.allow-origin: "/.*/"

具体含义参见:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-http.html

ElasticSearch、Logstash、Kibana ELK是ElasticSearch、Logstash、Kibana的简称。ELK在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择 立即下载

相关推荐

【随机过程】Markov Chain的定义及发展历程与实际应用

本模块书写的初衷:由于在学习张波张景肖等学者所著的《应用随机过程》存在着不甚了解的知识点,经过个人查找资料并整理、分享,希望能够为有同样疑惑的读者贡献绵薄之力,同时如果个人编写内容有错误,恳请读者指正。本文为对《应用随机过程》第42页中Markov Chain基本概念的补充。1.Markov Chain的定义俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。

qq_49657150的博客 3742

logstash 和 canal的区别,个人理解

    1、在传输上,两者都可以看做传输数据的管道,但logstash可以从数据库读取数据(例:MySql),传输到ES中,而canal能做到的不止这些,它可以把MySql的数据读取出来,配合java代码(貌似只支持java),将读取到的数据存储到任何代码能操作的地方,例如:文件、MySql、Redis、ES等等     2、在时效性上,logstash配置文件是使用定时器去同步数据,而canal...

一个千万开发人员中的程序员 7133

NPU、CPU和GPU

NPU、CPU和GPU是三种不同类型的处理器,它们各自有不同的设计特点和应用场景。NPU(Neural Processing Unit,神经网络处理单元)是一种专门为加速神经网络计算而设计的处理器。

m0_60697583的博客 1755

阿里云云服务器Kibana配置血泪史

阿里云云服务器Kibana配置血泪史 由于工作需要,需要学习ES以及Kibana的相关知识,本打算在自己的云服务器上配置试一下,没想到过程这么曲折。 相关环境参数如下 阿里云服务器:CentOS 7.7 64位 ES版本:7.7.1 所以需要下载对应版本的Kibana 第一步 基于视频教程逐步配置 基于如下视频ElasticSearch从入门到精通实战教程,初步完成了Kibana的相关配置,但是通过命令netstat -tunlp |grep 5601查看端口占用情况,没有发现Kibana服务启用,故放弃

a1720119024的博客 2635

STM32F030F4P6 ADC多通道定时器触发DMA搬运

主函数中等待转换完成的标志位,然后打印出来。ADC回调函数中将数值赋值给变量。配置定时器1s读一次。

qq_24426625的博客 1355

【测开求职】面试题:计算机网络 详细版整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。读者可以先查看上面的链接走一遍计算机网络的整体框架结构。其中,重点难点以及易混淆的知识点,笔者会用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 5936

elasticsearch-6.7.1和kibana-oss-6.7.1的Linux安装

1.elasticsearch-6.7.1和kibana-oss-6.7.1的Linux安装 1.、安装JDK8(Elastic 需要 Java 8 环境)   1)下载jdk8文件:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\   2)解压文件:tar -zxvf jdk-...

smileLs的博客 4374

硬件电路RS485通信EMC 设计

RS485通讯硬件设计与STM32实现要点 本文详细介绍了RS485通讯系统的硬件设计和STM32实现方案。硬件设计重点包括:采用总线型拓扑结构、120Ω终端电阻匹配、屏蔽双绞线布线、TVS管和自恢复保险丝保护等核心要素。EMC设计强调共模电感抑制干扰、屏蔽层单端接地、光电隔离等技术。软件实现方面,提供了基于STM32F103的完整程序框架,包括UART初始化、收发控制逻辑和中断处理机制,特别强调了收发切换时机、波特率精度等关键注意事项。文中还给出了工业传感器节点的实际应用案例,展示了一个完整的EMC防护电

qq_37999850的博客 1383

Elasticsearch 环境搭建

Elasticsearch 环境搭建 Elasticsearch 是基于lucene实现的搜索引擎,以restful接口和无模式json文档方式提供分布式、多租户全文检索引擎。本文简单介绍elasticsearch学习环境搭建,主要包括elasticsearch和kibana环境搭建,以及中文分词插件的安装。 安装elsticsearch 当前最新版本已经是7.2.0版本,本文采用7.1.1版本,...

neweastsun的专栏 1366

【用unity实现100个游戏之19】制作一个3D传送门游戏,实现类似鬼打墙,迷宫,镜子,任意门效果(附项目源码)

本文介绍了Unity中实现传送门效果的完整流程。通过第一人称角色控制器实现移动,使用PortalView脚本和自定义Unlit Shader渲染门内场景,巧妙利用相机位置和旋转同步实现动态视角。重点解决了近裁剪面问题,确保远距离渲染正确性。最后通过PortalTeleporter脚本实现传送功能,检测碰撞并计算相对位置进行瞬移。该方法无需复杂插件,代码简洁高效,适用于各类3D场景中的传送门实现。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

【推荐100个unity插件】unity易于使用模块化设计的天空、体积云和天气系统——Enviro 3

Enviro 3是一款功能强大的Unity天空与天气系统插件,提供动态天空、体积云、天气模拟等丰富功能。安装时需将预制体拖入场景并配置主相机,URP支持需激活深度纹理和添加渲染特性。模块化设计允许自由添加/移除时间、光照、雾效等模块,并通过API控制参数。推荐配合色调映射(如ACES模式)获得最佳视觉效果。插件支持季节、温湿度模拟及闪电风暴等特效,适用于需要逼真环境渲染的Unity项目。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2092

rsyslog+elk 网络设备日志收集及钉钉报警

目录 一.概要 二.实施 1.数据源 2.rsyslog 3.elasticsearch 4.logstash 5.kibana 三.日志展示 1.打开kibana页面 四·钉钉报警 1.elastalert 2.dingtalk 3.rule 4.报警脚本 5.报警测试 一.概要 二.实施 1.数据源 1.网络设备日志,可用模拟器如华为的ensp进行模......

机智的埃努 2624

为什么一个“时间片”能折腾 Linux 十年?

时间片扩展不是抢占调度器的控制权,也不是提升优先级。在“非常短暂、非常确定”的用户态临界区内,避免线程被不必要地抢占。用户态自旋锁(user-space spinlock)无系统调用的极短临界区高并发、低延迟的数据结构操作RSEQ(Restartable Sequences)保护区间一旦线程在临界区被抢占,系统整体性能反而下降。线程 A 拿着一个用户态锁线程 B 被调度上来,开始自旋等这个锁但 A 因为时间片用完,被调度器切走CPU 白白空转,所有线程都在浪费时间。

网络技术联盟站 253

用Kibana+Logstash+Elasticsearch快速搭建实时日志查询、收集与分析系统

搭建该平台的目的就是为了运维、研发很方便的进行日志的查询。Kibana一个免费的web壳;Logstash集成各种收集日志插件,还是一个比较优秀的正则切割日志工具;Elasticsearch一个开源的搜索引擎框架(支持群集架构方式)。 1 安装需求   1.1 理论拓扑   1.2 安装环境 先看看都需要安装什么软件包ruby 运行Kibana 必须,rubygem...

zhengun的专栏 342

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

用Kibana+Logstash+Elasticsearch快速搭建实时日志查询 收集与分析系统

用Kibana+Logstash+Elasticsearch快速搭建实时日志查询 收集与分析系统

ytfhjhv的博客 171

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

elasticsearch + logstash + kibana 搭建实时日志收集系统【原创】

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34319374的博客 106

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ELK日志分析系统叙述与部署,嘎嘎详细

ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、 Logstash 和Kibana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求是基于Lucene (- 一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志Elasticsearch是用Java 开发的,可通过RESTful Web接口,让用户可以通过浏览器与Elasticsearch 通信。...

weixin_61269220的博客 982

ELK+Kafka 企业日志收集平台(一)

背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项;所以最近将Redis换成了专业的消息信息发布订阅系统Kafka, Kafka的更多介绍大家可以看这里:传送门  ,关于ELK的知识网上有很多的哦, 此篇博客主要是总结一下目前线上这个平台的实施步骤,ELK是怎么跟K

gb4215287的博客 933

从零开始搭建一个ELK实时日志收集系统 - ELK5.1搭建过程(ElasticSearch, Logstash, Kibana)

前言 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志,这样是不是感觉很繁琐和效率低下?当务之急我们使用集中化的日志管理,例如:开...

Think Different 5637

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

原文:http://www.fx114.net/qa-108-256486.aspx 本篇文章主要介绍了"ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台",主要涉及到ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台方面的内容,对于ELK(ElasticSearch, Logstash, Ki...

dgqvhtlwq472235338的博客 99

elK学习资料

安装logstash,elasticsearch,kibana三件套 Elasticsearch中文指南elasticsearch中文指南.pdf htt文档 hElasticSearch实战-编码实践 hElasticSearch封装(创建索引,删除索引,创建Mapping,批量插入,批量删除,搜索)接口 http://用Kibana和l

哎幽的成长 2160
上一篇: 使用 Redis 实现分布式系统轻量级协调技术
下一篇: 一次「Too many open files」故障
笑天居士
博客等级 码龄24年 292粉丝 136原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值