Docker 搭建单节点 ELK

本文介绍单节点 6.7.0 版本的 ELK 日志管理系统搭建。

(1)ElasticSearch

下载镜像

docker pull elasticsearch:6.7.0

运行容器

docker run -d --name elastic -e ES_JAVA_OPTS="-Xms4096m -Xmx4096m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300  elasticsearch:6.7.0

# ES_JAVA_OPTS: 默认情况下,Elasticsearch JVM 使用堆内存最小和最大大小为 2 GB,改为 4 GB。
# discovery.type=single-node: 是指设置为单节点。
(2)Logstash

创建文件夹

mkdir /home/elk/logstash

下载镜像

docker pull logstash:6.7.0

运行容器

docker run -d --name logstash logstash:6.7.0

复制配置文件

docker cp logstash:/usr/share/logstash/config /home/elk/logstash/

修改配置文件

  • 修改文件 /home/elk/logstash/config/logstash.yml,在里面修改配置如下:
# http.host: "0.0.0.0"
# xpack.monitoring.elasticsearch.url: http://elasticsearch:9200
path.config: /usr/share/logstash/config/elk.conf
  • 新建文件 /home/elk/logstash/config/elk.conf,在里面添加如下配置:
input {
    tcp {
        port => 5044
        codec => "plain"
    }
}

filter {

}

output {
    elasticsearch {
	# Elasticsearch 端口地址
        hosts => ["127.0.0.1:9200"]
	# 区分不同项目,与下面项目配置进行对应
        index => "logs-%{[appname]}-%{+YYYY.MM.dd}" 
    }
}

再次运行容器

docker rm -f log-logstash

docker run -d --name logstash -p 5044:5044 -v /home/elk/logstash/config:/usr/share/logstash/config logstash:6.7.0
(3)Kibana

创建文件夹

mkdir /home/elk/kibana

下载镜像

docker pull kibana:6.7.0

运行容器

docker run -d --name kibana -p 5601:5601 kibana:6.7.0

复制配置文件

docker cp kibana:/usr/share/kibana/config /home/elk/kibana/

修改配置文件

  • 修改文件 /home/elk/kibana/config/kibana.yml,在里面修改配置如下:
server.name: kibana
server.host: "0"
# Elasticsearch 端口地址
elasticsearch.hosts: [ "http://127.0.0.1:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
# 操作界面语言设置
i18n.locale: "zh-CN"

再次运行容器

docker rm -f kibana

docker run -d --name kibana -p 5601:5601 -v /home/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:6.7.0
(4)项目配置

添加依赖

<dependency>
	<groupId>net.logstash.logback</groupId>
	<artifactId>logstash-logback-encoder</artifactId>
	<version>6.3</version>
</dependency>

配置

在resources文件夹下创建logback-spring.xml文件,并进行如下配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <springProperty scope="context" name="logPath" source="log.path"/>
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
   	<!-- 此处配置 logstash 的 IP 和端口 -->
        <destination>127.0.0.1:5044</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
        	<!-- 此处配置 logstash 的索引名称,与上面 logstash.conf 配置对应。-->
            <customFields>{"appname": "项目名称"}</customFields>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="LOGSTASH"/>
    </root>
</configuration>
(5)开放端口

需要开放端口为 9200、9300、5044、5601。

firewall-cmd --permanent --add-port=9200/tcp

firewall-cmd --permanent --add-port=9300/tcp

firewall-cmd --permanent --add-port=5044/tcp

firewall-cmd --permanent --add-port=5601/tcp

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值