• 1.elk平台介绍
  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
  • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。因为kibana需要node.js的支持,麻烦所以本文暂时不介绍其使用,有兴趣可以自己去搭建一个。

  2.ELK平台搭建

    系统环境:window7 ,jdk1.7 ,logstash 2.3.4,es 2.3.5 

    备注:logstash要求jdk1.7以上。

  2.1 es搭建

    2.1.1 es下载地址:https://www.elastic.co/downloads/ 选中自己的版本,我选择的是window版本的

    2.1.2 解压压文件:elasticsearch-2.3.5

    2.1.3 安装插件:Head

      >cd d:/elasticsearch-2.3.5/bin

      >d:

      >plugin install mobz/elasticsearch-head

      进入到/elasticsearch-2.3.5/plugin有一个head的目录结构,正面已经安装完成。

    2.1.4 配置文件

      d:/elasticsearch-2.3.5/config/elasticsearch.yml

      修改配置文件: 

cluster.name=es_cluster  ####集群名称

###### 节点名称    
node.name=node0
###### 数据存储路径
path.data=/elasticsearch/data
###### 日志文件存储路径
path.logs=/elasticsearch/logs #当前hostname或IP,我这里是
network.host=127.0.0.1
# 端口
network.port=9200

    2.1.5 启动es:

      >cd d:/elasticsearch-2.3.5/bin

      >d:

      >elasticsearch

      访问:127.0.0.1:9200 出现下图,正面已经配置成功

      

  2.2 logstash搭建

    logstash是一个日志收集器,主要三部分组成,input,filter,output.本介绍中,我们的input是log4j日志文件,而output是通过es来存储输出文件。

    2.2.1. 下载地址见2.1.1

    2.2.2. 加压logstash-2.3.4

    2.2.3. 配置文件修改

      >cd d:/logstash-2.3.4/bin ###添加配置文件config/log4j.conf

a> 通过log4j发送日志方式
input {
log4j {
mode => "server"
host => "127.0.0.1"
port =>
}
}
filter {
#Only matched data are send to output.
}
output {
# For detail config for elasticsearch as output,
# See: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
elasticsearch {
action => "index" #The operation on ES
hosts => "127.0.0.1:9200" #ElasticSearch host, can be array.
index => "AppLog" #The index to write data to.
}
} b>通过file文件方式发送

  input {
    file {
      path => "D:/data/file.txt"
      start_position => beginning
      ignore_older => 0
    }
  }

c>mq方式发送日志
   zeromq {
      address => ["tcp://127.0.0.1:8889"]
     mode => "client"
      type => "zmq-input"
      topic => "weblog"
      topology => "pubsub"
  codec => "json"
    }
  } d>jdbc发送日志
  安装插件:/plugin install logstash-input-jdbc
  input {
    jdbc {
      # mysql jdbc connection string to our backup databse 后面的test对应mysql中的test数据库
      jdbc_connection_string => "jdbc:mysql://192.168.1.1:3306/test"
      
      # the user we wish to excute our statement as
      jdbc_user => "root"
      jdbc_password => "******"
      
      # the path to our downloaded jdbc driver
      jdbc_driver_library => "/elasticsearch-jdbc-2.3.2.0/lib/mysql-connector-java-5.1.38.jar"
      
      # the name of the driver class for
      mysql jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"       #以下对应着要执行的sql的绝对路径。
      statement_filepath => "/usr/local/logstash/bin/logstash_jdbc_test/jdbc.sql"
      
      #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)
      schedule => "* * * * *"       #设定ES索引类型
      type => "cc_type"
    } }
  
  e>redis插件使用
  input {
    redis {
      batch_count => 1
      
      #返回的事件数量,此属性仅在list模式下起作用。
      data_type => "list"
      
      #logstash redis插件工作方式
      key => "logstash-test-list" #监听的键值
      host => "127.0.0.1"  #redis地址
      port => 6379 #redis端口号  
      password => "123qwe" #如果有安全认证,此项为密码
      db => 0 #redis数据库的编号
      threads => 1 #启用线程数量
    } }

 

    2.3.4. 启动

      logstash两种启动方式,1.logstash -e "" 2.logstash -f [配置文件]基于配置文件启动方式

      >logstash -f config/log4j.conf   

      

  2.3 log4j配置:不多介绍

log4j.logger.com.demo.elk=DEBUG, socket

# appender socket
log4j.appender.socket=org.apache.log4j.net.SocketAppender
log4j.appender.socket.Port=4567 #logstash input参数与此端口保持一致
log4j.appender.socket.RemoteHost=127.0.0.1 
log4j.appender.socket.layout=org.apache.log4j.PatternLayout
log4j.appender.socket.layout.ConversionPattern=%d [%-5p] [%l] %m%n
log4j.appender.socket.ReconnectionDelay=10000

 

  

  2.4 es java api简单使用

    2.4.1. pom依赖

    

<!-- es -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.5</version>
</dependency>

    2.4.2. java代码

    

public static void main(String[] args) throws Exception {
// applog-对应配置中的index types是类型 size是返回的数据总数 默认不设置时为10条数据
SearchRequestBuilder search = client.prepareSearch("AppLog").setTypes("logs").setSize(100);
showResult(search); client.close();
} /***
*获取search请求的结果,并输出打印结果信息
* @param search
* @throws Exception
*/
public static void showResult(SearchRequestBuilder search) throws Exception {
SearchResponse r = search.get();// 得到查询结果
for (SearchHit hits : r.getHits()) {
String data=hits.getSource().get("message").toString();
//if(data.startsWith("{")){
System.out.println(data);
//}
}
long hits = r.getHits().getTotalHits();// 读取命中数量
System.out.println(hits);
}

ELK(ElasticSearch, Logstash, Log4j)系统日志搭建的更多相关文章

  1. 键盘侠Linux干货| ELK(Elasticsearch + Logstash + Kibana) 搭建教程

    前言 Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,分析网站的访问情况时我们一般会借助 Google / 百度 / CNZZ 等方式嵌入 JS ...

  2. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

  3. 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)

    前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...

  4. ELk(Elasticsearch, Logstash, Kibana)的安装配置

    目录 ELk(Elasticsearch, Logstash, Kibana)的安装配置 1. Elasticsearch的安装-官网 2. Kibana的安装配置-官网 3. Logstash的安装 ...

  5. CentOS 6.x ELK(Elasticsearch+Logstash+Kibana)

    CentOS 6.x ELK(Elasticsearch+Logstash+Kibana) 前言 Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案, ...

  6. 【转】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    [转自]https://my.oschina.net/itblog/blog/547250 摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticS ...

  7. 【Big Data - ELK】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticSearch,一款基于Apache Lucene的开源分布式搜索引擎)中便于查找和分析,在研究 ...

  8. ELK(elasticsearch+logstash+kibana)入门到熟练-从0开始搭建日志分析系统教程

    #此文篇幅较长,涵盖了elk从搭建到运行的知识,看此文档,你需要会点linux,还要看得懂点正则表达式,还有一个聪明的大脑,如果你没有漏掉步骤的话,还搭建不起来elk,你来打我. ELK使用elast ...

  9. ELK日志系统:Elasticsearch+Logstash+Kibana+Filebeat搭建教程

    ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 系统架构 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.orac ...

随机推荐

  1. Android 屏幕适配方式

    适配:即当前应用在相同的手机上面显示相同的效果.适配前需要首先确定当前手机所属像素密度类型(如:xhdpi.hdpi.mdpi等) 像素密度:每英寸上分布的像素点个数,单位(dpi,ppi),利用勾股 ...

  2. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(四)

    通过前面的操作,我们已经可以创建一个带有我们自己的PCI的watchdog外设qemu 虚拟机了. 目的: 1. 了解我们的外设情况. 2. 为在guest中开发我们自己的linux PCI驱动程序做 ...

  3. c# 搭建服务端 常用的Helper(5)

    常用的Helper 1.byteHelper :对象与byte[]之间的转换 2.ConvertJson:操作json对象 3.EncodingHelper:对象编码 4.ModelConvertHe ...

  4. 像web一样使用python

    使用传统的web开发技术,也就是html+js,然后搭配一个后端语言,已经成为当今web开发的固定模式了,为此也形成了众多的toolkit,譬如ror,django,各种js图形库更是玲琅满目,从非常 ...

  5. hadoop技术基本架构

    一.Hadoop概述 hadoop由两部分组成.各自是分布式文件系统和分布式计算框架MapReduce.当中.分布式文件系统主要用于大规模数据的分布式存储.而MapReduce 则构建在分布式文件系 ...

  6. NPOI 辅助类

    using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using S ...

  7. 如何在MFC对话框之间自定义消息传递

    在MFC项目开发中,涉及到不同模块间数据信息的传递,如用户在登录界面成功登录后向系统管理模块发送用户名和密码等信息. 首先,需明确以下两点: 谁要发送这个消息--消息发送方 谁要接受这个消息--消息接 ...

  8. .net 资源

    基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.net和C#.net通用权限系统组件功能教程 http://down.51cto.com/zt/1 ...

  9. IOS开发之Cocoa编程—— NSUndoManager

    在Cocoa中使用NSUndoManager可以很方便的完成撤销操作.NSUndoManager会记录下修改.撤销操作的消息.这个机制使用两个NSInvocation对象栈. NSInvocation ...

  10. ThinPHP第二十八天(F函数和file_put_contents区别|PHP生成PHP文件,Kindeditor编辑器使用方法)

    1.F(name,data,path)函数和file_put_contents(file,str)区别 F函数直接生成<?php ?>格式的php文件了,将data加入到<?php和 ...