laincloud / rebellion

LAIN's component for collecting logs of LAIN and its applications
MIT License
3 stars 4 forks source link
layer1

Rebellion

Build Status MIT license codecov MIT license

Introduction

Rebellion 是 LAIN 中负责管理日志数据的 layer0 组件, 以 host 模式运行在 docker 上。但 Rebellion 并不是单进程的容器,而是由 supervisord 管理的多进程容器。Rebellion 主要包括两个部分:

Rebellion 目前主要处理三类日志流:

Build and Run

Build image

已经直接配置了 docker hub 上的自动构建。

Run

Rebellion 的运行是以 Host 模式运行的 Container,目前已经作为 Service 在 boostrap 时就已经部署并运行了。 Service 中运行的指令为:

/usr/bin/docker run \
          --name %n --rm --network=host \
          -e LAINLET_PORT={{ LAINLET_PORT }} \
          -v /data/lain/volumes/:/data/lain/volumes/:ro \
          -v /data/lain/rebellion/var/lib/filebeat/:/var/lib/filebeat \
          -v /data/lain/rebellion/logs/filebeat:/var/log/filebeat/ \
          -v /data/lain/rebellion/logs/supervisor:/var/log/supervisor/ \
          -v /var/log/:/var/log/syslog/:ro \
          laincloud/rebellion:{{ rebellion_version }}

运行时的参数说明如下

目前由于所有的日志都发送至Kafka,所以部署时集群应该在etcd中配置了/lain/config/kafka

Upgrade

由于 v2.3.02.0.x 配置及收集工具不兼容,因此无法直接从 2.0.x 升级到 v2.3.x 及更高版本,需要先升级至 v2.3.0

2.0.x -> v2.3.0

执行 LAIN 的 ansible 任务 rebellion-upgrade-2.0.x-to-v2.3.0

ansible-playbook -i playbooks/cluster -e "role=rebellion-upgrade-2.0.x-to-v2.3.0" playbooks/role.yaml

v2.3.0 -> v2.3.x (x > 0)

执行 LAIN 的 ansible 任务 rebellion-upgrade,参数 upgrade_version 为目的版本。

例如升级到 v2.3.1

ansible-playbook -i playbooks/cluster -e "role=rebellion-upgrade" -e "upgrade_version=v2.3.1" playbooks/role.yaml

升级时会丢失少量日志,建议在日志输出量较低的时间段进行。

License

Rebellion 遵循MIT开源协议.