精华内容
下载资源
问答
  • docker 部署ELK

    2021-08-27 15:46:16
    docker 部署ELK ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash和Kibana。 Elasticsearch是一个搜索和分析引擎。 Logstash是服务器端数据处理管道,能够同时从...

    ELK 到底是什么呢?

    “ELK”是三个开源项目的首字母缩写,这三个项目分别是:ElasticsearchLogstashKibana

    • Elasticsearch是一个搜索和分析引擎。
    • Logstash是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。
    • Kibana则可以让用户在Elasticsearch中使用图形和图表对数据进行可视化。

    ELK 官方文档

    docker 搭建ELK环境

    docker拉取ELK镜像

    如果没有配置阿里云镜像加速(时间很久,耐心要足)

    docker pull sebp/elk
    

    创建Docker容器

    docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m  -e ES_MAX_MEM=1024m --name elk sebp/elk
    

    Note:
    端口号:5601 Kibana 9200 Elasticsearch 5044 Logstash
    ES_HEAP_SIZE环境变量允许设置被分配到Elasticsearch java进程中堆内存大小。最小和最大值将分配相同的值到,可以通过设置 ES_MIN_MEM(默认为256M)和ES_MAX_MEM(默认为1G)对堆内存进行设置(不推荐)

    访问Kibana控制台

    http://localhost:5601/
    在这里插入图片描述

    docker-compose搭建ELK环境

    elk.yml

    version: '1'
    services:
     elk:
        image: sebp/elk
        container_name: elk
        ports:
          - "5601:5601"
          - "9200:9200"
          - "5044:5044"
        environment:
          ES_MAX_MEM: "1024m"
          ES_MIN_MEM: "128m"
    

    docker-compose创建容器

    docker-compose apply -f elk.yml
    

    ELK容器内日志文件目录

    • Elasticsearch日志文件目录:/var/log/elasticsearch
    • Logstash日志文件目录:/var/log/logstash
    • Kibana日志文件目录:/var/log/kibana

    ELK容器内安装目录

    • Elasticsearch日志文件目录:/opt/elasticsearch
    • Logstash日志文件目录:/opt/logstash
    • Kibana日志文件目录:/opt/kibana

    最后

    后续会持续更新ELK搭建高吞吐高并发的日志系统,使用ELK附近好友功能。关注我技术公众号。
    java移动技术栈

    展开全文
  • docker部署elk

    2020-04-19 12:15:58
    本技术文档记录docker部署elk,满足研发部门对日志的需求 #### 配置docker挂载的时区 ``` cat > /etc/timezone <<-EOF Asia/Shanghai EOF ``` #### 部署 ##### es 配置elasticsearch.yml...

    #### 前言

    本技术文档记录docker部署elk,满足研发部门对日志的需求

     

    #### 配置docker挂载的时区

    ```

    cat > /etc/timezone <<-EOF

    Asia/Shanghai

    EOF

    ```

     

    #### 部署

     

    ##### es

    配置elasticsearch.yml文件

    ```

    mkdir -p /data/deploy/elasticsearch

    cat > /data/deploy/elasticsearch/elasticsearch.yml <<-EOF
    cluster.name: "docker-cluster"
    network.host: 0.0.0.0
    xpack.security.enabled: true
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    EOF

    ```

    配置部署脚本

    ```

    cat > docker-elasticsearch.sh <<-EOF
    #!/usr/bin/env bash

    mkdir -p /data/elasticsearch
    chown -R 1000:1000 /data/elasticsearch

    docker run -d \
      --name elasticsearch \
      --restart always \
      -p 9200:9200 \
      -p 9300:9300 \
      -e "discovery.type=single-node" \
      -v /etc/timezone:/etc/timezone:ro \
      -v /etc/localtime:/etc/localtime:ro \
      -v /data/deploy/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro \
      -v /data/elasticsearch:/usr/share/elasticsearch/data \
      elasticsearch:7.6.1

    EOF

    ```

    执行部署

    > bash docker-elasticsearch.sh

     

    ##### logstash

    配置logstash.yml

    ```

    mkdir /data/deploy/logstash

    cat > /data/deploy/logstash/logstash.yml <<-EOF
    xpack:
      monitoring:
        enabled: true
        elasticsearch:
          hosts: elasticsearch:9200
          username: elasticsearch_username
          password: "elasticsearch_password"

    EOF

    ```

    配置logstash.conf    # 根据自身的日志进行处理

    ```

    mkdir /data/deploy/logstash

    cat > /data/deploy/logstash/logstash.conf <<-EOF
    input {
      beats {
        port => 5044
        codec => plain { charset => "UTF-8" }
      }
    }

    filter {
      grok {
        match => { "message" => "\[(?<log_time>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\s\+\d{4})\]\s+\[(?<log_status>\d+)\]\s+\[(?<log_level>[a-zA-Z]*)\]\s+(?<log_msg>.*)" }
      }
    }

    output {

        elasticsearch {
            action => "index"
            hosts => ["elasticsearch:9200"]
            index => "logstash-dev-app-%{+YYYYMMdd}"
            user => "elasticsearch_username"
            password => "elasticsearch_password"
        }

    }

    EOF

    ```

    配置部署脚本

    ```

    cat > docker-logstash.sh <<-EOF
    #!/usr/bin/env bash

    docker run -d \
      --name logstash \
      --restart always \
      --link elasticsearch:elasticsearch \
      -p 5044:5044 \
      -v /etc/timezone:/etc/timezone:ro \
      -v /etc/localtime:/etc/localtime:ro \
      -v /data/deploy/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml:ro \
      -v /data/deploy/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro \
      logstash:7.6.1

    EOF

    ```

    执行部署

    > bash docker-logstash.sh

     

    ##### kibana

    配置kibana.yml

    ```

    mkdir /data/deploy/kibana

    cat > /data/deploy/kibana/kibana.yml <<-EOF
    server.name: kibana
    server.host: "0"
    elasticsearch.hosts: [ "http://elasticsearch:9200" ]
    elasticsearch.username: "xxx"
    elasticsearch.password: "xxx"
    xpack.monitoring.ui.container.elasticsearch.enabled: true

    EOF

    ```

    配置部署脚本

    ```

    cat > docker-kibana.sh <<-EOF
    #!/usr/bin/env bash

    docker run -d \
      --name kibana \
      --restart always \
      --link elasticsearch:elasticsearch \
      -p 5601:5601 \
      -v /etc/timezone:/etc/timezone:ro \
      -v /etc/localtime:/etc/localtime:ro \
      -v /data/deploy/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml:ro \
      kibana:7.6.1

    EOF

    ```

    执行部署

    > bash docker-kibana.sh

     

    展开全文
  • Docker部署elk

    2020-11-18 13:39:07
    docker run --name elk --restart always \ -d -p 5601:5601 -p 9200:9200 -p 5044:5044 \ -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m \ -m 2048M \ --memory-swap 4096M \ -v /opt/docker/software/elk/data:/...

    启动脚本

    ## 直接运行即可
    docker run --name elk --restart always \
            -d  -p 5601:5601 -p 9200:9200 -p 5044:5044 \
            -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m \
            -m 2048M \
            --memory-swap 4096M \
            -v /opt/docker/software/elk/data:/opt \
            -v /opt/docker/software/elk/log/elasticsearch/:/var/log/elasticsearch/  \
            -v /opt/docker/software/elk/log/kibana/:/var/log/kibana/    \
            -v /opt/docker/software/elk/log/logstash/:/var/log/logstash/    \
            sebp/elk:720
    
    脚本说明:
    	--name elk	--docker启动名称
    	-p 5601:5601   --kibana访问端口
        -p 9200:9200   --es访问端口
    	-p 5044:5044   --logstash收集日志端口
        -e ES_MIN_MEM=512m --es最小内存设置
    	-e ES_MAX_MEM=2048m --es最大内存设置
    	-m 2048M	--elk可以使用 2G 的物理内存
    	--memory-swap 4096M 	--elk可以使用 2G 的分区内存
        -v  --将es的数据挂载到指定目录
    -it
    sebp/elk:720 \  --版本为720
    

    相关问题:

    	服务启动报错提示:max virtual memory areas vm.max_map_count [65530] is too low....
    	# 执行命令
        vi /etc/sysctl.conf 
            vm.max_map_count=655360
        # 刷新配置
        sysctl -p
        # 查看结果
        sysctl -a|grep vm.max_map_count
    
    展开全文
  • Docker 部署 ELK

    千次阅读 2020-03-10 21:38:24
    # 拉取 ELK + Filebeat docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.1 docker pull docker.elastic.co/kibana/kibana:7.6.1 docker pull docker.elastic.co/logstash/logstash:7.6.1 docker pu....

    下载

    # 拉取 ELK + Filebeat
    docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.1
    docker pull docker.elastic.co/kibana/kibana:7.6.1
    docker pull docker.elastic.co/logstash/logstash:7.6.1
    docker pull docker.elastic.co/beats/filebeat:7.6.1
    
    # 查看镜像
    docker images
    # 返回
    REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
    docker.elastic.co/logstash/logstash             7.6.1               d6d66afe6805        10 days ago         813MB
    docker.elastic.co/kibana/kibana                 7.6.1               f9ca33465ce3        10 days ago         1.01GB
    docker.elastic.co/elasticsearch/elasticsearch   7.6.1               41072cdeebc5        10 days ago         790MB
    docker.elastic.co/beats/filebeat                7.6.1               cd244d9a74c9        10 days ago         364MB
    

    开启 ES

    # 参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
    docker run -d -p 9201:9200 -p 9301:9300 -e "discovery.type=single-node" \
    docker.elastic.co/elasticsearch/elasticsearch:7.6.1
    
    # 修改配置文件(可选项)
    docker exec -it [CONTAINER ID] /bin/bash
    

    开启 Kibana

    # 参考:https://www.elastic.co/guide/en/kibana/current/docker.html
    docker run --link [ES_CONTAINER ID]:elasticsearch -p 5602:5601 -d \
    docker.elastic.co/kibana/kibana:7.6.1
    

    开启 Logstash

    • 配置 logstash.yml
    # 创建宿主机文件存放文件夹
    mkdir -p /usr/share/logstash/config/
    cd /usr/share/logstash/config/
    # 创建文件
    vim logstash.yml
    # 写入
    http.host: "0.0.0.0"
    xpack.management.pipeline.id: ["main"]
    # 结束
    
    • 配置 pipeline.yml
    # 创建宿主机文件
    vim pipeline.yml
    # 写入(注意空格)
     - pipeline.id: main
      path.config: "/usr/share/logstash/pipeline/logstash.conf"
    # 结束
    
    • 配置 logstash.conf
    # 创建宿主机文件存放文件夹
    mkdir -p /usr/share/logstash/pipeline/
    cd /usr/share/logstash/pipeline/
    # 创建文件
    vim logstash.conf
    # 写入
    input {
        beats { port => 5044 }
    }
    
    filter {
    	 if [project] == "Nginx" {
                    grok {
                            match => {
                                    "message" =>[
                                            "%{IPORHOST:client_ip}\s{1,}\-\s\-\s\[%{HTTPDATE:time}\]\s{1,}\"(?:%{WORD:verb}\s{1,}%{NOTSPACE:request}(?:\s{1,}HTTP/%{NUMBER:http_version})?|-)\" %{NUMBER:response}\s{1,}(?:%{NUMBER:bytes}|-)\s{1,}%{QS:referrer}\s{1,}%{QS:agent}"                
                                    ]
                            }
                    }
                    date {
                             match => ["time","dd/MMM/yyyy:HH:mm:ss Z"]
                             target => "logdate"
                    }
    
                    mutate {
                            lowercase => ["company", "project", "server", "application"]
                            remove_field => ['cloud', 'tags', 'host', 'agent', 'log', 'ecs', '@version', 'message']
                    }
    
                    ruby {
                        code => "event.set('logdate', event.get('logdate').time.localtime)"
                    }
                    geoip {
                            source => "client_ip"
                    }
    
            }
    }
    
    output {
        elasticsearch {
            hosts => ["192.168.60.221:9201"]
            index => "%{[company]}_%{[project]}_%{[server]}_%{[application]}_%{+YYYY}"
        }
    }
    # 结束
    
    • 开启 Logstash
    # 参考:https://www.elastic.co/guide/en/logstash/current/docker.html
    docker run -d -p 5046:5044 -p 9601:9600 --rm -it -v /usr/share/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
    -v /usr/share/logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml \
    -v /usr/share/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
    docker.elastic.co/logstash/logstash:7.6.1
    

    开启 Filebeat

    # 参考:https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html
    # 创建宿主机文件存放文件夹
    mkdir -p /usr/share/filebeat/
    cd /usr/share/filebeat/
    # 创建文件 filebeat.yml 
    # 修改权限
    chmod go-w /usr/share/filebeat/filebeat.yml
    # 开启 Filebeat(失败,没搞定)
    docker run -v /usr/share/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
    -v /usr/local/nginx/logs/access.log:/var/lib/docker/containers/access.log \
    docker.elastic.co/beats/filebeat:7.6.1
    
    展开全文
  • docker部署ELK

    2021-04-09 14:04:11
    ES部署 创建数据目录 mkdir -pv /data/elasticsearch/{config,data,logs} chown 1000 /data/elasticsearch/{data,logs} 修改主机配置 vim /etc/sysctl.conf 加入 vm.max_map_count=655360 sysctl -p vim /etc/...
  • Docker 部署ELK

    2019-10-06 19:35:43
    1、下载镜像 这里我们使用elk集成镜像,地址:...[root@centos-mq ~]# docker pull sebp/elk:660 注:660为elk版本 2、启动 [root@centos-mq ~]# echo "vm.max_map_count=262144" > /et...
  • Docker部署ELK

    2020-12-12 23:41:59
    Docker部署ELK 下拉镜像 max_map_count问题以及解决 配置logstash.yml 运行 docker方式 启动 / 重启 / 停止 / 状态 引用链接 下拉镜像 首先启动docker [root@localhost /]#systemctl start docker 下拉镜像 [root@...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,838
精华内容 3,135
关键字:

docker部署elk