ELK环境搭建

准备环境

jdk 1.8
elasticsearch-6.4.3
kibana-6.4.3
logstash-6.4.3

1.安装JDK

Elasticsearch是基于Java开发是一个Java程序,运行在Jvm中。要求jdk 1.8或1.8以上版本

yum install -y java-1.8.0-openjdk-devel 

确认jdbk安装成功

java -version
在这里插入图片描述

2、安装Elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz

下载完成解压: tar -zxvf elasticsearch-6.4.3.tar.gz

修改 elasticsearch.yml

path.data: /home/logs/elasticsearch/data                 # 数据的默认存放路径
path.logs: /home/logs/elasticsearch/log                  # 日志的默认存放路径

network.host: 0.0.0.0 #解决外网访问问题
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"

JVM配置

 vim /etc/elasticsearch/jvm.options

在这里插入图片描述

创建elsearch用户组及elsearch用户
由于安全的考虑,elasticsearch不允许使用root用户来启动,所以需要创建一个新的用户,并为这个账户赋予相应的权限来启动elasticsearch集群。

# 创建用户组
groupadd es
# 创建用户并添加至用户组
useradd es -g es 
# 更改用户密码(输入 123123)
passwd es

创建完成之后,切换到elasticsearch-6.4.2的父路径下,赋予es用户操作权限

chown -R es:es  elasticsearch-6.4.2
chown -R es:es  /home/logs/elasticsearch/

切换到es用户再启动

su es
cd elasticsearch-6.4.2/bin
sh elasticsearch &

启动报错 ERROR: [2] bootstrap checks failed

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2021-08-18T19:43:22,711][INFO ][o.e.n.Node               ] [4ugqM-5] stopping ...
[2021-08-18T19:43:22,738][INFO ][o.e.n.Node               ] [4ugqM-5] stopped
[2021-08-18T19:43:22,738][INFO ][o.e.n.Node               ] [4ugqM-5] closing ...
[2021-08-18T19:43:22,753][INFO ][o.e.n.Node               ] [4ugqM-5] closed

这里提示两个错误:
1、[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;
解决:

 vim /etc/security/limits.conf

*** hard nofile 65536
*** soft nofile 65536

2、[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题翻译是:最大虚拟内存区域 vm.max_map_count [65530] 太低,增加到至少 [262144]
解决:

vi /etc/sysctl.conf 

//添加以下配置  
vm.max_map_count=655360

修改完之后执行

1、su root  切换到root用户
2、sysctl -p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

后台启动,这样当我们退出时,应用仍在后台运行

./bin/elasticsearch -d

停止后台服务

jps
kill -9 

在这里插入图片描述

切回原来es用户,再次重启es,检查ES是否启动成功
在这里插入图片描述

2、kibana 搭建

去官网下载对应的历史版本,每一个版本的es都有一个对应的Kibana版本。我使用的是6.4.3版本

https://www.elastic.co/downloads/past-releases

下载安装包,rz命令上传到服务器,并解压

tar -zxvf kibana-6.4.3-linux-x86_64.tar.gz 

切换到bin目录下面
cd kibana-6.4.3-linux-x86_64/config
vi kibana.yml 修改配置文件

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
kibana.index: ".kibana"

启动Kibana

切换到bin目录下面
cd /kibana-6.4.3-linux-x86_64/bin
执行
nohup ./kibana &

4、安装部署 Logstash

选择合适版本的安装包(和 Elasticsearch 保持一致)。

wget https://mirrors.huaweicloud.com/logstash/7.8.0/logstash-6.4.3.tar.gz

2、解压安装包文件

tar -xf logstash-6.4.3.tar.gz

3、进入logstash-6.4.3 的bin文件,修改配置文件vim logstash.conf

 #输入插件
input {										# input输入源配置
  tcp {										# 使用tcp输入源
    port => 9600							# 服务器监听端口9061接收日志,默认ip localhost
    codec => json_lines						# 使用json解析日志  需要安装json解析插件
  }
}
#过滤匹配插件
filter {
    
}
#输出插件
output {									# output 数据输出配置
  elasticsearch {							# 使用elasticsearch接收
    hosts => ["http://localhost:9200"]		# 集群地址 多个用,隔开
    index => ["%{[appname]}-%{+YYYY-MM-dd}"]  #创建以appname的值为索引,这个参数要和springboot 配置参数对应

  }
  stdout {
  	codec => rubydebug						# 输出到命令窗口
  }
}

4、安装插件
由于国内无法访问默认的gem source,需要将gem source改为国内的源。

# 修改Gemfile
[root@localhost logstash-7.8.0]# vim Gemfile

# 将source这一行改成如下所示:
source "https://ruby.taobao.org"
 ./bin/logstash-plugin install logstash-codec-json_lines

5、 后台启动Logstash

 nohup   sh logstash -f logstash.conf > /opt/elk/logs/logstash/logs.log 2>&1 &

6、springboot 整合 logstash

新建logback-spring.xml文件
注意:{“appname”:“maitong-order”}调用fields 中appname字段变量的值为索引。赋予logstash.conf创建以appname的值.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <springProperty scope="context" name="springAppName"
                    source="spring.application.name"/>
    <springProperty scope="context" name="serverPort"
                    source="server.port"/>

    <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" />
    <!-- 彩色日志格式 -->
    <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}}"/>

    <!--1. 输出到控制台-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        </filter>
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>


    <!-- 为logstash输出的JSON格式的Appender -->
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>IP:9600</destination>
        <!-- 日志输出编码 -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<!--            调用fields 中appname字段变量的值为索引。-->
            <customFields>{"appname":"maitong-order"}</customFields>
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "port": "${serverPort:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>

        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="logstash"/>
    </root>
</configuration>





# 关注博主动态
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/39ac0c80dfbe4f83a46951fa3f2f6a55.jpeg)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ELK是指Elasticsearch、Logstash和Kibana这三个开源软件的组合,用于构建实时数据分析和可视化的日志收集系统。ELK平台的搭建可以在Windows环境下进行。根据引用\[1\],在Windows 11环境下,可以使用logstash 8.0.0、elasticsearch 8.0.0和kibana 8.0.0进行搭建。 首先,需要下载elasticsearch、logstash、kibana和filebeat。根据引用\[2\],这些软件可以免费下载并使用。 接下来,打开一个新的shell,并执行命令切换到elk软件的安装目录。根据引用\[3\],可以使用类似以下命令切换到kibana的安装目录: ``` cd F:\soft\elk .\kibana-7.16.0-windows-x86_64\kibana-7.16.0-windows-x86_64\bin\kibana.bat ``` 以上是在Windows系统下搭建ELK平台的简要步骤。具体的配置和使用方法可以参考相关文档或教程。 #### 引用[.reference_title] - *1* [Windows环境下搭建完整的ELK平台](https://blog.csdn.net/m0_52403371/article/details/129894030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ELK搭建开源日志系统(window版本)—图文详细](https://blog.csdn.net/likewiehyou/article/details/124438761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔-治

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值