长期支持版本

    社区创新版本

      智能诊断部署指南

      准备工作

      部署 gala-gopher

      1. 准备 BTF 文件

      **如果Linux内核支持 BTF,则不需要准备 BTF 文件。**可以通过以下命令来查看Linux内核是否已经支持 BTF:

      cat /boot/config-$(uname -r) | grep CONFIG_DEBUG_INFO_BTF
      

      如果输出结果为CONFIG_DEBUG_INFO_BTF=y,则表示内核支持BTF。否则表示内核不支持BTF。 如果内核不支持BTF,需要手动制作BTF文件。步骤如下:

      1. 获取当前Linux内核版本的 vmlinux 文件

        vmlinux 文件存放在 kernel-debuginfo 包里面,存放路径为 /usr/lib/debug/lib/modules/$(uname -r)/vmlinux

        例如,对于 kernel-debuginfo-5.10.0-136.65.0.145.oe2203sp1.aarch64,对应的vmlinux路径为/usr/lib/debug/lib/modules/5.10.0-136.65.0.145.oe2203sp1.aarch64/vmlinux

      2. 制作 BTF 文件

        基于获取到 vmlinux 文件来制作 BTF 文件。这一步可以在自己的环境里操作。首先,需要安装相关的依赖包:

        # 说明:dwarves 包中包含 pahole 命令,llvm 包中包含 llvm-objcopy 命令
        yum install -y llvm dwarves
        

        执行下面的命令行,生成 BTF 文件。

        kernel_version=4.19.90-2112.8.0.0131.oe1.aarch64  # 说明:这里需要替换成目标内核版本,可通过 uname -r 命令获取
        pahole -J vmlinux
        llvm-objcopy --only-section=.BTF --set-section-flags .BTF=alloc,readonly --strip-all vmlinux ${kernel_version}.btf
        strip -x ${kernel_version}.btf
        

        生成的 BTF 文件名称为<kernel_version>.btf格式,其中 <kernel_version>为目标机器的内核版本,可通过 uname -r 命令获取。

      2. 下载 gala-gopher 容器镜像

      在线下载

      gala-gopher 容器镜像已归档到 https://hub.oepkgs.net/ 仓库中,可通过如下命令获取。

      # 获取 aarch64 架构的镜像
      docker pull hub.oepkgs.net/a-ops/gala-gopher-profiling-aarch64:latest
      # 获取 x86_64 架构的镜像
      docker pull hub.oepkgs.net/a-ops/gala-gopher-profiling-x86_64:latest
      

      离线下载

      若无法通过在线下载的方式下载容器镜像,可联系我(何秀军 00465007)获取压缩包。

      拿到压缩包后,放到目标机器上,解压并加载容器镜像,命令行如下:

      tar -zxvf gala-gopher-profiling-aarch64.tar.gz
      docker load < gala-gopher-profiling-aarch64.tar
      

      3. 启动 gala-gopher 容器

      容器启动命令:

      docker run -d --name gala-gopher-profiling --privileged --pid=host --network=host -v /:/host -v /etc/localtime:/etc/localtime:ro -v /sys:/sys -v /usr/lib/debug:/usr/lib/debug -v /var/lib/docker:/var/lib/docker -v /tmp/$(uname -r).btf:/opt/gala-gopher/btf/$(uname -r).btf -e GOPHER_HOST_PATH=/host gala-gopher-profiling-aarch64:latest
      

      启动配置参数说明:

      • -v /tmp/$(uname -r).btf:/opt/gala-gopher/btf/$(uname -r).btf :如果内核支持 BTF,则删除该配置即可。如果内核不支持 BTF,则需要将前面准备好的 BTF 文件拷贝到目标机器上,并将 /tmp/$(uname -r).btf 替换为对应的路径。
      • gala-gopher-profiling-aarch64-0426 :gala-gopher容器对应的tag,替换成实际下载的tag。

      探针启动:

      • container_id 为需要观测的容器 id
      • 分别启动 sli 和 container 探针
      curl -X PUT http://localhost:9999/sli -d json='{"cmd":{"check_cmd":""},"snoopers":{"container_id":[""]},"params":{"report_period":5},"state":"running"}'
      
      curl -X PUT http://localhost:9999/container -d json='{"cmd":{"check_cmd":""},"snoopers":{"container_id":[""]},"params":{"report_period":5},"state":"running"}'
      

      探针关闭

      curl -X PUT http://localhost:9999/sli -d json='{"state": "stopped"}'
      
      curl -X PUT http://localhost:9999/container -d json='{"state": "stopped"}'
      

      部署 gala-anteater

      源码部署:

      # 请指定分支为 930eulercopilot
      git clone https://gitee.com/GS-Stephen_Curry/gala-anteater.git
      

      安装部署请参考 https://gitee.com/openeuler/gala-anteater (请留意python版本导致执行setup.sh install报错)

      镜像部署:

      docker pull hub.oepkgs.net/a-ops/gala-anteater:2.0.2
      

      /etc/gala-anteater/config/gala-anteater.yaml 中 Kafka 和 Prometheus 的 serverport 需要按照实际部署修改,model_topicmeta_topicgroup_id 自定义

      Kafka:
        server: "xxxx"
        port: "xxxx"
        model_topic: "xxxx" # 自定义,与rca配置中保持一致
        meta_topic: "xxxx" # 自定义,与rca配置中保持一致
        group_id: "xxxx" # 自定义,与rca配置中保持一致
        # auth_type: plaintext/sasl_plaintext, please set "" for no auth
        auth_type: ""
        username: ""
        password: ""
      
      Prometheus:
        server: "xxxx"
        port: "xxxx"
        steps: "5"
      

      gala-anteater 中模型的训练依赖于 gala-gopher 采集的数据,因此请保证 gala-gopher 探针正常运行至少24小时,在运行 gala-anteater。

      部署 gala-ops

      每个中间件的大致介绍:

      kafka : 一个数据库中间件, 分布式数据分流作用, 可以配置为当前的管理节点。

      prometheus:性能监控, 配置需要监控的生产节点 ip list。

      直接通过yum install安装kafka和prometheus,可参照安装脚本 https://portrait.gitee.com/openeuler/gala-docs/blob/master/deploy/download_offline_res.sh#

      只需要参照其中 kafka 和 prometheus 的安装即可

      部署 euler-copilot-rca

      镜像拉取

      docker pull hub.oepkgs.net/a-ops/euler-copilot-rca:0.9.1
      
      • 修改 config/config.json 文件,配置 gala-gopher 镜像的 container_id 以及 ip,Kafka 和 Prometheus 的 ipport(与上述 gala-anteater 配置保持一致)
      "gopher_container_id": "xxxx", # gala-gopher的容器id
          "remote_host": "xxxx" # gala-gopher的部署机器ip
        },
        "kafka": {
          "server": "xxxx",
          "port": "xxxx",
          "storage_topic": "usad_intermediate_results",
          "anteater_result_topic": "xxxx",
          "rca_result_topic": "xxxx",
          "meta_topic": "xxxx"
        },
        "prometheus": {
          "server": "xxxx",
          "port": "xxxx",
          "steps": 5
        },
      

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份