- 前言
- 1 环境
- 2 拉取镜像
- 3 创建自定义网络
- 4 elasticsearch配置
- 4.1 创建目录
- 4.2 配置elasticsearch.yml文件
- 5 kibana配置
- 5.1 配置kibana.yml文件
- 6 logstash配置
- 6.1 logstash.yml文件
- 6.2 my.conf文件
- 7 filebeat配置
- 7.1 创建测试目录
- 7.2 配置filebeat.yml文件
- 8 docker-compose.yml文件配置
- 8.1 配置内容
- 8.2 启动测试
进行安装配置前先安装好docker和docker-compose
1 环境CentOS Linux release 7.4.1708 (Core)
2 拉取镜像docker pull elasticsearch:7.16.1 docker pull kibana:7.16.1 docker pull logstash:7.16.1 docker pull elastic/filebeat:7.16.13 创建自定义网络
docker network create somenetwork4 elasticsearch配置 4.1 创建目录
/mydata/elk/elasticsearch/logs
/mydata/elk/elasticsearch/data
/mydata/elk/elasticsearch/conf
存放位置:/mydata/elk/elasticsearch/conf
配置内容:
# default configuration in docker cluster.name: "elasticsearch" #集群名 network.host: 0.0.0.0 #主机ip #network.bind_host: 0.0.0.0 #cluster.routing.allocation.disk.threshold_enabled: false #node.name: es-master #node.master: true #node.data: true http.cors.enabled: true #允许跨域,集群需要设置 http.cors.allow-origin: "*" #跨域设置 #http.port: 9200 #transport.tcp.port: 9300 #discovery.zen.minimum_master_nodes: 1 #discovery.zen.ping.unicast.hosts: *.*.*.*:9300, *.*.*.*:9301, *.*.*.*:93025 kibana配置 5.1 配置kibana.yml文件
存放位置:/mydata/elk/kibana/conf
配置内容:
## Default Kibana configuration for docker target server.name: "kibana" ## 必须设置为0.0.0.0才能访问到elasticsearch server.host: "0.0.0.0" ## host的公网ip,也可以填写docker-compose.yml中elasticsearch的容器名如 "http://elasticsearch:9200"(前提是同属于一个docker network,且类型为bridge) elasticsearch.hosts: [ "http://192.168.226.135:9200" ] #中文模式 i18n.locale: "zh-CN"6 logstash配置 6.1 logstash.yml文件
存放位置:/mydata/elk/logstash
配置内容:
http.host: "0.0.0.0" #配置elasticsearch集群地址 xpack.monitoring.elasticsearch.hosts: [ "http://192.168.226.135:9200" ] #允许监控 xpack.monitoring.enabled: false #目录为挂载目录 path.config: /usr/share/logstash/conf/my.conf6.2 my.conf文件
存放位置:/mydata/elk/logstash/conf
配置内容:
input { beats { port => 5044 client_inactivity_timeout => 36000 } } output { elasticsearch { hosts => ["http://192.168.226.135:9200"] index => "myindex-%{+YYYY.MM}" } }7 filebeat配置 7.1 创建测试目录
项目日志目录:/var/log/logapp
放入日志文件:xx.log
存放位置:/mydata/elk/filebeat/conf
配置内容:
# 定义info1应用的input类型、以及存放的具体路径 filebeat.inputs: - type: log enabled: true paths: - /var/log/logapp/*.log tags: ["logapp"] fields: index: logapp #============================= Filebeat modules =============================== filebeat.config.modules: # Glob pattern for configuration loading path: ${path.config}/modules.d/*.yml # Set to true to enable config reloading reload.enabled: true # ============================== logstash ===================================== output.logstash: hosts: ["192.168.226.135:5044"] #192.168.226.135为logstash安装的服务器ip enabled: true #============================== Kibana ===================================== setup.kibana: host: "192.168.226.135:5601" #============================== elasticsearch ===================================== #output.elasticsearch: # hosts: ["192.168.226.135:9200"] # enabled: true8 docker-compose.yml文件配置 8.1 配置内容
version: "3.4" #版本号 services: ########## elk日志套件(镜像版本最好保持一致) ########## elasticsearch: #服务名称 container_name: elasticsearch #容器名称 image: elasticsearch:7.16.1 #使用的镜像 elastisearch:分布式搜索和分析引擎,提供搜索、分析、存储数据三大功能 restart: on-failure #重启策略 1)no:默认策略,当docker容器重启时,服务也不重启 2)always:当docker容器重启时,服务也重启 3)on-failure:在容器非正常退出时(退出状态非0),才会重启容器 ports: #避免出现端口映射错误,建议采用字符串格式 - "9200:9200" - "9300:9300" environment: #环境变量设置 也可在配置文件中设置,environment优先级高 - discovery.type=single-node #单节点设置 - bootstrap.memory_lock=true #锁住内存 提高性能 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置启动内存大小 默认内存/最大内存 ulimits: memlock: soft: -1 hard: -1 volumes: #挂载文件 - /mydata/elk/elasticsearch/data:/usr/share/elasticsearch/data - /mydata/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - /mydata/elk/elasticsearch/logs:/usr/share/elasticsearch/logs networks: #网络命名空间 用于隔离服务 - somenetwork kibana: container_name: kibana image: kibana:7.16.1 #kibana:数据分析可视化平台 depends_on: - elasticsearch restart: on-failure ports: - "5601:5601" volumes: - /mydata/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml networks: - somenetwork logstash: container_name: logstash image: logstash:7.16.1 #logstash:日志处理 command: logstash -f /usr/share/logstash/conf/my.conf depends_on: - elasticsearch restart: on-failure ports: - "9600:9600" - "5044:5044" volumes: #logstash.conf日志处理配置文件 格式:#输入 input{} #分析、过滤 filter{} #输出 output{} - /mydata/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml - /mydata/elk/logstash/conf/:/usr/share/logstash/conf/ networks: - somenetwork filebeat: container_name: filebeat image: elastic/filebeat:7.16.1 #filebeat:轻量级的日志文件数据收集器,属于Beats六大日志采集器之一 depends_on: - elasticsearch - logstash - kibana restart: on-failure volumes: #filebeat.yml配置.log文件的日志输出到logstash #同时配置挂载需要扫描得日志目录,因为扫描的是filebeat容器内的文件路径 - /mydata/elk/filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml - /var/log/logapp:/var/log/logapp networks: - somenetwork #使用自定义的网桥名字 networks: somenetwork: external: true8.2 启动测试
命令:docker-compose up -d
kibana测试:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)