小型项目elk搭建

es kibana 使用docker启动,filebeat使用本机启动

本机地址192.168.0.110

es

java 复制代码
docker run -d --name es  -p 9200:9200 -p 9300:9300 -e "cluster.name=small-elk-cluster"  -e "node.name=es-node-1" -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" -e "xpack.security.enabled=false" -v /home/work/elk/es:/usr/share/elasticsearch/data -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --ulimit memlock=-1:-1 --restart always elasticsearch:7.4.2 

###这里可能es启动失败是权限问题/home/work/elk/es这个目录赋权限

java 复制代码
chmod 777 /home/work/elk/es

kibana

java 复制代码
docker run -d --name kibana -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://192.168.0.110:9200" -e "I18N_LOCALE=zh-CN" -e "xpack.security.enabled=false" -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --restart always kibana:7.4.2 

filebeat 的配置文件如下

java 复制代码
filebeat.inputs:
- type: log
  name: "gateway"
  enabled: true
  # 订单系统日志路径(替换为你的实际路径)
  paths:
    - /home/gateway-service/logs/*.log
  # 自定义字段(可选,增强索引语义)
  fields:
    log_type: "gateway"
    env: "pro"
  fields_under_root: true
  # Java 多行日志合并(解决异常栈)
  multiline.type: pattern
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
  multiline.negate: true
  multiline.match: after
  encoding: utf-8
  exclude_files: ['\.zip$'] 

setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
setup.template.settings:
  index.number_of_shards: 1
  index.number_of_replicas: 0
setup.ilm.enabled: false
# ========== 输出配置(动态生成独立索引) ==========
output.elasticsearch:
  # 指向 Docker 内的 ES 地址(替换为你的 ES 容器 IP/宿主机 IP)
  hosts: ["192.168.0.110:9200"]
  index: "filebeat-%{[log_type]}-%{+yyyy.MM.dd}"
  ilm.enabled: false
# ========== Filebeat 自身日志配置 ==========
logging.level: info
logging.to_files: true
logging.files:
  path: /usr/local/filebeat/logs
  name: filebeat
  rotateeverybytes: 10485760
  keepfiles: 7
  
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
  
processors:
  - script:
      lang: javascript
      id: my_filter
      source: >
        function process(event) {
            var str = event.Get("message");
            var time = str.split(" ").slice(0,2).join(" ");
            var standardTime = time.replace(/(\d{2}:\d{2}:\d{2}):(\d{3})$/, "$1.$2");
            event.Put("log_time", standardTime);
        }
      ignore_failure: true
  - timestamp:
      field: log_time
      target_field: "@timestamp"  # 关键:将解析的时间设为@timestamp
      timezone: Asia/Shanghai
      layouts:
        - '2006-01-02 15:04:05'
        - '2006-01-02 15:04:05.999'
      ignore_failure: true
      overwrite: true

如果时间偏移8小时,删除索引模式再删除索引,之后重新再次创建就可以了

相关推荐
阿标在干嘛3 天前
政策快报平台日志系统的3次演进:从文件到ELK到告警
运维·elk·jenkins
AAA@峥9 天前
CentOS7 搭建 ELK 企业级日志集群:从部署到日志可视化完整实战
运维·elk·centos
.柒宇.10 天前
ELK日志分析系统实战指南:Elasticsearch搭建与入门(8.18.8版本)
运维·elk·elasticsearch·logback·日志系统
java_logo11 天前
ELK Docker Compose 部署指南:轻松搭建日志检索平台
elk·elasticsearch·docker·容器·kibana·logstash·轩辕镜像
运维大师24 天前
【监控与可观测性】03-ELK日志体系搭建:从采集到告警的完整闭环
elk
c_zyer25 天前
一站式可观测新选择:OpenObserve 深度对标 ELK / Grafana+Prometheus / Netdata,附Docker一键部署实战
elk·grafana·prometheus·netdata·openobserve
至乐活着1 个月前
ELK日志系统从零搭建到实战:Nginx日志采集与可视化全攻略
nginx·elk·elasticsearch·docker·日志系统
艾伦_耶格宇1 个月前
【ELK】-2 ELK的搭建
运维·elk
创世宇图1 个月前
【Python工程化实战】Python 服务的结构化日志体系:structlog + JSON 输出 + 日志分级策略
python·elk·structlog·结构化日志·可观测性
未若君雅裁2 个月前
日志采集与ELK:从本地日志到集中检索分析
运维·elk·jenkins