暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ELK容器部署运行

孤岛鱼夫 2020-08-18
470

【历史库存文档】用容器方式运行,将elk的环境使用容器编排的方式来实现。过程如下:

filebeat =>> redis =>> logstash =>> elasticsearch =>> kibana

服务编排目录结构:

  1. tree ./

  2. ./

  3. ├── docker-compose.yml

  4. ├── elasticsearch

  5.    └── elasticsearch.yml

  6. ├── logstash

  7.    └── logstash.conf

  8. └── redis

  9. └── redis.conf

docker-compose.yml 内容:

  1. version: '3'


  2. services:


  3. elasticsearch:

  4. image: elasticsearch:6.4.2

  5. container_name: elasticsearch

  6. hostname: elasticsearch


  7. ports:

  8. - "9200:9200"

  9. - "9300:9300"


  10. volumes:

  11. - ./elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro

  12. environment:

  13. ES_JAVA_OPTS: "-Xmx1024m -Xms1024m"

  14. networks:

  15. - elk


  16. logstash:

  17. image: logstash:6.4.2

  18. container_name: logstash

  19. hostname: logstash

  20. command: logstash -f /etc/logstash/conf.d/logstash.conf

  21. volumes:

  22. - ./logstash:/etc/logstash/conf.d

  23. ports:

  24. - "5000:5000"

  25. networks:

  26. - elk



  27. kibana:

  28. image: kibana:6.4.2

  29. container_name: kibana

  30. hostname: kibana

  31. environment: #在kibana中指定es地址,使用容器名称进行连接

  32. - ELASTICSEARCH_URL=http://elasticsearch:9200

  33. ports:

  34. - "5601:5601"

  35. networks:

  36. - elk


  37. redis:

  38. container_name: redis

  39. hostname: redis

  40. image: redis

  41. ports:

  42. - "6379:6379"

  43. volumes:

  44. # - /data/redis:/data/redis

  45. - ./redis/redis.conf:/opt/server/redis/redis.conf

  46. command: redis-server /opt/server/redis/redis.conf


  47. networks:

  48. - elk



  49. networks:

  50. elk:

  51. driver: bridge

elasticsearch.yml 内容:

  1. cluster.name: "docker-cluster"

  2. network.host: 0.0.0.0

  3. discovery.zen.minimum_master_nodes: 1

  4. discovery.type: single-node

logstash.conf 内容:

  1. input {


  2. redis {


  3. host => "192.168.2.134"

  4. port => "6379"

  5. key => "filebeat"

  6. data_type => "list"

  7. password => "123456789"

  8. threads => "5"



  9. }


  10. }


  11. filter {


  12. date {

  13. match => [ "timestamp","dd/MMM/YYYY:H:m:s Z" ]

  14. remove_field => "timestamp"

  15. }



  16. }


  17. output {


  18. elasticsearch {


  19. hosts => "elasticsearch:9200"

  20. index => "logstash-%{+YYYY.MM.dd}"

  21. document_type => "java_logs"

  22. }


  23. }

redis.conf 内容:redis配置只修改几个选项,其他保持了默认,修改内容如下:

  1. bind 0.0.0.0 #可连接地址段,这里设置允许所有

  2. requirepass 123456789 #密码

远程数据源节点日志收集工具部署使用filebeat。同样采用容器来运行。

filebeat的部署内容如下:

  1. version: '3'


  2. services:


  3. filebeat:

  4. image: elastic/filebeat:6.4.2

  5. container_name: filebeat

  6. hostname: filebeat

  7. privileged: true

  8. volumes:

  9. - ./filebeat.yml:/usr/share/filebeat/filebeat.yml

  10. - /logs/app:/logs/app

filebeat.yml 内容如下:

  1. filebeat.inputs:

  2. - type: log

  3. enabled: true

  4. paths:

  5. - "/logs/app/*.log"

  6. document_type: "java_logs"

  7. path: ${path.config}/modules.d/*.yml

  8. reload.enabled: true

  9. # tail_files: true #如果不收集以前的历史日志,这里要启用该选项,只收集最新的日志。


  10. output.redis:

  11. hosts: ["192.168.2.134:6379"]

  12. port: 6379

  13. password: "123456789" #这里密码要和redis中设置的一样,否则连不上

  14. key: "filebeat"

  15. db: 0

  16. timeout: 5








                     

文章转载自孤岛鱼夫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论