当前位置: 首页 > article >正文

docker快速安装ELK

一、创建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没装docker和docker-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.3
    restart: always
    container_name: elasticsearch
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
    volumes:
      - /usr/local/share/elk/elasticsearch/data:/usr/share/elasticsearch/data"
    networks:
      - elk-net

  logstash:
    image: docker.elastic.co/logstash/logstash:8.5.3
    restart: always
    container_name: logstash
    ports:
      - "5044:5044/tcp"
      - "9600:9600/tcp"
    volumes:
      - /usr/local/share/elk/logstash/pipeline:/usr/share/logstash/pipeline
    depends_on:
      - elasticsearch
    networks:
      - elk-net

  kibana:
    image: docker.elastic.co/kibana/kibana:8.5.3
    restart: always
    container_name: kibana
    ports:
      - "5601:5601"
    #volumes:
      #- /usr/local/share/elk/kibana/conf:/usr/share/kibana/config
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    depends_on:
      - elasticsearch
    networks:
      - elk-net

networks:
  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.kler.cn/a/331215.html

相关文章:

  • 100V宽压输入反激隔离电源,适用于N道沟MOSFET或GaN或5V栅极驱动器,无需光耦合
  • 2. SQL窗口函数使用
  • TCP/IP 模型中,网络层对 IP 地址的分配与路由选择
  • Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
  • 无人设备遥控器之定向天线篇
  • 谷歌浏览器的网络连接问题解决方案
  • IDEA在git提交时添加忽略文件
  • 【动态规划-分组背包】【hard】力扣2218. 从栈中取出 K 个硬币的最大面值和
  • C++ 类和对象的初步介绍
  • 网页前端开发之Javascript入门篇(3/9):条件控制
  • Vue.js 组件开发知识详解
  • 国外电商系统开发-运维系统开发
  • python如何查询函数
  • pod管理及优化
  • 解决 MySQL 服务无法启动:failed to restart mysql.service: unit not found
  • 2024-09-04 深入JavaScript高级语法十五——浏览器原理-V8引擎-js执行原理
  • Springboot项目jar包中resource目录下静态资源excel、pdf等二进制文件损坏
  • 跨平台音乐播放器Feishin
  • 位运算(6)_只出现一次的数字 II
  • Build a Large Language Model (From Scratch)学习汇总
  • uni-app运行到 Android 真机和Android studio模拟器
  • three.js 通过着色器实现热力图效果
  • 【项目开发】跨专业合作平台实战(附源码)
  • esp32开发环境搭建和烧录测试
  • 10.2学习
  • Sqoop面试整理