ELK包括elasticsearch、logstash、kibana,是用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana)的一整套解决方案,本文搭建的为7.8版本,均为单节点部署(JDK要求1.8.0_73以上)
1. elasticsearch
Elasticsearch 是使用java开辟,基于Lucene、分布式、通过Restful方式举行交互的近实时搜索平台框架。它的特点有:分布式,零配置,主动发现,索引主动分片,索引副本机制,restful风格接口,多数据源,主动搜索负载等。
1.1 下载
- 地址: https://www.elastic.co/cn/downloads/past-releases#elasticsearch
ES目录:
- elasticsearch-7.8.0
- bin 脚本目录,包括:启动、制止等可实行脚本
- config 配置文件目录
- data 索引目录,存放索引文件的地方
- logs 日志目录
- modules 模块目录,包括了es的功能模块
- plugins 插件目录,es支持插件机制
1.2 ES配置
- 在config 下的elasticsearch.yml末端加上以下配置
- #设置访问端口
- network.host: 0.0.0.0
- #设置对外访问端口
- http.port: 9200
- #开启认证
- xpack.security.enabled: true
- xpack.security.audit.enabled: true
- xpack.license.self_generated.type: basic
- xpack.security.transport.ssl.enabled: true
复制代码 1.3 启动ES
Linux下不能直接使用root账户启动,需创建es账号,并把es地点目录权限开放给es账户
- groupadd es
- useradd -r -g es es
复制代码
通过浏览器可以或许访问到如下页面即表示启动成功
1.4 开启权限认证
- ./elasticsearch-setup-passwords interactive
复制代码 根据提示后输入Y,随后根据提示设置暗码,设置完之后重启es即可
1.5 IK分词器配置(非必须)
- 下地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.8.0
- 下载后解压到plugins目录下并把压缩包删除,随后重启es,解压后参考目录
2. kibana
kibana是es数据的前端展现,数据分析时,可以方便地看到数据。作为开辟人员,可以方便访问es。
2.1 下载
- 下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
- 主要目录:
- kibana-7.8.0
- bin 脚本目录,包括:启动、制止等可实行脚本
- config 配置文件目录
- data 数据存放目录
- logs 日志目录
- modules 模块目录
- plugins 插件目录
2.2 配置
- 在config 下的kibana.yml末端加上以下配置
- # 默认端口
- server.port: 5601
- # ES 服务器的地址
- elasticsearch.hosts: ["http://127.0.0.1:9200"]
- # 索引名
- kibana.index: ".kibana"
- # 支持中文
- i18n.locale: "zh-CN"
- # es账户
- elasticsearch.username: "elastic"
- elasticsearch.password: "123456"
- # 显示登陆页面
- xpack.monitoring.ui.container.elasticsearch.enabled: true
复制代码 2.3 启动kibana
同es一样,Linux下不能直接使用root账户启动,需创非root账号,并把kibana地点目录权限开放给新增账户
- - 切换至非root账户,在`bin`目录下后台启动kibana
- ```sh
- ./kibana
复制代码 通过浏览器可以或许访问到如下页面即表示启动成功
3. logstash
logstash是一个数据抽取工具,将数据从一个地方转移到另一个地方。如hadoop生态圈的sqoop等。
3.1 下载
下载地址:https://www.elastic.co/cn/downloads/logstash
目录结构雷同es
3.2 配置
- 在config 下的kibana.yml末端加上以下配置
- http.host: "0.0.0.0"
- xpack.monitoring.enabled: true
- xpack.monitoring.elasticsearch.username: logstash_system
- xpack.monitoring.elasticsearch.password: "123456"
- xpack.monitoring.elasticsearch.hosts: ["http://127.0.0.1:9200"]
复制代码
- 修改config 下的logstash-sample.conf为以下配置
- input {
- tcp {
- port => 8899
- }
- }
- output {
- elasticsearch {
- hosts => ["http://127.0.0.1:9200"]
- index => "saas_log"
- user => "elastic"
- password => "123456"
- }
- }
复制代码 3.3 启动logstash
同es一样,Linux下不能直接使用root账户启动,需创非root账号,并把logstash地点目录权限开放给新增账户
- 切换至非root账户,在bin目录下后台启动logstash
- ./logstash -f ../config/logstash-sample.conf
复制代码 4. springboot推送数据
- 基于logback,除日志相关依赖外,额外参加logstash依赖
- <dependency>
- <groupId>net.logstash.logback</groupId>
- <artifactId>logstash-logback-encoder</artifactId>
- <version>4.11</version>
- </dependency>
复制代码
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration debug="false" scan="false">
- <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
- <property name="log.path" value="logs/${spring.application.name}"/>
- <property name="logstash.destination" value="${spring.logstash.destination}"/>
- <!-- 彩色日志格式 -->
- <property name="CONSOLE_LOG_PATTERN"
- value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
- <!-- 彩色日志依赖的渲染类 -->
- <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
- <conversionRule conversionWord="wex"
- converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
- <conversionRule conversionWord="wEx"
- converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
- <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
- <!--可以访问的Logstash日志收集端口-->
- <destination>127.0.0.1:8899</destination>
- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
- <providers>
- <timestamp>
- <timeZone>UTC</timeZone>
- </timestamp>
- <!-- <pattern>-->
- <!-- <pattern>-->
- <!-- {-->
- <!-- "severity": "%level",-->
- <!-- "service": "${springAppName:-}",-->
- <!-- "trace": "%X{X-B3-TraceId:-}",-->
- <!-- "span": "%X{X-B3-SpanId:-}",-->
- <!-- "exportable": "%X{X-Span-Export:-}",-->
- <!-- "pid": "${PID:-}",-->
- <!-- "thread": "%thread",-->
- <!-- "class": "%logger{40}",-->
- <!-- "message": "%message"-->
- <!-- }-->
- <!-- </pattern>-->
- <!-- </pattern>-->
- </providers>
- </encoder>
- </appender>
- <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
- <root level="info">
- <appender-ref ref="LOGSTASH"/>
- </root>
- </configuration>
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |