friht 发表于 2019-1-28 10:53:32

ELK 日志分析系统详解

  大纲:
  一、简介(引用http://467754239.blog.运维网.com)
  二、Logstash
  三、Elasticsearch
  四、Kinaba
  五、Redis+logback
  

  

  一、简介
  1、核心组成
  ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
  Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
  kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
  2、四大组件

  Logstash: logstash server端用来搜集日志;
  Elasticsearch: 存储各类日志;
  Kibana: web化接口用作查寻和可视化日志;
  Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
  3、ELK工作流程

  在需要收集日志的所有服务上部署logstash,作为logstashagent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash
indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana
来结合自定义搜索进行页面展示。
http://s3.运维网.com/wyfs02/M01/74/25/wKioL1YWGBnxpAwyAAGFWRpT6X8070.jpg
  4、ELK的帮助手册

  ELK官网:https://www.elastic.co/
  ELK官网文档:https://www.elastic.co/guide/index.html
  ELK中文手册:http://kibana.logstash.es/content/elasticsearch/monitor/logging.html
  

  注释
  ELK有两种安装方式
  (1)集成环境:Logstash有一个集成包,里面包括了其全套的三个组件;也就是安装一个集成包。
  (2)独立环境:三个组件分别单独安装、运行、各司其职。(比较常用)
  本实验也以第二种方式独立环境来进行演示;单机版主机地址为:192.168.1.104
  

  二、Logstash
  1、安装JDK(略)

  logstash的运行依赖于JDK
  

  2、安装logstash
  wget https://download.elastic.co/logstash/logstash/logstash-2.0.0.tar.gz(请选择正确版本,小心和Elasticsearch冲突)
  2.1普通方式启动

  启动:logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
my name is zhengyansheng.    //手动输入后回车,等待10秒后会有返回结果
Logstash startup completed
2015-10-08T13:55:50.660Z 0.0.0.0 my name is zhengyansheng.
  这种输出是直接原封不动的返回...
  

  2.2通过配置文件启动
  
  配置文件信息logstash.conf :
  input {
  #读取配置文件的方式
  file {
      path => "/usr/java/apache-tomcat-8.0.39/logs/catalina.2017-04-24.log"
    codec => json {
            charset => "UTF-8"
      }
    }
#从Redis读取
  redis {
      data_type => "pattern_channel"
      key => "logstash-*"
      host => "192.168.1.134"
      port => 6379
      threads => 5
    }
}
output {
  #输出到控制台

  stdout { codec => rubydebug }
  #输出到elasticsearch
  elasticsearch {
   hosts => "192.168.1.134:9200"
   }
}
  启动:./logstash -f ../conf/logstash.conf
  PS:配置文件必须是ANSI格式
  

  

  三、Elasticsearch
  3.1安装Elasticsearch
  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-2.3.5.tar.gz

  tar -xvf elasticsearch-2.3.5.tar.gz
  

  3.2修改elasticsearch.yml配置文件
  vi elasticsearch.yml
  #把这几个解开
cluster.name: my-application
node.name: node-1
path.data: /path/to/data
network.host: 0.0.0.0
http.port: 9200
如果要外网访问network.host必须改成0.0.0.0
  

  3.3启动Elasticsearch
  启动Elasticsearch不能以root运行,需新建个用户进行运行
  创建用户组已经用户
  
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch  更改权限
  
chown -R elsearch:elsearchelasticsearch
elasticsearch为你elasticsearch的目录名称切换用户  
su elsearch #切换账户
cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录
./elasticsearch  在地址栏输入:http://192.168.1.134/9200 出现以下信息表示启动成功
{
"name" : "node-1",
"cluster_name" : "my-application",
"version" : {
    "number" : "2.3.5",
    "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
    "build_timestamp" : "2016-07-27T10:36:52Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}  

  3.4安装head插件
  bin ./plugin install mobz/elasticsearch-head
  访问插件:http://192.168.1.134:9200/_plugin/head/
  

  

  四、kibana

  4.1安装kibana
  wget https://download.elastic.co/kibana/kibana/kibana-4.3.3-linux-x64.tar.gz

  tar -xvf kibana-4.3.3-linux-x64.tar.gz
  config下的kibana.yml可以修改服务端口以及es相关配置,我用的默认配置

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

  

  4.2启动kibana
  ./kibana
  访问浏览器:http://192.168.1.134:5601/

  如果出现以下页面,表示启动成功
  http://s3.运维网.com/wyfs02/M02/74/25/wKioL1YWFTbx56DuAAOecFQkxcA301.jpg
  

  五、Redis+Logback
  5.1通过logback输出日志到Redis,logback从Redis中收集日志
  logback配置文件:
  


    logstashdemo
    dev
    120.27.15.7
    6379
    logstash
    dev
    true
    true
    0
  

  



  

  新人第一次写博客,请各位大神多多指教,有问题指出来

  




页: [1]
查看完整版本: ELK 日志分析系统详解