简易ELK搭建

ELK搭建

  • [1. elasticsearch](#1. elasticsearch)
    • [1.1 下载](#1.1 下载)
    • [1.2 ES配置](#1.2 ES配置)
    • [1.3 启动ES](#1.3 启动ES)
    • [1.4 开启权限认证](#1.4 开启权限认证)
    • [1.5 IK分词器配置(非必须)](#1.5 IK分词器配置(非必须))
  • [2. kibana](#2. kibana)
    • [2.1 下载](#2.1 下载)
    • [2.2 配置](#2.2 配置)
    • [2.3 启动kibana](#2.3 启动kibana)
  • [3. logstash](#3. logstash)
    • [3.1 下载](#3.1 下载)
    • [3.2 配置](#3.2 配置)
    • [3.3 启动logstash](#3.3 启动logstash)
  • [4. springboot推送数据](#4. springboot推送数据)

ELK包括elasticsearch、logstash、kibana,是用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana)的一整套解决方案,本文搭建的为7.8版本,均为单节点部署(JDK要求1.8.0_73以上)

  • 本文为ELK简易版本部署

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末尾加上以下配置
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账户

  • 创建用户用户组
sh 复制代码
groupadd es
useradd -r -g es es
  • 开放目录权限
sh 复制代码
chown -R [elk所在目录]
  • 切换至es账户,在bin目录下后台启动es
sh 复制代码
./elasticsearch -d 

通过浏览器能够访问到如下页面即表示启动成功

1.4 开启权限认证

  • es账户在bin目录下运行
sh 复制代码
./elasticsearch-setup-passwords interactive

根据提示后输入Y,随后根据提示设置密码,设置完之后重启es即可

1.5 IK分词器配置(非必须)

2. kibana

kibana是es数据的前端展现,数据分析时,可以方便地看到数据。作为开发人员,可以方便访问es。

2.1 下载

2.2 配置

  • config 下的kibana.yml末尾加上以下配置
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末尾加上以下配置
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为以下配置
sh 复制代码
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
sh 复制代码
./logstash -f ../config/logstash-sample.conf

4. springboot推送数据

  • 基于logback,除日志相关依赖外,额外加入logstash依赖
pom 复制代码
<dependency>
	<groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.11</version>
</dependency>
  • 设置logback配置
xml 复制代码
<?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>
相关推荐
Karoku0661 天前
【企业级分布式系统】ELK-企业级日志分析系统
运维·数据库·redis·mysql·elk·缓存
一名技术极客2 天前
徒手从零搭建一套ELK日志平台
elk
jun7788954 天前
SpringBoot整合ELK使用详解
spring boot·后端·elk
yueqingll4 天前
023、ELK 从入门到实践
elk
abandondyy4 天前
ELK Elasticsearch 集群部署
大数据·elk·elasticsearch
小李叭叭叭4 天前
ELK8.15.4搭建开启安全认证
运维·elk·elasticsearch·kibana
光仔December11 天前
【Elasticsearch入门到落地】1、初识Elasticsearch
大数据·elk·elasticsearch·搜索引擎·lucene
太空眼睛13 天前
【EFK】Linux集群部署Elasticsearch最新版本8.x
linux·elk·elasticsearch·efk·master·8.15.3·node.roles
Shenqi Lotus16 天前
ELK-ELK基本概念_ElasticSearch的配置
elk·elasticsearch