ELK Stack系列软件安装和配置

最近在部署和使用ELK Stack系列软件,以下是部署安装具体步骤。

官网下载页:https://www.elastic.co/downloads

PS:所有安装路径不要存在空格等非法字符,要不,后面会报各种错误。


一、ElasticSearch

      官网下载elasticsearch-6.2.3,解压

      ES运行基于JVM,需要JAVA支持:JDK:Java version 1.8.0_131 or a later version,本人下载安装了1.8.0.161,安装指南,建议JDK的安装路径不要有空格等其他字符,以免后面遇到问题(本人就在后面的Logstash安装中,因为JDK路径问题而麻烦)。把.\elasticsearch-6.2.3\bin添加环境变量PATH。

     启动测试:CMD:elasticsearch 或者 进入elasticsearch\bin,打开elasticsearch.bat,访问:http://localhost:9200/,看到json信息即启动成功。

     为了能够在外面通过完整URL访问,需要设置:\elasticsearch-6.2.3\configelasticsearch.yml, #network.host: 0.0.0.0即可。

必要环境:NODE.JS安装 ——安装head插件和kopf插件需要安装node.js环境

     安装NODE.JS:node-v8.10.0-x64
     设置环境变量到PATH
    测试是否安装成功:node --version
    grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.0里的head插件就是通过grunt启动的。因此     需要安装grunt    
    运行head需要借助grunt命令,所以需要grunt命令,进入nodejs目录下,执行命令:npm install -g grunt-cli,将grunt安装为全局命令

    检测是否安装成功 : grunt -version

    ES的插件:

1.1  安装head插件
    elasticsearch5.0以下版本可以直接在elasticsearch目录下执行对应的命令安装head插件,但是5.0以上不支持直接安装,所以需要借助其他方法安装head插件
    下载elasticsearch-head-master,https://github.com/mobz/elasticsearch-head
    安装:head目录下执行命令:npm install。若出现error错误,可尝试以管理员身份运行cmd,重新执行此命令,期间下载pathomjs可能时间比较长,需要耐心等待。
    cd到head目录下,运行grunt server命令,启动head——前提条件是要在NODE中安装grunt全局命令
    修改elasticsearch配置文件:elasticsearch.yml,增加以下两句命令:
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    启动elasticsearch.bat,cd到head目录下,运行grunt server命令,启动head访问http://localhost:9100/,即可看到head

1.2  安装elasticsearch-kopf-master插件
    下载 https://github.com/lmenezes/elasticsearch-kopf
    Kopf是一个ElasticSearch的管理工具,它也提供了对ES集群操作的API 
    下载,解压,cmd到它的目录运行命令:npm install(若失败,多运行几次)
    cd到kopt目录下,运行grunt server命令,启动kopf访问——安装不成功,暂时不知道怎么回事
    访问:http://localhost:9000/_site 

1.3 安装bigdesk-master插件

        https://github.com/hlstudio/bigdesk

        直接下载,解压, 发布于Apache HTTP
        访问:http://localhost:8088/bigdesk-master/_site/index.html#nodes

二、kibana:
    下载:https://www.elastic.co/downloads
    解压,配置kibana.yml:elasticsearch.url: "http://localhost:9200"(去掉#即可)
    启动./bin/kibana.bat
    访问:http://localhost:5601

    为了能够在外面通过完整URL访问,需要设置:kibana.yml:#server.host: "0.0.0.0"即可

其他插件:

2.1  安装sense
    安装指南:https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/running-elasticsearch.html
    Sense 是一个 Kibana 应用 它提供交互式的控制台,通过你的浏览器直接向 Elasticsearch 提交请求。 
    Windows上面执行: bin\kibana.bat plugin -- install elastic/sense
    或者bin>kibana-plugin.bat install elastic/sense    ——安装不成功,应该是在线下载不到这个软件了

最新的Kibana已经不需要sense,已经集成了Dev Tools

2.2   安装CURL:curl_7_53_1_openssl_nghttp2_x64
    直接解压使用,添加环境变量PATH

    直接使用Kibana中的Dev Tools工具,就不需要cURL了。


三、Logstash安装

       下载:https://www.elastic.co/cn/downloads/logstash

    由于JAVA_HOME路径中有空格,需要修改一下logstash.bat文件,导航到52行,把%CLASSPATH%修改     为"%CLASSPATH%"。这个问题,这个博客解释得比较清楚:https://www.cnblogs.com/sbj-dawn/p/8549369.html

    Inputs,Outputs,Codecs,Filters构成了Logstash的核心配置项。

    新建std.conf文件,放到logstash\bin\conf(新建conf文件夹)目录下,std.conf文件添加以下内容:

input { 

    stdin { } 

}

output {

     stdout { }

}

input是指数据来源地,stdin{}指从键盘输入;

output 是指数据目的地,stdout{}指输入到屏幕。


cmd:bin/logstash -f conf\std.conf  启动logstash,在CMD中输入,回车,可以看到输入到屏幕的信息。

如果设置多个配置文件.conf,把它们放到一个文件夹里面,启动的时候指到这个文件夹,logstash启动的时候都会把它们编译成一个文件,并且只有一个pipeline运行。


将oracle安装目录下的ojdbc7.jar拷贝到logstash-6.2.3/lib目录下(此包是同步oracle数据库的驱动程序)
以下是我连接oracle的配置文件logstash_jdbc_oracle.conf,配置文件也放到logstash-6.2.3/lib目录下
input{
stdin{}
jdbc{
jdbc_connection_string => "jdbc:oracle:thin:@//192.168.1.100:1521/GZGA_GIS"
jdbc_user => "JC_G"
jdbc_password => "password"
jdbc_driver_library => "E:\mysever\ES\logstash-6.2.3\bin\ojdbc7.jar"
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
record_last_run => "true"
use_column_value => "false"
tracking_column => "systemid"
clean_run => "false"
 
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement =>"select * from _G.G.ZJD"
schedule => "* * * * *"
}
}

output{
elasticsearch{
hosts => "localhost:9200"
index => "ts001"
document_id => "%{systemid}"

}

        stdout{

                codec =>"json_lines"

        }

}

可以直接写sql表达语句,也可以创建sql脚本对应配置脚本中的statement_filepath:jdbc_oracle.sql,脚本中写sql语句即可
在logstash/bin下启动程序: ./logstash -f logstash_jdbc_oracle.conf,

使用kibana查看数据已经同步成功:在Dev Tools 的console下面:GET ts001/_search  可以看到同步过来的数据。


总结:

    logstash是一个数据分析软件,主要目的是分析log日志。整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。

      将数据传给logstash,它将数据进行过滤和格式化(转成JSON格式),然后传给Elasticsearch进行存储、建搜索的索引,kibana提供前端的页面再进行搜索和图表可视化,它是调用Elasticsearch的接口返回的数据进行可视化。logstash和Elasticsearch是用Java写的,kibana使用node.js框架。



猜你喜欢

转载自blog.csdn.net/aganliang/article/details/79920092