swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6

上篇:https://blog.csdn.net/qq_35299863/article/details/83658048
之前介绍了集群下tengine代理elasticsearch集群,以及kibana实现CI/CD,现在介绍如何做一套ELK集群

软件环境:filebeat-5.6.11 + redis-3.2 + logstash-5.6 + kibana-5.6 + es5.6
filebeat是用来收集本机日志,所以没用docker,其他软件都是跑在集群下的。
1:首先把redis搞起来:filebeat–>redis–>logstash–>es–>kibana
docker镜像(由于redis是有状态的,我需要指定一台跑我的镜像,直接用compose文件):
命令:docker stack deploy -c redis-compose.yaml test
swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第1张图片
version: ‘3’

services:
redis:
image: redis:3.2
command: redis-server --appendonly yes
ports:
- “6379:6379”
volumes:
- /var/lib/docker/redis_data:/data
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime
deploy:
replicas: 1
placement:
constraints: [node.hostname == swarmMaster66.cdel.com]
networks:
default:
external:
name: cdel
这个时候redis就可以用了,快吧!
在这里插入图片描述
2:接下来是filebeat,下载filebeat-5.6.11-linux-x86_64.tar包
https://www.elastic.co/downloads/past-releases/filebeat-5-6-11
官网下载后解压,进入目录,配置filebeat.yml
swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第2张图片
filebeat.prospectors:

  • type: log
    paths:
    • /logs路径
      tags: [“192.168.192.65-tengine”]
  • type: log
    paths:
    • /logs路径
      tags: [“192.168.192.65-jenkins”]
      output.redis:
      hosts: [“192.168.192.66”]
      port: 6379
      key: “test”
      编辑保存,开启命令:nohup ./filebeat -e -c filebeat.yml > /dev/null &
      在这里插入图片描述
      这个时候keys是有的,当你把logstash配置好后就被消费了
      3:接下来是配置logstash
      docker pull logstash:5.6
      打tag,推到我们自己的镜像仓库,然后把Dockerfile以及配置放在git仓库
      看下配置:
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第3张图片
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第4张图片
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第5张图片
      git上完事了,接下来是jenkins上创建一个自由风格的job:
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第6张图片
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第7张图片
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第8张图片
      第一次构建先把更新去掉,然后去集群创建项目,之后放开:
      docker service create --name test_logstash --network cdel --update-failure-action rollback harbor.xxx.com/swarm/test_logstash:1
      完事了,这个时候logstash已经把日志发送给了es集群下,你可以去kibana下创建索引了
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第9张图片
      默认这样的页面就说明成功啦!!
      swarm集群下搭建ELK:filebeat-5.6.11+redis-3.2+logstash-5.6+kibana-5.6+es5.6_第10张图片
      有可能日志没产生,索引暂时没法创建,一旦有日志,索引那里就不会提示报错了
      欢迎留言

你可能感兴趣的:(docker-swarm,ELK集群)