docker搭建elk

docker pull elasticsearch:6.5.1 存储各类日志
docker pull logstash:6.5.1 ogstash server端用来搜集日志
docker pull kibana:6.5.1 web化接口用作查寻和可视化日志;
依次启动 elasticsearch、logstash、kibana

创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
docker network create somenetwork
否则会出现异常
/usr/bin/docker-current: Error response from daemon: network somenetwork not found.

运行 elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:6.5.1

检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
在这里插入图片描述
安装启动完成

Kibana使用默认配置,并希望连接到正在运行的Elasticsearch实例http://localhost:9200
运行 Kibana
docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:6.5.1

启动后 进入容器内部 docker exec -it kibana /bin/bash
修改kibana.yml文件
vi /usr/share/kibana/config/ kibana.yml

修改配置文件,因为要绕过x-pack的安全检查
elasticsearch.url: http://localhost:9200 (注意) 设置的ip 需要进入容器查看 docker inspect 容器ID
在这里插入图片描述
xpack.monitoring.ui.container.elasticsearch.enabled: false
重启容器:docker restart kibana

查看容器启动状态
docker ps

http://192.168.1.113:5601
在这里插入图片描述
Kibana安装启动完成

启动 logstash
docker run -d -u 0 --name logstash --net somenetwork -p 5044:5044 logstash:6.5.1

进入容器:docker exec -it logstash /bin/bash
修改配置文件 vi /usr/share/logstash/pipeline/logstash.conf
input {
tcp {
port => 5044
codec =>json_lines
}
}

output {
elasticsearch{
hosts => [“172.18.0.2:9200”]
action => “index”
index => “%{[appname]}”
}
stdout {
codec => rubydebug
}
}

localhost=(注意) 设置的ip 需要进入容器查看 docker inspect 容器ID
在这里插入图片描述
重启容器:docker restart logstash

注意 配置中的localhost 替换成服务器地址,如果直接使用localhost 会导致,logstash 服务无法连接上elasticsearch 服务,导致spring cloud 项目服务连接到 logstash 服务时,该服务会报错,将拒绝项目连接elk 日志服务。

<?xml version="1.0" encoding="UTF-8"?>

< configuration scan=“true” scanPeriod=“60 seconds”>

<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" />

<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>${log.pattern}</pattern>
    </encoder>
</appender>

<!-- logstash设置 -->
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <param name="Encoding" value="UTF-8"/>
    <!-- logstash服务器ip -->
    <remoteHost>192.168.1.6</remoteHost>
    <!-- logstash tcp 端口-->
    <port>5044</port>
    <!-- <filter class="com.program.interceptor.ELKFilter"/>-->
    <!-- encoder is required -->
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
        <customFields>{"appname":"shop-dev"}</customFields>
    </encoder>
</appender>

<root level="info">
    <appender-ref ref="consoleAppender" />
    <appender-ref ref="logstash"/>
</root>

< /configuration>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值