ELK-Kafka-Filebeat

docker 环境

# 在 docker 节点执行
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com

# 安装 docker
# 参考文档如下
# https://docs.docker.com/install/linux/docker-ce/centos/ 
# https://docs.docker.com/install/linux/linux-postinstall/

# 卸载旧版本
yum remove -y docker \
docker-client \
docker-client-latest \
docker-ce-cli \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

# 设置 yum repository
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装并启动 docker
yum install -y docker-ce-19.03.11 docker-ce-cli-19.03.11 containerd.io-1.2.13

mkdir /etc/docker || true

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["${REGISTRY_MIRROR}"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

# Restart Docker
systemctl daemon-reload
systemctl enable docker
systemctl restart docker

# 关闭 防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SeLinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

# 关闭 swap
swapoff -a
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab

Docker Compose 环境

环境初始化

docker-compose 文件

elasticsearch 配置文件

logstash 配置文件

kiana 配置文件

启动

插件安装

filebeat 客户端安装

filebeat.yaml 配置

filebeat 参数说明

  • type: 输入类型。

  • enabled: 设置配置是否生效。 true 表示生效, false 表示不生效

  • paths: 需要监控的日志文件路径。多个日志路径另起一行

  • hosts: 消息队列 Kafka 实例接入点

  • topic: 日志输出到消息队列 Kafka 的 Topic。 请指定已经创建的 Topic

指定 Host

更多配置

  • 有关 filebeat 的 log input 的配置介绍见官网文档:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html

  • 有关 filebeat output 到 kafka 的配置介绍见官方文档:https://www.elastic.co/guide/en/beats/filebeat/current/kafka-output.html

配置 Logstash 管道

logstash 参数说明

input

  • bootstrap_servers: 消息队列 Kafka 实例接入点

  • group_id: 指定已创建的 Consumer Group 名称

  • topics: 指定为已创建的 Topic 名称(不存在自动创建), 需要与 Filebeat 中配置的 Topic 名称保持一致

  • codec: 设置未 Json, 表示解析 JSON 格式字段

output

  • hosts: ES 访问地址

  • user: ES 用户名

  • password: ES密码

  • index: 索引名称

  • 有关 logstash 中 kafka-input 的配置介绍见官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html

  • 有关 logstash 中 grok-filter 的配置介绍见官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

  • 有关 logstash 中 output-elasticsearch 的配置介绍见官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html

查看 kafka 日志消费状

kibana 索引

Last updated