ELK(elasticsearch+kibana+logstash)搜索引擎(一): 环境搭建
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做一个电商平台的搜索引擎。
ELK(elasticsearch+kibana+logstash)搜索引擎(一): 环境搭建的更多相关文章
- ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程
1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储. ...
- 【ELK】【docker】【elasticsearch】2.使用elasticSearch+kibana+logstash+ik分词器+pinyin分词器+繁简体转化分词器 6.5.4 启动 ELK+logstash概念描述
官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod ...
- Docker安装部署ELK教程(Elasticsearch+Kibana+Logstash+Filebeat)
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...
- elasticsearch kibana logstash(ELK)的安装集成应用
官网关于kibana的学习指导网址是:https://www.elastic.co/guide/en/kibana/current/index.html Kibana是一个开源的分析和可视化平台,设计 ...
- Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
Elasticsearch - 简介 Elasticsearch 作为核心的部分,是一个具有强大索引功能的文档存储库,并且可以通过 REST API 来搜索数据.它使用 Java 编写,基于 Apac ...
- ELK日志分析平台系统CentOS7环境搭建和基本使用
一.搭建环境 系统环境:CentOS7 安装iptables:https://blog.csdn.net/momo_mutou/article/details/81739155 jdk1.8: ht ...
- Elasticsearch+Kibana+Logstash安装
安装环境: [root@node- src]# cat /etc/redhat-release CentOS Linux release (Core) 安装之前关闭防火墙 firewalld 和 se ...
- ELK日志分析系统(1)-基本环境搭建
1. 概述 ELK = Elasticsearch + Logstash + Kibana Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和J ...
- 搜索引擎 ElasticSearch 之 步步为营1 【环境搭建&初识ElasticSearch】
1.下载ElasticSearch a.下载Java环境JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloa ...
随机推荐
- 要开始学习C#
之前有涉及ASP.NET,但是就仅涉及workflow这点,现在再接触还是有点陌生. 整理一些VS使用小技巧: 1,for cw ctor 按两下Tab键会出现整个的语句 2,Ctrl+shift ...
- Zookeeper系列3 实现分布式锁
基本思路 1 client调用create()方法创建“/locks/_lock_”临时顺序节点,注意节点类型是EPHEMERAL_SEQUENTIAL 2 client调用getChildren(& ...
- Java程序员职业生涯规划完整版:从程序员到CTO( 摘)
在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高等特性 反射.泛型. ...
- java易错题
(选择二项) 8 A: B: C: D: (选择一项) 9 A: B: C: D: 正确答案是 A 您回答的是 B 回答错误 正确答案是 B,D 您回答的是 A,C 回答错误 (选择一项) 18 A: ...
- Programming | 中/ 英文词频统计(MATLAB实现)
一.英文词频统计 英文词频统计很简单,只需借助split断句,再统计即可. 完整MATLAB代码: function wordcount %思路:中文词频统计涉及到对"词语"的判断 ...
- pop
package com.example.hellopopupwindow; import android.os.Bundle; import android.app.Activity; import ...
- 软工网络15Alpha阶段敏捷冲刺博客集合
博客链接集合 第一篇:http://www.cnblogs.com/net15/p/8885400.html 第二篇:http://www.cnblogs.com/net15/p/8893808.ht ...
- ReactNative学习笔记(四)热更新和增量更新
概括 关于RN的热更新,网上有很多现成方案,但是一般都依赖第三方服务,我所希望的是能够自己管控所有一切,所以只能自己折腾. 热更新的思路 热更新一般都是更新JS和图片,也就是在不重新安装apk的情况下 ...
- 你应该这么理解TCP的三次握手和四次挥手
前言: TCP协议是计算机的基础,他本身是一个非常非常复杂的协议. 本文只是蜻蜓点水,将从网络基础以及TCP的相关概念介绍开始,之后再将三次握手,四次挥手这些内容来阐述. 最后介绍一些常见问题,并给出 ...
- Spring AOP术语:连接点和切点的区别。
定义: 1.连接点(Join point):连接点是在应用执行过程中能够插入切面(Aspect)的一个点.这些点可以是调用方法时.甚至修改一个字段时. 2.切点(Pointcut):切点是指通知(Ad ...