ELK环境搭建(elasticsearch,logstash,kibana)

一   ELK是什么?

          在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4j就够了,随着应用的越来越多,日志散落在各个服务器的logs文件夹下,确实有点不大方便。

当我们需要日志分析的时候你大概会这么做:直接在日志文件中 grep、awk 就可以获得自己想要的信息。

那你们想过这种方式的问题吗?

1.日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询

2.应用太多,面临数十上百台应用时你该怎么办

3.随意登录服务器查询log对系统的稳定性及安全性肯定有影响

4.如果使用人员对Linux不太熟练那面对庞大的日志简直要命。

ELK因此就应运而生,那么为什么要用ELK呢?ELK又能给我们解决哪些问题呢?

1.日志统一收集,管理,访问。查找问题方便安全:收集放到搜索引擎中。也就就是ELK中的E表示es:分布式搜索引擎存储库。是一个Nosql。其核心是倒排索引库。可存TB级的数据。

2.使用简单,可以大大提高定位问题的效率:一个页面搞定所有查询。K:kibana。

3.可以对收集起来的log进行分析。L:Logstash,就是用收集日志。会部署到应用服务器上面。还可以提供过滤功能。

4.能够提供错误报告,监控机制。

 

  二   ELK架构设计

 

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件

 

1. LogStash

     它可以流放到各自的服务器上收集Log日志,通过内置的ElasticSearch插件解析后输出到ES中

 

2.ElasticSearch

   这是一个基于Lucene的分布式全文搜索框架,可以对logs进行分布式存储,有点像hdfs。此为ELK的核心组件,日志的分析以及存储全部由es完成,因此在后面的课程中我们还会对此进行重点讲解。

 

3. Kibana:论坛。大屏展示

   它可以多维度的展示es中的数据。可提供图表展示,造出一些非常炫酷的页面。这也解决了用mysql存储带来了难以可视化的问题。他提供了丰富的UI组件,简化了使用难度,数据在es中的展示是比较让人蛋疼的,后面再讲es的时候让大家看看。

 

目前ELK主要有两种框架:

1.普通框架:这一套框架不会影响生成应用。唯一形象的就是logstash会耗一点系统资源。

https://images2018.cnblogs.com/blog/830693/201805/830693-20180507233846281-213246344.png

 

 

三.  ELK环境搭建

 1.https://www.elastic.co/cn/downloads

 2.版本:elasticsearch 2.4.6, lucene版本. 5.x。 6. 7

 3.elasticsearch 2.4.6 安装

  1.https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.6/elasticsearch2.4.6.tar.gz

2. tar -zxvf   elasticsearch2.4.6.tar.gz

3.cd  /usr/local/app/elk/elasticsearch-2.4.6/config

4.修改elasticsearch配置文件

cluster.name: my.elk    #集群名称,如果有多个集群,那么每个集群名就得是唯一的    
node.name: node-192.168.0.8        #节点名称
node.master: true        #该节点是否是master,true表示是的,false表示否,默认是true
node.data: true            #该节点是否存储数据,默认true表示是的
http.port: 9200            #http访问端口,默认是9200,通过这个端口,调用方可以索引查询请求
transport.tcp.port: 9300    #节点之间通信的端口,默认为9300
network.host: 0.0.0.0        #访问地址 配置外网访问
#discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:8300"]
#node.max_local_storage_nodes: 2        #设置一台机子能运行的节点数目,一般采用默认的1即可,因为我们一般也只在一台机子上部署一个节点

5.启动   ./bin/elasticsearch (前台启动)   启动后界面注意看到lucene版本

  后台启动   nohup ./bin/elasticsearch >log/elasticsearch.log &

6.安装 head插件   ./bin/plugin install mobz/elasticsearch-head

7.安装后访问  http://172.30.30.166:9200/_plugin/head/

 

4.logstash安装(注意这个只能收集本机日志,不能收集其他机器)

1.wget -c  https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz

2.tar -zxvf logstash-2.4.0.tar.gz 

3.创建  logstash.confi配置文件

 input {        //收集标志
        file {
                type => "log" 
                path => ["/export/home/tomcat/domains/*/*/logs/*.log"]    //收集日志的地方,注意不能远程收取
                start_position => "end"        //如果log文件已经很大了 不要配start,第二次会有记录
            ignore_older => 0        //忽略最后修改时间是大于多少s的
            codec=> multiline {        //重点注意 解决日志换行问题。
                        pattern => "^%{TIMESTAMP_ISO8601}"
                        negate => true
                        what => "previous"
                }
        }
        beats {
            port => 5044
        }
}
output {
        if [type] == "log" {
        elasticsearch {
            hosts => ["http://127.0.0.1:9200"]
            index => "log-%{+YYYY.MM}"        //表示的是索引库 按日期分
            user => user        //如果配置了nginx密码的则需要填写
            password => pwd
        }    
    }
}

4.启动 logstash.conf    ./bin/logstash -f ./conf/logstash.conf

 后台启动:nohup ./bin/logstash -f config/log.conf > log.log &

注意:配置文件的注释是需要删除的,不然启动会报错

5.配置kibana    

1.wget   https://download.elastic.co/kibana/kibana/kibana-4.6.1-linux-x86_64.tar.gz

2.tar -zxvf kibana/kibana/kibana-4.6.1-linux-x86_64.tar.gz

3.修改配置文件  kibana.yml   主要修改 elasticsearch的地址

3.启动   ./bin/kibana

后台启动:nohup ./bin/kibana > log/kibana.log &

注意:该地方需要跟  elasticsearch配置的index要对应上;

注意这个收集是从日志末尾来收集的,所以一定需要用日志追加才能看得到

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值