为了账号安全,请及时绑定邮箱和手机立即绑定

搭建ELK日志分析系统(Docker方式)

标签:
Docker
  1. 安装Docker CE

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo$ sudo yum install docker-ce$ sudo systemctl start docker$ sudo docker run hello-world
  1. 安装Docker Compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose$ sudo chmod +x /usr/local/bin/docker-compose$ docker-compose --version
  1. https://github.com/deviantony/docker-elk克隆源代码

$ git clone https://github.com/deviantony/docker-elk$ docker-compose up -d
  1. 默认端口配置

  • 5000: Logstash TCP input

  • 9200: Elasticsearch HTTP

  • 9300: Elasticsearch TCP transport

  • 5601: Kibana

  1. 修改logstash.conf配置

input {
  tcp {
    port => 5000
    codec => json_lines
  }
}

output {
  elasticsearch {
    hosts => "elasticsearch:9200"
  }
}
  1. 在微服务项目中,添加logback-spring.xml配置文件,内容如下:

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

    <property name="appName" value="gateway"/>
    <property name="appVersion" value="1.0.0"/>

    <springProfile name="default,dev">
        <property name="logstashDest" value="172.20.15.52:5000"/>

        <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <destination>${logstashDest}</destination>
            <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
                <providers>
                    <mdc/> <!-- MDC variables on the Thread will be written as JSON fields-->
                    <context/> <!--Outputs entries from logback's context -->
                    <version/> <!-- Logstash json format version, the @version field in the output-->
                    <logLevel/>
                    <loggerName/>

                    <pattern>
                        <pattern>
                            {                            <!-- we can add some custom fields to be sent with all the log entries.-->
                            <!--make filtering easier in Logstash-->
                            "appName": "${appName}",
                            "appVersion": "${appVersion}"
                            }                        </pattern>
                    </pattern>

                    <threadName/>
                    <message/>

                    <logstashMarkers/> <!-- Useful so we can add extra information for specific log lines as Markers-->
                    <arguments/> <!--or through StructuredArguments-->

                    <stackTrace/>
                </providers>
            </encoder>
        </appender>
    </springProfile>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>

        <springProfile name="default,dev">
            <appender-ref ref="logstash"/>
        </springProfile>
    </root></configuration>



作者:王睿同学
链接:https://www.jianshu.com/p/9d2b9b34dbbe


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消