ELK简介及其配置和常规用法

0、前提

Java环境

注:运行ELK需要有对应的java环境,此处要注意的时候如果ELK的版本不是很高,那么jdk的版本也不宜过高

 

1、ELK简介

       ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

(1)Elasticsearch

       是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

(2)Logstash

       是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

logstash架构:

  • input:设置数据来源。
  • filter:可以对数据进行一定的加工处理过滤,可以做复杂的处理逻辑。这个步骤不是必须的。
  • output:设置输出目标,如elasticSearch等。

(3)Kibana

是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据

 

2、下载并解压ELK

curl -O https://artifacts.elastic.co/downloads/logstash/logstash-5.4.3.tar.gz

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.3.tar.gz

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-5.4.3-linux-x86_64.tar.gz

下载解压缩,如tar -zxvf kibana-5.4.3-linux-x86_64.tar.gz

 

3、配置文件

(1)Elasticsearch

       在解压出来的文件夹的elasticsearch-5.4.3/config修改elasticsearch.yml文件,在Network中添加:

network.host: 0.0.0.0  ##允许外部主机访问

(2)Logstash

logstash.yml:主配置文件(有些版本为simple.conf)

input{
    file{
        path => "/home/wzh/Docker/MediaServer/convertServer/release/linux/Debug/log/*.log"
        type => "myLog"
        codec => multiline{
            pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}.\d{3}"
            what => "previous"
            negate => true
        }
        start_position => "beginning"
        sincedb_path => "/dev/null"
        }
}

filter{
    grok{
        match => {"message" => "%{TIMESTAMP_ISO8601:logdate}"}
        add_field => ["SrcIP", "192.168.152.128"]
    }
    date{
        match => ["logdate" , "yyyy-MM-dd HH:mm:ss.SSS", "ISO8601"]
        target => "@timestamp"
    }
}

output{
    elasticsearch{
        hosts => ["localhost:9200"]
        index => "logstash-%{+YYYY-MM-dd}"
    }
}

jvm.options:关于jvm的配置,可配置运行时内存的最大最小值,垃圾清理机制等。

startup.options:logstash运行相关的参数

(3)Kibana

 

4、常用命令

(1)elasticsearch

./elasticsearch					// 临时启动
./elasticsearch					// 守护进程
nohup ./elasticsearch & exit	    // 守护进程
curl 'localhost:9200/'			// 查看elasticsearch是否开启

curl -XGET http://localhost:9200/_cat/indices?v      // 查看elasticsearch全部索引

(2)logstash

./logstash -f ../config/logstash.yml					// 临时启动并加载配置文件
nohup ./logstash -f ../config/logstash.yml & exit		// 守护进程

(3)kibana

./kibana						// 临时启动
nohup ./kibana & exit			// 守护进程

 

5、kibana使用

(1)匹配索引

       我们在正式使用Kibana之前,需要先匹配我们Elasticsearch中的索引库,因为我们的Elasticsearch有可能会有很多索引库,Kibana为了性能因素,是不会事先把所有的索引库都导进来的,我们需要用那个索引就导哪个索引。

       按照如下步骤操作:Management >> Index Patterns >> Create Index Patterns 然后我们可以看到如下界面:

       在index pattern输入框中输入索引库,可以使用模糊查询的方式匹配。注意此索引和logstash中的配置文件设置有关系,如果配置文件没写好则有可能搜索不出索引。如配置文件里“index => "logstash-%{+YYYY-MM-dd}”则kibana输入:“lostash-*”即可创建对应索引。

(2)查看日志

       在左上角选择服务,右上角中选择日期即可查看对应日期的日志。点击小三角即可展开对应信息,里面包含具体的日志信息。

 

猜你喜欢

转载自blog.csdn.net/King_weng/article/details/106506738