docker快速安装ELK

news/2024/12/21 22:27:19/

一、创建elk目录

创建/elk/elasticsearch/data/目录

mkdir -p /usr/local/share/elk/elasticsearch/data/

创建/elk/logstash/pipeline/目录

mkdir -p /usr/local/share/elk/logstash/pipeline/

创建/elk/kibana/conf/目录

mkdir -p /usr/local/share/elk/kibana/conf/

二、创建docker-compose.yml (linux没装dockerdocker-compose的先自行百度装一下)

进入上述创建的elk目录

cd /usr/local/share/elk/

创建docker-compose.yml

vi docker-compose.yml,然后将下面的代码粘贴到文件中,最后保存即可

#docker-compose.yml
version: '3.3'services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:8.5.3restart: alwayscontainer_name: elasticsearchports:- "9200:9200"- "9300:9300"environment:- discovery.type=single-node- xpack.security.enabled=falsevolumes:- /usr/local/share/elk/elasticsearch/data:/usr/share/elasticsearch/data"networks:- elk-netlogstash:image: docker.elastic.co/logstash/logstash:8.5.3restart: alwayscontainer_name: logstashports:- "5044:5044/tcp"- "9600:9600/tcp"volumes:- /usr/local/share/elk/logstash/pipeline:/usr/share/logstash/pipelinedepends_on:- elasticsearchnetworks:- elk-netkibana:image: docker.elastic.co/kibana/kibana:8.5.3restart: alwayscontainer_name: kibanaports:- "5601:5601"#volumes:#- /usr/local/share/elk/kibana/conf:/usr/share/kibana/configenvironment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200depends_on:- elasticsearchnetworks:- elk-netnetworks:elk-net:

三、创建logstash.conf 

进入上述创建的/elk/logstash/pipeline目录

cd /usr/local/share/elk/logstash/pipeline

创建logstash.conf 

vi logstash.conf 

将下面的代码复制粘贴到文件中保存即可

#logstash.conf
input {beats {port => 5044}
}filter {if [tags] =~ /wclflow/ {# 解析时间戳date {match => [ "message", "yyyy-MM-dd HH:mm:ss.SSS" ]target => "@timestamp"}# 提取其他字段grok {match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:remaining_message}" }add_field => [ "[@metadata][timestamp]", "%{timestamp}" ]}# 进一步分割日志grok {match => { "remaining_message" => "%{DATA:thread} %{LOGLEVEL:level} %{GREEDYDATA:message}" }}# 移除原始消息中的时间戳mutate {remove_field => [ "message" ]}# 添加时间戳字段date {match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS" ]target => "@timestamp"}}
}output {elasticsearch {hosts => ["http://elasticsearch:9200"]index => "wclflow-logs-%{+YYYY.MM.dd.HH.mm.ss}"}
}

四、启动ELK

先进入/usr/local/share/elk目录,然后启动ELK

cd /usr/local/share/elk && docker-compose up -d

启动命令执行后,等待十多秒后,查看容器运行情况,如下图表示启动成功

五、kibana汉化

将kibana容器里的配置文件复制出来,修改后再复制到容器

进入第一步创建的kibana配置目录

cd /usr/local/share/elk/kibana/conf/

复制容器内的配置文件到当前目录

docker cp kibana:/usr/share/kibana/config/kibana.yml .

修改kibana.yml,在最后一行回车后,加上这段内容:i18n.locale: zh-CN

如下图填写,保存即可

保存成功后,将kibana.yml复制回容器,然后重启kibana服务

复制回容器

docker cp ./kibana.yml kibana:/usr/share/kibana/config/

重启kibana服务

 docker-compose up -d kibana

六、浏览器访问

docker ps查看容器状态,如图所示,表示ELK服务已正常运行

打开浏览器访问http://192.168.7.46:5601/,注意ip是你的服务器ip,端口就是5601,首次访问页面如下,需要先配置Elastic,我们选择自己手动配置一下,然后配置Elastic服务地址,修改下ip和端口,如我就是配置的是192.168.7.46:9200

如果汉化不生效,试试docker restart kibana   或者  systemctl restart kibana这两个个命令,分别试一下。我的重启后再次访问,效果如下:


http://www.ppmy.cn/news/1533667.html

相关文章

【零散技术】Odoo PDF 打印问题问题合集

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo PDF打印 是一个必备功能,但是总会遇到一些奇奇怪怪的问题,此帖仅做记录,方便查阅。 目录 1、样式丢失 2、部分结构丢失 3、没有中文字体 1、样式丢失 这种情况一般是由于 …

sudo 命令:掌握系统权限控制,实现安全高效管理

一、命令简介 ​sudo​ 命令允许系统管理员授权普通用户执行特定命令,并以管理员身份运行这些命令,通常需要输入用户自己的密码。 ​​ sudo 全称是"substitute user do",意为“替用户做”,也就是“以另一个用户的身…

一个静态ip可以提取出来多少ip

静态IP地址的定义 静态IP地址是指在网络中永久分配给一个设备的IP地址。与动态IP地址不同,动态IP地址会随着设备重新连接网络而变化,而静态IP地址保持不变。这种特性使得静态IP地址在需要持续访问的服务中,例如Web服务器、邮件服务器等&…

JavaScript 中的循环和遍历的几种方式

JavaScript 中有多种循环和遍历方式,每种方式的使用场景和性能特点不同,适用于不同的数据结构和场景。下面详细介绍几种常见的循环和遍历方式: 1. for 循环 for 是最基本和常见的循环形式,适用于任何需要基于索引操作的场景。它…

vue3 环境配置vue-i8n国际化

一.依赖和插件的安装 主要是vue-i18n和 vscode的自动化插件i18n Ally https://vue-i18n.intlify.dev/ npm install vue-i18n10 pnpm add vue-i18n10 yarn add vue-i18n10 vscode在应用商城中搜索i18n Ally:如图 二.实操 安装完以后在对应项目中的跟package.jso…

【Go】-Websocket的使用

目录 为什么需要websocket 使用场景 在线教育 视频弹幕 Web端即时通信方式 什么是web端即时通讯技术? 轮询 长轮询 长连接 SSE websocket 通信方式总结 Websocket介绍 协议升级 连接确认 数据帧 socket和websocket 常见状态码 gorilla/websocket实…

【09】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Class类基础全解(属性、方法、继承复用、判断)

序言: 本文详细讲解了关于我们在程序设计中所用到的class类的各种参数及语法。 笔者也是跟着B站黑马的课程一步步学习,学习的过程中添加部分自己的想法整理为笔记分享出来,如有代码错误或笔误,欢迎指正。 B站黑马的课程链接&am…

SpringBoot与分层解耦

分层解耦: 可以更改bean的名字,通过value属性来指定,通常用于有两个重复的bean名称,例如在苍穹外卖中菜单管理,都是DishController,这时就需要进行更改bean的名称 注意: