Elkeid 完整部署

1、单机docker快速部署 (单机测试环境推荐)

注:宿主机请优先使用centos 7.x 或 debian 9/10,容器内的服务依赖了systemd,而systemd使用了cgroup,容器内外systemd版本相差过大会导致容器内的systemd运行异常,无法启动相应服务。

1.1、导入镜像

# 从release下载的是分卷的镜像,需要先合并镜像
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.00
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.01
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.02
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.03
cat elkeidup_image_v1.9.1.tar.gz.* > elkeidup_image_v1.9.1.tar.gz

#导入镜像
docker load -i elkeidup_image_v1.9.1.tar.gz

1.2、运行容器

docker run -d --name elkeid_community \
  --restart=unless-stopped \
  -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
  -p 8071:8071 -p 8072:8072 -p 8080:8080 \
  -p 8081:8081 -p 8082:8082 -p 8089:8080  -p 8090:8090\
  --privileged \
  elkeid/all-in-one:v1.9.1

1.3、设置对外IP

使用本机IP,不能使用127.0.0.1。

docker exec -it elkeid_community bash

cd /root/.elkeidup/

# 命令为交互式
./elkeidup public {ip}


./elkeidup agent init
./elkeidup agent build
./elkeidup agent policy create

cat ~/.elkeidup/elkeid_passwd

部署过程中遇到Elkeid社区版信息收集声明,请参考自动下载缺失预编译ko服务开启提示Agent Install Remark

1.4、访问前端console并安装Agent

顺利安装完成后,/root/.elkeidup/elkeid_passwd文件记录了各组件的密码和相关的url。

初始密码在构建镜像的时候已经固定了的,为了安全性请不要用于生产环境

字段说明
elkeid_consoleconsole账号密码
elkeid_hub_frontendhub前端账号密码
grafanagrafana账号密码
grafanagrafana 地址
elkeid_hub_frontendelkeid hub前端地址
elkeid_consoleelkeid console地址
elkeid_service_discovery服务发现地址

访问elkeid_console,按照Console使用手册-安装配置 界面的命令进行Agent安装部署。

2、使用elkeidup进行完整部署

2.1、配置目标机器root用户ssh免密登录

如果部署机器为本机,依旧需要配置本机免密登录,登录耗时需要小于1s。 可用以下命令进行验证,两次date命令的输出结果需要相同。

date && ssh root@{ip} date
# 输出时间差小于1s

2.2、解压release产物并配置目录

  • 下载release产物(分卷压缩包),并合并压缩包
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_package_v1.9.1.tar.gz.00
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_package_v1.9.1.tar.gz.01
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_package_v1.9.1.tar.gz.02
cat elkeidup_package_v1.9.1.tar.gz.* > elkeidup_package_v1.9.1.tar.gz

也可以参考从源码构建 Elkeid,自行编译和构建package包。

如果之前安装过,请删除/root/.elkeidup/elkeid文件夹,避免造成干扰

  • 解压release产物并配置目录
mkdir -p /root/.elkeidup && cd /root/.elkeidup
mv {DownloadDir}/elkeidup_package_v1.9.1.tar.gz elkeidup_package_v1.9.1.tar.gz
tar -xf elkeidup_package_v1.9.1.tar.gz
chmod a+x /root/.elkeidup/elkeidup

2.3、生成并修改config.yaml

ip为本机非127.0.0.1 ip,若不为单机部署,请参考资源手册修改config.yaml

cd /root/.elkeidup
./elkeidup init --host {ip}
mv config_example.yaml config.yaml

2.4、部署

cd /root/.elkeidup

# 命令为交互式
./elkeidup deploy

部署过程中遇到Elkeid社区版信息收集声明,请参考自动下载缺失预编译ko服务开启提示Agent Install Remark

2.5、构建Agent

cd /root/.elkeidup

./elkeidup agent init
./elkeidup agent build
./elkeidup agent policy create

2.6、访问前端console并安装Agent

顺利安装完成后,执行cat /root/.elkeidup/elkeid_passwd将看到各组件的随机生成的密码和相关的url。

字段说明
elkeid_consoleconsole账号密码
elkeid_hub_frontendhub前端账号密码
grafanagrafana账号密码
grafanagrafana 地址
elkeid_hub_frontendelkeid hub前端地址
elkeid_consoleelkeid console地址
elkeid_service_discovery服务发现地址

访问elkeid_console,按照Console使用手册-安装配置 界面的命令进行Agent安装部署。

3、Agent Install Remark

  • Driver模块依赖预编译ko,具体支持列表参考:ko_list
  • 正常情况下,在Agent安装完成后,需要10min左右Driver模块才能正常工作(涉及到KO自动下载和安装)。
  • Driver是否存在的方式:lsmod | grep hids_driver
    • 如果测试机器kernel版本不在支持列表中,请自行编译ko文件和生成sign文件(sha256),并将其导入Nginx中。
    • 如果在执行elkeidup deploy中未同意声明,也需要自行编译ko或下载Release中对应的预编译ko(支持列表)和sign文件,并将其导入Nginx中。

3.1、ko导入Nginx方法

ko/sign文件的格式应该遵循:hids_driver_1.7.0.10_{uname -r}_{arch}.ko/sign格式, 文件需要放置在nginx对应服务器的:/elkeid/nginx/ElkeidAgent/agent/component/driver/ko下,并修改权限chown -R nginx:nginx /elkeid/nginx。放置完成后,重启Agent即可。

4、HTTPS配置

请参考Elkeid https配置文档

5、重装指定组件

如果部分组件有更新,或者重新编译了部分组件,可以使用elkeidup reinstall命令重新安装指定组件。 例如 release:v1.9.1.1 中更新了Hub社区版,可以使用以下命令进行重新安装。

# {v1.9.1.1} 为 v1.9.1.1 解压后的package目录
# reinstall hub
cp {v1.9.1.1}/package/hub/hub.tar.gz /root/.elkeidup/package/hub/hub.tar.gz
cp {v1.9.1.1}/package/hub_leader/hub_leader.tar.gz /root/.elkeidup/package/hub_leader/hub_leader.tar.gz

/root/.elkeidup/elkeidup reinstall --component Hub
/root/.elkeidup/elkeidup reinstall --component HubLeader