文档章节

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

o
 osc_gu9d45li
发布于 2019/04/09 22:23
字数 1053
阅读 145
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

1.ELK简介

 

  这里简单介绍一下elk架构中的各个组件,关于elk的详细介绍的请自行百度

  • Elasticsearch是个开源分布式搜索引擎,是整个ELK架构的核心

  • Logstash可以对数据进行收集、过滤,存储到ELasticsearch中

  • Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志

  

  下面是各个组件在架构中起到的作用

 

 2.组件下载

elasticsearch对版本极其敏感,所以一定要注意elk所有组件务必保持版本一致!

elk组件下载地址》》https://www.elastic.co/cn/downloads/

 

3.elasticsearch配置

如果是本机使用elasticsearch基本上解压即用,只需要注意将elasticsearch配置成外网可访问,方法如下:

修改elasticsearch/config目录下的elasticsearch.yml文件

network.host: 0.0.0.0

将network.host设置为0.0.0.0即可开启外网访问,elasticsearch默认端口9200如果需要修改还是在elasticsearch.yml文件中

http.port: 9200

elasticsearch设置数据存储路径以及目录存储路径

path.data: /path/to/data
path.logs: /path/to/logs

启动方式:

  windows下双击elasticsearch.bat启动

  linux下执行elasticsearch启动 -d为后台启动

4.logstash配置

整个elk架构中logstash需要配置的地方最多,首先logstash起到的作用是收集数据导入至elasticsearch中,收集的方法有很多中,关系型数据库,非关系型数据库亦或者文件这里主要讲一下关系型数据库的导入

先贴出笔者的配置文件

input {
    jdbc {
     #设置数据库url jdbc_connection_string => "jdbc:mysql://localhost:3306/elk" #账号与密码
     jdbc_user => "root" jdbc_password => "root" #对应数据库的jar包位置以及jdbc类型
     jdbc_driver_library => "/root/mysql-connector-java-5.1.46.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" #每次启动logstash是否重新加载数据
     clean_run => false #编码格式
     codec => plain { charset => "UTF-8"} #是否使用user_column_value 记录每次查询的值,这个必须为递增的值,在sql中可以使用:sql_last_value取出该值,如果不设置即默认该值为上次执行sql的时间
     use_column_value => false
     #sql语句位置 statement_filepath => "/root/product_list.sql" #记录上一次执行时间的文件位置
     last_run_metadata_path => "/root/product_last_run_time.txt" #使用corn表达式定义执行周期
     schedule => "*/30 * * * * *"
     #多个配置文件时定义该次查询集的名字,方便output、filter进行逻辑处理 type => "test"
  #时区 jdbc_default_timezone => "Asia/Shanghai" } } output {
#使用if判断type if [type] == "test"{
#输出时的数据类型 stdout { codec => json_lines }
#输出到elasticsearch elasticsearch {
     #elasticsearch地址 hosts => ["localhost:9200"] #存储到elasticsearch中的索引名
     index => "test"
     #存到elasticsearch中的类型名 document_type => "test"
     #存到elasticsearch中的id document_id => "%{id}"
   #使用模板存储到elasticsearch中 template_name => "test"
     #模板位置 template => "/root/logstash-ik.json" } } }

在数据量大的期初导入数据可能会因为数据量太大导致jvm内存溢出,修改logstash/config下jvm.options文件

-Xms1g
-Xmx1g

根据机器配置去修改jvm的最大内存至8g或者更多

如果这样都不能解决内存溢出的问题,笔者这里建议将logstash数据存储从内存放到本地磁盘,这样会牺牲速率但解决了期初数据量太大的问题

修改logstash/config下logstash.yml文件

配置如下:

queue.type: persisted
queue.max_bytes: 10240mb

将queue.type设置为persisted,queue.max_bytes设置队列的最大存储数量

还有一些关于logstash性能上的优化

#logstash同时工作的线程数量,默认为服务器cpu核数,一般在cpu核数的四倍及以下合理
pipeline.workers: 2
#logstash一次操作的数据量,可以根据服务器内存来调整 pipeline.batch.size: 125

还有一些其他的优化可以自行参考logstash.yml文件

5.Kibana配置

Kibana需要修改的配置不多,需要注意如果要开启远程访问Kibana需要修改

KIBANA/config/kibaba.yml下的

server.host:"localhost"更改为

server.host: "0.0.0.0" 就可以远程访问Kibana

 

关于elk搜索引擎的环境搭建以及配置就到这里,要配置的地方也不多,基本上是开包即用,后面会介绍如何使用关于elasticsearch的使用以及讲解如何使用elk做一个电商平台的搜索引擎。

3

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6.1K
18
Nutch学习笔记4-Nutch 1.7 的 索引篇 ElasticSearch

上一篇讲解了爬取和分析的流程,很重要的收获就是: 解析过程中,会根据页面的ContentType获得一系列的注册解析器, 依次调用每个解析器,当其中一个解析成功后就返回,否则继续执行下一个解...

强子哥哥
2014/06/26
712
0
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.2K
1
日志分析平台 - Kibana

Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。 环境要求: ruby >= 1.8.7 (probably?) bundler logstash...

匿名
2013/02/13
11.6W
1
Android下的Shell环境--ZShaolin

ZShaolin 在你的 Android 设备上安装一个小型而且强大的脚本和 Shell 环境。并提供编辑、写和上传图片、音频、视频的应用:FFMpeg, ImageMagick, Sox, Oggz, Lua, GNU awk, sed, grep, and ...

匿名
2012/11/21
2.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

SQL 语句大全

点击上方“掌上编程”,选择“置顶或者星标” 优质文章第一时间送达! 一、基础 「1、说明:创建数据库」 CREATE DATABASE database-name    「2、说明:删除数据库」 drop database ...

GeneralMa
昨天
0
0
山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据

使用Python爬取全球新冠肺炎疫情数据 导入所需库包 获取实时数据的url 正式编写程序 查看输出结果 导入所需库包 在获取数据之前,我们需要先安装好所需的包requests和pandas: 1.如果是使用p...

osc_qv1fwke0
56分钟前
14
0
如何1年获得别人3年的工作经验(深度好文)

最近有同学问我,为什么你的工作年限不长,技术却这么厉害,我笑了笑,啥也没说。 我不是不想回答,是不知道怎么回答。在他们的定位可能就是,每方面都懂一点,遇到问题能够快速解决,就是比...

zhang_rick
今天
1
0
新基建带动行业

什么是“新基建”? 什么是“新基建”? 根据央视发布的信息来看,其涵盖了5G基站建设、新能源汽车充电桩、大数据中心、人工智能、工业互联网,特高压,城际以及城轨交通,涉及了七大领域和相...

osc_anefoz50
56分钟前
16
0
怕入错行?这群技术人写了本“择业指南”

计算机专业好找工作吗?哪些方向是当前的主流和热门方向呢? 计算机专业的你是不是还在为职业发展纠结犹豫呢? 刚经历完高考选专业的你是不是还在迷茫徘徊呢? 那么福利来啦! 《软件技术职业...

阿里云云栖号
56分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部