部署ELK

这篇具有很好参考价值的文章主要介绍了部署ELK。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、elasticsearch

#拉取镜像
docker pull elasticsearch:7.12.1
#创建ELK docker网络
docker network create elk
#启动ELK
docker run -d --name es --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1
#拷贝配置文件
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /app/es/elasticsearch.yml
#删除容器 重新启动
docker run -d --name es \
--net elk \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
--privileged=true \
-v /app/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /app/es/data/:/usr/share/elasticsearch/data \
elasticsearch:7.12.1

如果报错jvm内存太小,在宿主机查询到容器的配置文件,并修改内存大小

find / -name jvm.options

部署ELK,安装手册,elk,jenkins,运维
部署ELK,安装手册,elk,jenkins,运维
验证
部署ELK,安装手册,elk,jenkins,运维

二、kibana

#拉取镜像
docker pull kibana:7.12.1
# 启动 kibana 容器并连接同一网络
docker run -d --name kibana --net elk -P -e "ELASTICSEARCH_HOSTS=http://es:9200" -e "I18N_LOCALE=zh-CN" kibana:7.12.1
#拷贝配置文件
docker cp kibana:/usr/share/kibana/config/kibana.yml /app/kibana/
vi /app/kibana/kibana.yml 把elasticsearch所在服务器ip配置下
#删除容器 重新启动
docker run -d --name kibana \
-p 5601:5601 \
-v /app/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--net elk \
kibana:7.12.1

验证
部署ELK,安装手册,elk,jenkins,运维

三、logstash

docker pull logstash:7.12.1

docker run -d -P --name logstash --net elk logstash:7.12.1

# 拷贝数据
docker cp logstash:/usr/share/logstash/config /app/logstash/
docker cp logstash:/usr/share/logstash/data /app/logstash/
docker cp logstash:/usr/share/logstash/pipeline /app/logstash/

#文件夹赋权
chmod -R 777 logstash/

vi /app/logstash/config/logstash.yml 配置es ip
部署ELK,安装手册,elk,jenkins,运维
vi /app/logstash/pipeline/logstash.conf
logstash.conf

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    port => 5044
    codec => json_lines    # 数据格式
  }
}

output {
  elasticsearch {
      hosts  => ["http://106.54.220.184:9200"]   # ElasticSearch 的地址和端口
      index  => "elk"         # 指定索引名
      codec  => "json"
  }
  stdout {
    codec => rubydebug
  }
}

修改完配置文件,删除容器、重启容器

docker run -d --name logstash --net elk \
--privileged=true \
-p 5044:5044 -p 9600:9600 \
-v /app/logstash/data/:/usr/share/logstash/data \
-v /app/logstash/config/:/usr/share/logstash/config \
-v /app/logstash/pipeline/:/usr/share/logstash/pipeline \
logstash:7.12.1

验证
部署ELK,安装手册,elk,jenkins,运维

四、springboot集成elk

引入logstash依赖

      <!--集成logstash-->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.3</version>
        </dependency>

logback.xml日志配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <contextName>ProviderLog</contextName>
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <!--本工程中没使用文件输出日志,只用了console和logstash,此处配置无用-->
    <property name="LOG_HOME" value="home" />
    <!--可以手动指定log名字-->
    <property name="appName" value="wdnmdService" />
    <!--也可以使用工程的名字-->
    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <springProperty scope="context" name="serverPort" source="server.port"/>
    <!-- logstash远程日志配置-->
    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>106.54.220.184:5044</destination>

        <!--        默认是JSON格式,所以logstash中应该配置codec为json_lines-->
        <!--        LoggingEventCompositeJsonEncoder是LogstashEncoder的父类,可以使用pattern自定义json的关键字
        -->
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder" >
            <!--        <encoder class="net.logstash.logback.encoder.LogstashEncoder" >-->
            <providers>
                <!--可以配合LogstashEncoder使用-->
                <!-- <timestamp/>-->
                <!--<version/>-->
                <!--<message/>-->
                <!--<loggerName/>-->
                <!--<threadName/>-->
                <logLevel/>
                <callerData/>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "app": "${springAppName}_${serverPort}",
                        "level": "%level",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "message": "%message"
                        }
                    </pattern>
                </pattern>

            </providers>
        </encoder>
    </appender>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/system.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="stash" />
        <appender-ref ref="STDOUT" />
        <!--        <appender-ref ref="FILE" />-->
    </root>
</configuration>

由于在配置中已经指定了索引名称 index => “elk”
创建索引:kibana-Stack Management-索引模式-创建索引-elk
查询日志:kibana-analytics-discover
部署ELK,安装手册,elk,jenkins,运维文章来源地址https://www.toymoban.com/news/detail-742386.html

到了这里,关于部署ELK的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ELK安装、部署、调试 (二) ES的安装部署

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口操作ES,也可以利用Java API。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索

    2024年02月10日
    浏览(36)
  • ELK的安装部署与使用

    部署环境:Elasticsearch-7.17.3 Logstash-7.17.3 Kibana-7.17.3 一、安装部署Elasticsearch 解压目录,进入conf目录下 编辑elasticsearch.yml文件,输入以下内容并保存 3.进入bin目录,点击elasticsearch.bat文件启动项目 二、安装部署Logstash 文件配置 在conf目录下新建logstash.conf 遇到问题与解决 ①JAVA

    2024年02月08日
    浏览(28)
  • ELK8.1的安装部署

    ELK版本:8.1.3 IP:192.168.86.173 一台机器上安装一个es集群(3个节点), 首先在es官网上下载(选择版本)(也可以选择kibana和logstash组件) Past Releases of Elastic Stack Software | Elastic Elasticsearch 部署步骤: 1.  下载后,上传到虚拟机的Linux系统中,解压 tar -zxf  elasticsearch-8.1.3-linux-x86_64.tar.gz 本

    2024年02月10日
    浏览(30)
  • ELK安装、部署、调试(三)zookeeper安装,配置

    java安装,系统自带即可 zookeeper.apache.org上可以下载 tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local  mv apache-zookeeper-3.7.1-bin zookeeper  mv zoo_sample.cfg zoo.cfg /usr/local/zookeeper/conf/zoo.cfgvi zoo.cfg 除了配置zoo.cfg文件外,zookeeper的集群还需要配置一个文件myid,需要手动创建,放到dataDir的目

    2024年02月10日
    浏览(38)
  • ELK安装、部署、调试(四)KAFKA消息队列的安装和部署

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 Kafka 

    2024年02月10日
    浏览(36)
  • ELK安装、部署、调试(一)设计规划及准备

    一、整体规划如图: 【filebeat】 需要收集日志的服务器,安装filebeat软件,用于收集日志。logstash也可以收集日志,但是占用的系统资源过大,所以使用了filebeat来收集日志。 【kafka】 接收filebeat的日志,进行队列及缓存,kafka使用集群的方式搭建,避免了filebeat直接向logstas

    2024年02月10日
    浏览(44)
  • ELK安装、部署、调试(五)filebeat的安装与配置

    logstash 也可以收集日志,但是数据量大时太消耗系统新能。而filebeat是轻量级的,占用系统资源极少。 Filebeat 由两个主要组件组成:harvester 和 prospector。 采集器 harvester 的主要职责是读取单个文件的内容。读取每个文件,并将内容发送到 the output。 每个文件启动一个 harveste

    2024年02月10日
    浏览(41)
  • ELK安装、部署、调试(六) logstash的安装和配置

    Logstash是具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。 管道(Logstash Pipeline)是Logstash中独立的运行单元,每个管道都包含两

    2024年02月10日
    浏览(34)
  • ELK安装、部署、调试 (七)kibana的安装与配置

    Kibana  是一个基于浏览器的开源可视化工具,主要用于分析大量日志,以折线图、条形图、饼图、热图、区域图、坐标图、仪表、目标、时间等形式。预测或查看输入源的错误或其他重大事件趋势的变化。Kibana 与 Elasticsearch 和 Logstash 同步工作,它们共同构成了所谓的  ELK 

    2024年02月10日
    浏览(40)
  • ELK安装、部署、调试 (八)logstash配置语法详解

    1.读取文件。  使用filewatch的ruby gem库来监听文件变化,并通过.sincedb的数据库文件记录被监听日志we年的读取进度(时间 搓) 。sincedb数据文件的默认路径为path.data/plugins/inputs/file下面,文件名类似 于.sincedb_234534534sdfgsfd23,path.data为logstash的插件存储目录默认是LOGSTASH_HOME/dat

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包