一、简介
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的

2、组件作用
Logstash: logstash server端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用于查询和可视化日志;
3、ELK工作流程
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,然后通过logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
<ignore_js_op>

二、下载所需软件
wget http://download.oracle.com/otn-p ... 45-linux-x64.tar.gz

wget https://download.elastic.co/elas ... search-1.7.2.tar.gz

wget https://download.elastic.co/kiba ... .2-linux-x64.tar.gz

wget https://download.elastic.co/logs ... gstash-1.5.4.tar.gz

三、安装步骤
1、首先安装jdk
安装jdk-8u45-linux-x64
root身份登录系统 将jdk-8u45-linux-x64.tar.gz拷贝到/opt下面
cd /opt
tar zxvf jdk-8u45-linux-x64.tar.gz
        解压后 生成的文件名字叫做jdk-8u45
vim /etc/profile 
把如下代码放到文件的最后面
export JAVA_HOME=/opt/jdk-8u45
export JAVA_BIN=/opt/jdk-8u45/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JAVA_BIN PATH CLASSPATH
source /etc/profile
2、安装Logstash
tar –zxf logstash-1.5.2.tar.gz -C /usr/local/
安装完成后运行如下命令:
/usr/local/logstash-1.5.2/bin/logstash agent -f logstash-test1.conf
# /usr/local/logstash-1.5.2/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Logstash startup completed
this is test!
2015-07-15T03:28:56.938Z dell-09 this is test!

我们可以看到,我们输入什么内容logstash按照某种格式输出,其中-e参数参数允许Logstash直接通过命令行接受设置。这点尤其快速的帮助我们反复的测试配置是否正确而不用写配置文件。使用CTRL-C命令可以退出之前运行的Logstash。
使用-e参数在命令行中指定配置是很常用的方式,不过如果需要配置更多设置则需要很长的内容。这种情况,我们首先创建一个简单的配置文件,并且指定logstash使用这个配置文件。例如:在logstash安装目录(/usr/local/logstash-1.5.2)下创建一个“基本配置”测试文件logstash-test.conf,文件内容如下:
   
# cat logstash-test.conf
input { stdin { } }
output {
   stdout { codec=> rubydebug }
}
Logstash使用input和output定义收集日志时的输入和输出的相关配置,本例中input定义了一个叫"stdin"的input,output定义一个叫"stdout"的output。无论我们输入什么字符,Logstash都会按照某种格式来返回我们输入的字符,其中output被定义为"stdout"并使用了codec参数来指定logstash输出格式。

3、安装Elasticsearch
# tar -zxf elasticsearch-1.6.0.tar.gz -C /usr/local/
启动Elasticsearch两种方式:
# /usr/local/elasticsearch-1.6.0/bin/elasticsearch
# nohup /usr/local/elasticsearch-1.6.0/bin/elasticsearch >nohup &  后台启动

验证及确认elasticsearch的9200端口已监听,说明elasticsearch已成功运行
[root@dell-09 tmp]# ss -tunpl |grep 9200
tcp    LISTEN     0      50                    :::9200                 :::*      users:(("java",16633,99))

接下来我们在logstash安装目录下创建一个用于测试logstash使用elasticsearch作为logstash的后端的测试文件logstash-test.conf,该文件中定义了stdout和elasticsearch作为output,这样的“多重输出”即保证输出结果显示到屏幕上,同时也输出到elastisearch中。
cat logstash-test-simple.conf
input { stdin { } }
output {
   elasticsearch {host => "localhost" }
   stdout { codec=> rubydebug }
}
/usr/local/logstash-1.5.2/bin/logstash agent -f logstash-test-simple.conf 
Logstash startup completed
es logstash #手动添加
{
       "message" => "es logstash",
      "@version" => "1",
    "@timestamp" => "2016-12-06T01:58:49.672Z",
          "host" => "dell-09"
}

验证
使用curl命令发送请求来查看ES是否接收到了数据:
curl 'http://localhost:9200/_search?pretty'

<ignore_js_op> 
如果看到上图内容说明已经可以用Elasticsearch和Logstash来收集日志数据了。

4、安装elasticsearch插件
Elasticsearch-kopf插件可以查询Elasticsearch中的数据,安装elasticsearch-kopf,只要在你安装Elasticsearch的目录中执行以下命令即可:
# cd /usr/local/elasticsearch-1.7.2/bin
# ./plugin -install lmenezes/elasticsearch-kopf

访问kopf:
http://10.193.1.86:9200/_plugin/kopf/#!/nodes

5、安装Kibana
# tar -zxf kibana-4.1.1-linux-x64.tar.gz -C /usr/local/

启动kibana
# /usr/local/kibana-4.1.1-linux-x64/bin/kibana
使用[url=]http://localhost:5601访问Kibana,登录后,首先,配置一个索引,默认,Kibana的数据被指向Elasticsearch,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。然后点击discover[/url]

note:
碎碎念:

①单机的elk到这基本已经完成了,主要部署思路还是在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
②如果生产服务器过多,有很多日志处理的话建议用zookeeper+kafka+elk
……

elk单台环境搭建的更多相关文章

  1. 环境搭建-ELK单节点环境搭建(02)

    写在前面 常说:"工欲善其事必先利其器",这话想想也是一点毛病也没有,在开始学习任何技术之前,我们总得有一个实际可供操作的实验环境.有人说,"看十遍不如用一遍" ...

  2. ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...

  3. 《k8s-1.13版本源码分析》-测试环境搭建(k8s-1.13版本单节点环境搭建)

    本文原始地址(gitbook格式):https://farmer-hutao.github.io/k8s-source-code-analysis/prepare/debug-environment. ...

  4. kubernetes 单节点和多节点环境搭建

    kubernetes单节点环境搭建: 1.在VMWare Workstation中建立一个centos 7虚拟机.虚拟机的配置尽量调大一些 2.操作系统安装完成后,关闭centos 自带的防火墙服务 ...

  5. ELK(elasticsearch+kibana+logstash)搜索引擎(一): 环境搭建

    1.ELK简介 这里简单介绍一下elk架构中的各个组件,关于elk的详细介绍的请自行百度 Elasticsearch是个开源分布式搜索引擎,是整个ELK架构的核心 Logstash可以对数据进行收集. ...

  6. 【Vue3+Express实战】项目开发环境搭建

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  7. Hadoop 2.2.0单节点的伪分布集成环境搭建

    Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federatio ...

  8. 【ELK Stack】ELK+KafKa开发集群环境搭建

    部署视图 运行环境 CentOS 6.7 x64 (2核4G,硬盘100G) 需要的安装包 Runtime jdk1.8 : jdk-8u91-linux-x64.gz (http://www.ora ...

  9. 单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows)

    1 单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows) http://blog.21ic.com/user1/3128/archives/2010/73447.html   单 ...

随机推荐

  1. MongoDB数据直接转移

    本方法较为暴力,有待验证,重要资料切勿使用.... 1.把一台电脑上MongoDB的--dbpath 下的文件夹  直接复制过来,放在新设备上 2.写个可爱的批处理文件 其实,就是改了个--dbpat ...

  2. lua:值得看的博客资源 ...

    凯奥斯 :https://blog.csdn.net/ecidevilin/article/category/6454847 https://blog.csdn.net/qinyuanpei/arti ...

  3. Git项目协同开发学习笔记1:项目库开发基础git命令

    这年头git基本都是项目开发的标配,之前刚好碰到了就花了两天时间系统学习了下.本文内容基本来自以下tutorial:Learn Git(建议直接去看原文,因为这个网站是有更新的).这个是我看过对git ...

  4. PyCharm搭建pyqt5开发环境

    PyCharm搭建PyQt5开发环境 1.安装PyQt5 2.PyCharm环境配置 2.1 添加QtDesigner 2.2 添加PyUIC 2.3 添加Pyrcc 2.4 添加assistant ...

  5. jar包的启动和停止脚本

    启动: #!/bin/sh PIDFILE="/app/eureka/eureka.pid" LOGFILE="/app/eureka/out.log" if ...

  6. 配置ORACLE 11g绿色版客户端和PLSQL远程连接环境

    配置ORACLE 11g绿色版客户端和PLSQL环境   本方法是通过使用ORACLE官方提供的精简版客户端,即绿色免安装的客户端.   Instant client的版本很多:主要是Basic和Ba ...

  7. Tomcat------如何配置域名和80端口

    1.打开Tomcat的默认安装路径下的Service.xml文件 路径:C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\Serv ...

  8. switch和continue的关系

    突然想到 我们用 switch都是用 break return等关键字来配合,有没有一种情况下是用continue呢?而且如果真的出现了continue,结果是什么样的呢?

  9. ASPX代码加固小结

    1.replace替换 <%@Page Language="C#"%> <% string strID=Request["id"]; strI ...

  10. Ora2Pg的安装和使用

    1. 安装DBI,DBD::Oracle DBI只是个抽象层,要实现支持不同的数据库,则需要在DBI之下,编写针对不同数据库的驱动.对MySql来说,有DBD::Mysql, 而对ORACLE来说,则 ...