同步操作将从 anolis/sysom 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
致力于打造一个集主机管理、配置部署、监控报警、异常诊断、安全审计等一系列功能的自动化运维平台。 探索创新的sysAK、ossre诊断工具及高效的LCC(Libbpf Compiler Collection)开发编译平台和netinfo网络抖动问题监控系统等, 实现系统问题的快速上报、分析与解决,提升集群的全自动运维效率,构建大规模集群运维生态链。
通过社区合作,打造出一个自动化运维平台,涵盖云场景中各种典型服务场景,包括线上问题分析诊断、资源和异常事件监控、系统修复业务止血, 安全审计和CVE补丁推送等各种功能,提供强大的底层系统运维能力,融合到统一的智能运维平台,实现自动化运维。
依赖安装
dnf module install nodejs:16 -y
npm install -g yarn
dnf install git tar wget -y
编译打包
git clone https://gitee.com/anolis/sysom.git
cd sysom
bash package.sh
输出包含如下结果表示编译成功: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dbTldAef-1676539163032)(https://foruda.gitee.com/images/1674977326579767317/e08cc909_643601.png "编译日志.png")]
执行完之后使用 tree -L 1
查看当前文件夹分布如下:
.
├── LICENSE
├── package_rpm_offline.sh
├── package_rpm_online.sh
├── package.sh
├── README.md
├── script
├── sysomRelease-20230129142347.tar.gz
├── sysom_server
├── sysom_web
└── tools
注意:打包出的 release 包的命名格式为
sysomRelease-xxx.tar.gz
,其中xxx
为打包时的时间,因此每次打包时生成的压缩包名称都是不同的
用户需要使用热补丁中心的功能时,需要配置热补丁的编译机。
在单机部署的情况下,可以忽略本步骤,部署完毕即可使用
在多机部署的情况下,请确保builder机器与server机器在同一网段内。需要配置sysom/script/server/6_sysom_hotfix_builder下的init.sh以及sysom_server/sysom_hotfix_builder下的builder.ini
#! /bin/bash
SERVER_DIR="sysom_server"
HOTFIX_BUILDER_DIR=${SERVER_DIR}/sysom_hotfix_builder
VIRTUALENV_HOME=${SERVER_HOME}/virtualenv
SERVICE_NAME=sysom-hotfix-builder
NFS_SERVER_IP=${SERVER_LOCAL_IP} # 将NFS_SEVER_IP配置为sysom主服务器的内网ip地址
builder.ini
[sysom_server]
server_ip = http://127.0.0.1 # sysom主服务器的ip地址
account = account # 用于登录sysom的账户
password = password # 用于登录sysom的密码
[cec]
cec_url = redis://127.0.0.1:6379 # 此处指向sysom主服务器的redis地址,填写内网ip地址
[builder]
hotfix_base = /hotfix_build/hotfix # 此处配置hotfix构建的工作目录
nfs_dir_home = /usr/local/sysom/server/builder/hotfix # 此处构建与sysom主服务器共享目录的路径
package_repo = /hotfix/packages # 缓存设定路径
注意:在多机部署的情况下,角色为builder的机器可以在/sysom/server/conf下仅使能[base]和[hotfix-builder]这两个服务即可;此外,需要修改server的redis配置文件(如/etc/redis.conf),允许其他机器访问server的redis,否则服务会不可用 。
解压 release 包
注意下面压缩包的名称要替换成实际打包出的 release 包的名称
tar -zxvf sysomRelease-20230129142347.tar.gz
cd sysomRelease-20230129142347
解压完成后,Release 包内的文件分布如下:
.
├── clear.sh
├── deploy.sh
├── script
├── sysom_server
├── sysom_web
└── tools
使用 deploy.sh
脚本进行部署
首先使用 ifconfig
查看当前机器的IP => 比如:172.22.3.238
deploy.sh
部署脚本参数说明
bash deploy.sh <部署目录> <内网IP> <外网IP>
使用 deploy.sh
脚本进行一键部署
如果没有公网IP,均使用内网IP即可,实际部署时可以替换成公网IP
# 通过环境变量控制需要使能的服务(以下是一个常用默认搭配)
export DEPLOY_SERVER_LIST=sysom_api,sysom_diagnosis,sysom_channel,sysom_monitor_server,sysom_log,sysom_vmcore,sysom_migration,sysom_cluster_health,sysom_alarm,sysom_cmg,sysom_vul
# 使用部署脚本部署
./deploy.sh /usr/local/sysom 172.22.3.238 172.22.3.238
当服务日志输出下列日志表示部署成功:
Oct 10 12:58:51 mfeng bash[3217754]: /usr/local/sysom/init_scripts/server
Oct 10 12:58:51 mfeng bash[3217754]: + for dir in `ls`
Oct 10 12:58:51 mfeng bash[3217754]: + '[' -d init.sh ']'
Oct 10 12:58:51 mfeng bash[3217754]: + for dir in `ls`
Oct 10 12:58:51 mfeng bash[3217754]: + '[' -d stop.sh ']'
Oct 10 12:58:51 mfeng bash[3217754]: + sed -i 's/^FIRST_INIT_DONE=0/FIRST_INIT_DONE=1/g' /usr/local/sysom/init_scripts/server/init.sh
依赖安装
dnf module install nodejs:16 -y
npm install -g yarn
dnf install git tar wget rpm-build -y
生成 RPM 包
# 前端打包需要本地已经具备yarn环境,如不具备,需要提前部署yarn环境,然后进到 sysom_web 目录执行 yarn 命令安装依赖包。
# mac 环境下 yarn 安装可以采用脚本:curl -o- -L https://yarnpkg.com/install.sh | bash
# 安装yarn完成后,执行下列命令打包项目
# 由于是制作rpm包,因此也需要打包具备制作rpm的条件,如rpmbuild,python3命令等。
bash package_rpm_online.sh
打包完成后,生成的 RPM 包被存放在 /root/rpmbuild/RPMS/x86_64
下面,使用 tree -L 1 /root/rpmbuild/RPMS/x86_64
查看的结果如下:
/root/rpmbuild/RPMS/x86_64
└── sysom-2.0-1.an8.x86_64.rpm
注意:RPM包的名称会随 sysom 的版本、打包机器的架构和发行版本而变化,因此实际使用 RPM 包时,以实际的名称为准。
安装 rpm 包
rpm -ivh sysom-2.0-1.an8.x86_64.rpm
# 或 yum install -y sysom-2.0-1.an8.x86_64.rpm
/usr/local/sysom
下export SERVER_PORT=xxx
来设置ip -4 route
命令查找的第一个IP,可以通过 export SERVER_LOCAL_IP=xxx.xxx.xxx.xxx
来设置启动
# 使用以下命令进行启动:
bash -x /usr/local/sysom/init_scripts/server/init.sh
当服务日志输出下列日志表示部署成功:
Oct 10 12:58:51 mfeng bash[3217754]: /usr/local/sysom/init_scripts/server
Oct 10 12:58:51 mfeng bash[3217754]: + for dir in `ls`
Oct 10 12:58:51 mfeng bash[3217754]: + '[' -d init.sh ']'
Oct 10 12:58:51 mfeng bash[3217754]: + for dir in `ls`
Oct 10 12:58:51 mfeng bash[3217754]: + '[' -d stop.sh ']'
Oct 10 12:58:51 mfeng bash[3217754]: + sed -i 's/^FIRST_INIT_DONE=0/FIRST_INIT_DONE=1/g' /usr/local/sysom/init_scripts/server/init.sh
docker build -t sysom-base -f docker/sysom_base_dockerfile .
docker run -idt --privileged --name sysom-base sysom-base
可以通过修改 docker/sysom_base_dockerfile 使能不同的微服务
部署成功之后,可以通过访问部署时指定的公网/私网地址访问 SysOM前端,比如 http://172.22.3.238
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。