sysom1/README.md

8.0 KiB
Raw Blame History

简介

致力于打造一个集主机管理、配置部署、监控报警、异常诊断、安全审计等一系列功能的自动化运维平台。 探索创新的sysAK、ossre诊断工具及高效的LCCLibbpf Compiler Collection开发编译平台和netinfo网络抖动问题监控系统等 实现系统问题的快速上报、分析与解决,提升集群的全自动运维效率,构建大规模集群运维生态链。

目标

通过社区合作,打造出一个自动化运维平台,涵盖云场景中各种典型服务场景,包括线上问题分析诊断、资源和异常事件监控、系统修复业务止血, 安全审计和CVE补丁推送等各种功能提供强大的底层系统运维能力融合到统一的智能运维平台实现自动化运维。

功能

  • 主机管理
  • 配置中心
  • 安全审计
  • 监控报警
  • 智能问题诊断
  • 发布部署

安装部署

1. 编译部署

1.1 依赖

  • nodejs >= 12.0.0
  • python >= 3.6
  • git
  • tar
  • wget

1.2 编译

  • 依赖安装

    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 为打包时的时间,因此每次打包时生成的压缩包名称都是不同的

1.3 热补丁编译机builder设置

用户需要使用热补丁中心的功能时,需要配置热补丁的编译机。

  • 在单机部署的情况下,可以忽略本步骤,部署完毕即可使用

  • 在多机部署的情况下请确保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否则服务会不可用 。

1.4 部署

  • 解压 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>
      
      • arg1 : 部署目录
      • arg2 : 内网IP主要是方便内网通讯用户需要保证内网能通
      • arg3 : 外网IP浏览器可以访问到的IP地址)
    • 使用 deploy.sh 脚本进行一键部署

      如果没有公网IP均使用内网IP即可实际部署时可以替换成公网IP

      ./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
      

2. RPM打包部署

2.1 依赖

  • nodejs >= 12.0.0
  • python >= 3.6
  • git
  • tar
  • wget
  • Rpmbuild

2.2 编译

  • 依赖安装

    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的条件如rpmbuildpython3命令等。
    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 包时,以实际的名称为准。

2.3 部署

  • 安装 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
    • 默认配置使用的nginx对外端口为80可以通过 export SERVER_PORT=xxx 来设置
    • 默认配置的内网IP是通过 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
    

3. 容器化部署

3.1 基础服务部署

docker build -t sysom-base -f docker/sysom_base_dockerfile .
docker run -idt --privileged --name sysom-base sysom-base

可以通过修改 docker/sysom_base_dockerfile 使能不同的微服务

4. 通过 WEB 前端访问

部署成功之后,可以通过访问部署时指定的公网/私网地址访问 SysOM前端比如 http://172.22.3.238

其它问题见FAQ

https://gitee.com/anolis/sysom/wikis/SysOM%20FAQ