从源码构建 Elkeid CWPP
当前社区版本中,部分组件尚未开源,主要是Elkeidup和Hub的相关组件目前仅能提供社区版二进制,所以无法提供从零到一提供完全从源码构建的构建手册。您可以通过在安装前替换package中的指定文件,或安装后替换可执行程序的方式,达到运行从源码构建的可执行程序的效果。具体文件位置和对应关系说明如下。
安装前替换
Agent
Agent部分在elkeidup deploy过程中会从源码build,所以替换package中的以下文件即可,建议解压该文件,确认该文件与目录结构与替换前的文件相同。
package/agent/v1.9.1/agent/elkeid-agent-src_1.7.0.24.tar.gz
Driver Plugin
Driver plugin同样会在elkeidup deploy过程中会从源码build,所以同样替换package中的以下文件即可,建议解压该文件,确认该文件与目录结构与替换前的文件相同。
package/agent/v1.9.1/driver/driver-src_1.0.0.15.tar.gz
其他agent plugin
其他agent plugin都是预编译好的,按照各plugin的文档,编译好后替换对应的文件即可。注意plugin存在plg格式和tar.gz格式,plg格式为可执行文件,tar.gz为压缩包。版本号目前写死在elkeidup中,需要保持一致,请勿更改。
package/agent/v1.9.1/driver/driver-src_1.0.0.15.tar.gz
package/agent/v1.9.1/baseline/baseline-default-aarch64-1.0.1.23.tar.gz
package/agent/v1.9.1/baseline/baseline-default-x86_64-1.0.1.23.tar.gz
package/agent/v1.9.1/collector/collector-default-aarch64-1.0.0.140.plg
package/agent/v1.9.1/collector/collector-default-x86_64-1.0.0.140.plg
package/agent/v1.9.1/etrace/etrace-default-x86_64-1.0.0.92.tar.gz
package/agent/v1.9.1/journal_watcher/journal_watcher-default-aarch64-1.0.0.23.plg
package/agent/v1.9.1/journal_watcher/journal_watcher-default-x86_64-1.0.0.23.plg
package/agent/v1.9.1/rasp/rasp-default-x86_64-1.9.1.44.tar.gz
package/agent/v1.9.1/scanner/scanner-default-aarch64-3.1.9.6.tar.gz
package/agent/v1.9.1/scanner/scanner-default-x86_64-3.1.9.6.tar.gz
ko
默认deploy时不会降预编译的ko拷贝到nginx中,在release界面同时会提供预编译的ko,下载预编译的ko或自行编译ko后,替换以下文件即可,文件为tar.xz格式,解压后有一个ko文件夹,格式必须相同。
package/to_upload/agent/component/driver/ko.tar.xz
Manager & ServiceDiscovery & AgentCenter
编译好对应的二进制,解压以下路径的tar.gz,然后替换好二进制后打包回tar.gz即可。
# manager
package/manager/bin.tar.gz
# service discovery
package/service_discovery/bin.tar.gz
# agent center
package/agent_center/bin.tar.gz
安装后替换
Agent 相关
Agent部分均可以通过前端上传,具体见agent发布文档
ko
拷贝对应ko和sing文件到以下目录即可,之后执行命令修改目录权限
# ko 目录
/elkeid/nginx/ElkeidAgent/agent/component/driver/ko
# 修改权限
chown -R nginx:nginx /elkeid/nginx
Manager & ServiceDiscovery & AgentCenter
暂停服务,替换对应的二进制文件,然后重启服务
# manager
systemctl stop elkeid_manager
mv new_manager_bin /elkeid/manager/manager
systemctl start elkeid_manager
# service discovery
systemctl stop elkeid_sd
mv new_sd_bin /elkeid/service_discovery/sd
systemctl start elkeid_sd
# agent center
systemctl stop elkeid_ac
mv new_ac_bin /elkeid/agent_center/agent_center
systemctl start elkeid_ac