美文网首页
Docker-Compose部署ELK

Docker-Compose部署ELK

作者: ananRunner | 来源:发表于2021-05-28 14:06 被阅读0次

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

总结,应用服务生产日志,通过Logger产生日志并输出;Logstash通过http接收应用服务产生的日志;Elasticsearch为日志提供全文检索功能;kibana为Elasticsearch提供图形化界面

部署ELK

本文在Linux上部署,以/opt作为根目录进行说明。

1创建目录和文件

1)创建docker-elk目录,在此目录创建文件和其他目录

mkdir /opt/docker_elk

2)创建logstash配置文件

mkdir /opt/docker_elk/logstash
touch  /opt/docker_elk/logstash/logstash.conf

3)配置logstash.conf,其内容如下

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json
  }
}
output {
  elasticsearch {
    hosts => "es:9200"
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

在这里指定了输入的日志的端口是4560,那么下面对外暴露的端口也必须是4560。
4)创建docker-compose.yml文件

mkdir /opt/docker_elk/docker-compose.yml
2配置docker-compose并启动

打开docker-compose.yml,

cd /opt/docker_elk
vi docker_compose.yml

配置内容如下:

version: '3.7'
services:
  elasticsearch:
    image: elasticsearch:7.6.2
    container_name: elasticsearch
    privileged: true
    user: root
    environment:
      #设置集群名称为elasticsearch
      - cluster.name=elasticsearch 
      #以单一节点模式启动
      - discovery.type=single-node 
      #设置使用jvm内存大小
      - ES_JAVA_OPTS=-Xms512m -Xmx512m 
    volumes:
      - /opt/docker_elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
      - /opt/docker_elk/elasticsearch/data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300

  logstash:
    image: logstash:7.6.2
    container_name: logstash
    ports:
       - 4560:4560
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    volumes:
      #挂载logstash的配置文件
      - /opt/docker_elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf 
    depends_on:
      - elasticsearch 
    links:
      #可以用es这个域名访问elasticsearch服务
      - elasticsearch:es 
    

  kibana:
    image: kibana:7.6.2
    container_name: kibana
    ports:
        - 5601:5601
    privileged: true
    links:
      #可以用es这个域名访问elasticsearch服务
      - elasticsearch:es 
    depends_on:
      - elasticsearch 
    environment:
      #设置访问elasticsearch的地址
      - elasticsearch.hosts=http://es:9200 
   

这里使用privileged设置为true是赋予这个容器root权限。然后启动

docker-compose up -d

在启动时,如果Elasticsearch启动报错,说/usr/share/elasticsearch/data下的文件无权限,那么需要给宿主机授予读写权限

chmod 777 /opt/docker_elk/elasticsearch/data

若启动报错,需要先关闭并删除容器后再重新启动。关闭删除命令:

docker-compose down
打开kibana

1)http://ip:5601,访问Kibana web界面。点击左侧设置,进入Management界面

相关文章

网友评论

      本文标题:Docker-Compose部署ELK

      本文链接:https://www.haomeiwen.com/subject/gmjssltx.html