长期支持版本

    [TOC]

    A-Ops框架服务部署手册

    1 介绍

    A-Ops是一款智能运维工具,通过实现智能运维基本框架,提供配置溯源,架构感知,故障定位基础能力,支持快速排障从而降低运维成本。

    2 架构

    a-ops软件架构

    3 运行环境

    • 硬件配置:

      配置项推荐规格
      CPU8核
      内存3G
      网络带宽300M
      I/O375MB/sec
    • 软件配置:

      软件名版本
      Python3.8及以上
      Mysql8.0.26
      Elasticsearch7.14.0-1
      Kafka2.4.0
      Prometheus2.20.0

    4 安装下载

    4.1 yum下载安装

    1. 配置yum源:openEuler21.09 和 openEuler21.09:Epol,repo源路径:/etc/yum.repos.d/openEuler.repo。

      [openEuler21.09] # openEuler 21.09 官方发布源
      name=openEuler21.09
      baseurl=https://repo.openeuler.org/openEuler-21.09/everything/$basearch/ 
      enabled=1
      gpgcheck=1
      gpgkey=https://repo.openeuler.org/openEuler-21.09/everything/$basearch/RPM-GPG-KEY-openEuler
      
      [Epol] # openEuler 21.09:Epol 官方发布源
      name=Epol
      baseurl=https://repo.openeuler.org/openEuler-21.09/EPOL/main/$basearch/ 
      enabled=1
      gpgcheck=1
      gpgkey=https://repo.openeuler.org/openEuler-21.09/OS/$basearch/RPM-GPG-KEY-openEuler
      
    2. 通过yum install 安装

      # 管理节点:
      
      yum install aops-utils # A-Ops 的基础设施,是其他A-Ops服务的依赖项
      
      yum install aops-manager # A-Ops 管理中心服务:主机管理、部署管理、模板管理、任务管理4个模块。
      
      yum install aops-database # A-Ops 数据中心服务:数据存放和数据库管理。
      
      yum install aops-cli # A-Ops 基础命令行:主机管理、部署管理、模板管理、任务管理。
      
      yum install aops-web # A-Ops web
      

    4.2 rpm下载安装

    rpm包版本下载地址:

    ​ arrch64版本:https://repo.openeuler.org/openEuler-21.09/EPOL/main/aarch64/Packages/

    ​ x86_64版本:https://repo.openeuler.org/openEuler-21.09/EPOL/main/x86_64/Packages/

    搜索aops,下载以下rpm包:

    • aops-cli-vx.x.x.x-x.oe1.arch.rpm
    • aops-database-vx.x.x.x-x.oe1.arch.rpm
    • aops-manager-vx.x.x.x-x.oe1.arch.rpm
    • aops-utils-vx.x.x.x-x.oe1.arch.rpm
    • aops-web-vx.x.x.x-x.oe1.arch.rpm

    执行如下命令进行安装(其中“x.x.x-x”表示版本号,"arch"代表架构类型,请用实际情况代替)。

    # 管理节点:
    rpm -ivh aops-utils-vx.x.x-x.oe1.arch.rpm
    
    rpm -ivh aops-manager-vx.x.x-x.oe1.arch.rpm
    
    rpm -ivh aops-database-vx.x.x-x.oe1.arch.rpm
    
    rpm -ivh aops-cli-vx.x.x-x.oe1.arch.rpm
    
    rpm -ivh aops-web-vx.x.x-x.oe1.arch.rpm
    

    4.3 源码下载

    ​ 源码下载地址: https://gitee.com/openeuler/A-Ops

    5 安装后配置数据库

    如果环境没有安装Elasticsearch或者mysql,可以在aops-utils安装之后执行自动化安装脚本。

    aops-basedatabase mysql # 安装21.09源中的mysql数据库并启动
    
    aops-basedatabase elasticsearch # 安装eleasticsearch官方源中的elasticsearch数据库并启动
    

    说明: 因为A-Ops以免密方式连接数据库,以rpm包方式安装Elasticsearch和Mysql默认为无密码模式。出于安全性考虑,当前建议Elasticsearch和Mysql需安装在同一管理节点。

    6 配置参数

    6.1 系统配置

    系统默认配置文件存放在/etc/aops/system.ini中,请根据实际情况对配置进行更改。

    vim /etc/aops/system.ini
    
    # log module 日志设置
    [log]
    log_level=INFO # 日志级别 可设置为 DEBUG 查看运行详细
    log_dir=/var/log/aops # 日志存放目录
    max_bytes=31457280 # 日志最大储存
    backup_count=40 # 备份数量
    
    # 服务ip和端口,根据实际情况设置,主要由于cli的restful请求
    [manager] # aops-manager 端口
    ip=172.16.0.0
    port=11111
    
    [database] # aops-database 端口
    ip=172.16.0.0
    port=11119
    
    [check_scheduler] # aops-check-scheduler 端口
    ip=172.16.0.0
    port=11112
    
    [diag_scheduler] # aops-diag-scheduler 端口
    ip=172.16.0.0
    port=11113
    

    6.2 管理中心配置

    管理中心默认配置文件存放在/etc/aops/manager.ini中,请根据实际情况对配置进行更改。

    vim /etc/aops/manager.ini
    
    [manager] 
    ip=172.16.0.0 # 管理中心ip
    port=11111 # 管理中心端口
    host_vault_dir=/opt/aops # 加密文件文件夹
    host_vars=/opt/aops/host_vars/ # 加密主机文件夹
    
    [database]
    ip=172.16.0.0 # 数据中心ip
    port=11112 # 数据中心端口
    
    [uwsgi]
    wsgi-file=manage.py # flask启动脚本
    daemonize=/var/log/aops/uwsgi/manager.log # 管理中心日志文件路径
    http-timeout=600 # 响应超时时间
    harakiri=600 # 后端运行超时时间
    

    6.3 数据中心配置

    数据中心默认配置文件存放在/etc/aops/database.ini中,请根据实际情况对配置进行更改。

    vim /etc/aops/database.ini
    
    [database]
    ip=172.16.0.0 # 数据中心ip
    port=11119 # 数据中心端口
    
    [elasticsearch]
    ip=172.16.0.0 # elasticsearch ip
    port=9200 # elasticsearch 端口
    max_es_query_num=10000000 # es最大查询数量
    
    [mysql]
    ip=172.16.0.0 # mysql ip
    port=3306 # mysql 端口
    database_name=aops # A-Ops 数据库名称
    engine_format=mysql+pymysql://@%s:%s/%s # mysql连接,默认免密
    pool_size=10000 # mysql 连接池最大连接数
    pool_recycle=7200  # mysql DBAPI最大存活时间
    
    [prometheus]
    ip=172.16.0.0 # prometheus ip
    port=9090 # prometheus 端口
    disable_ssl=True # 取消ssl认证
    
    [uwsgi]
    wsgi-file=manage.py # flask启动脚本
    daemonize=/var/log/aops/uwsgi/database.log # 数据中心日志文件路径
    http-timeout=600 # 响应超时时间
    harakiri=600 # 后端运行超时时间
    

    6.4 其他配置

    1. 默认任务配置:/etc/aops/default.json 修改默认执行任务的主机列表ip,需要启动数据库前修改,没有修改的话但已经启动数据库服务的话,需要执行task delete 命令删除task后,重启数据库,方可正确导入默认任务。

      vim /etc/aops/default.json
      
      {
          "tasks": [
              {
                  "task_id": "95c3e692ff3811ebbcd3a89d3a259eef",
                  "task_name": "Default deployment",
                  "username": "admin",
                  "host_list": [
                      {
                          "host_name": "xx.xx.xx.xx",
                          "host_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                      },
                      {
                          "host_name": "xx.xx.xx.xx",
                          "host_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                      },
                      {
                          "host_name": "xx.xx.xx.xx",
                          "host_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                      }
                  ]
              }
          ]
      }
      
    2. 修改/etc/ansible/ansible.cfg , 需要取消#71注释host_key_checking 的注释.

      vim /etc/ansible/ansible.cfg
      
      # uncomment this to disable SSH key host checking
      host_key_checking = False 
      

    7 服务启动和停止

    A-Ops 服务可以通过systemd 启动、停止和重启。

    systemctl start aops-database # 启动服务
    systemctl stop aops-database # 停止服务
    systemctl restart aops-database # 重启服务
    
    # 其他可选项有
    aops-manager 
    aops-web
    

    8 网页服务启动

    8.1 网页服务配置与启动

    • web的配置文件为/etc/nginx/aops-nginx.conf。
    • 主要修改以下内容:
      • web服务端口号,默认为80。
      • 后端服务路由地址,需与后端每个服务对应,其中/api/表示机器管理和用户管理服。务,/api/domain、/api/host、/api/confs、/api/management表示配置溯源服务,/api/check表示异常检测服务,/api/diag表示诊断服务,/api/gala-spider表示架构感知服务,IP请根据实际服务部署设置。
    	server {
            # 设置前端端口号,默认为80端口
            listen       80 default_server;
            listen       [::]:80 default_server;
            # 设置IP/域名
            server_name  localhost;
    
            location /api/ {
                proxy_pass http://172.16.0.0:11111/;
            }
    
            location /api/domain {
                proxy_pass http://172.16.0.0:11114/;
                rewrite ^/api/(.*) /$1 break;
            }
    
            location /api/host {
                proxy_pass http://172.16.0.0:11114/;
                rewrite ^/api/(.*) /$1 break;
            }
    
            location /api/confs {
                proxy_pass http://172.16.0.0:11114/;
                rewrite ^/api/(.*) /$1 break;
            }
    
            location /api/management {
                proxy_pass http://172.16.0.0:11114/;
                rewrite ^/api/(.*) /$1 break;
            }
    
            location /api/check {
                proxy_pass http://172.16.0.0:11112/;
                rewrite ^/api/(.*) /$1 break;
            }
    
            location /api/diag {
                proxy_pass http://172.16.0.0:11113/;
                rewrite ^/api/(.*) /$1 break;
            }
            
            location /api/gala-spider {
            	   proxy_pass http://172.16.0.0:11115/;
                rewrite ^/api/(.*) /$1 break;
            }
    
    • 关闭selinux

      setenforce 0
      
    • 关闭防火墙

      systemctl stop firewalld 
      
    • 启动web服务

      systemctl start aops-web
      
    • 访问

      • 方法一:假设web服务启动在172.16.0.0:80,则访问172.16.0.0:80即可访问页面(注意浏览器所在的机器与web服务的机器需要能ping通)。

      • 方法二:通过vscode转发。

        1. vscode安装remote_ssh插件。

        2. 修改remote_ssh config 配置。

        3. 修改部署web服务机器的/etc/ssh/sshd_config:

          StricModes yes 
          AllowTcpForwarding yes 
          AllowAgentForwarding yes 
          GatewayPorts yes 
          PermitTunnel yes  
          
          systemctl restart sshd.service 
          
        4. 启动remote_ssh, 通过vscode 插件reomote_ssh 转发 部署web服务机器的80端口。

    • 登录

      默认账户名为admin,密码为changeme。

    8.2 网页页面功能介绍

    8.2.1 工作台

    该页面为数据看板页面,用户登录后就在此页。

    img

    (1)数据信息支持查看:

    • 当前纳管的主机数量
    • 异常检测规则数量
    • 每个主机异常情况的统计
    • 异常情况的具体记录
    • 目前业务域相关信息尚不支持

    (2)用户账户操作(右上角):

    • 修改密码
    • 输入解密密钥
    • 退出

    8.2.2 资产管理

    主机管理相关操作指导参见资产管理使用手册

    (1)主机组页面支持操作:

    img

    • 添加主机组
    • 查看当前所有主机组(支持通过主机组名称、拥有主机数进行排序)
    • 查看每个主机组下的主机信息
    • 删除主机组

    (2)主机管理页面支持操作:

    img

    • 添加主机
    • 查看主机(可根据主机组、管理节点进行筛选, 可根据主机名称进行排序)
    • 查看主机详细信息(目前暂不支持)
    • 删除主机

    8.2.3 部署管理

    部署管理相关操作指导参见部署管理使用手册

    img

    部署管理支持操作:

    • 查看部署任务列表
    • 新建部署任务
    • 新增模板(yaml格式)
    • 查看当前模板
    • 删除模板
    • 删除任务
    • 执行任务(只支持执行默认任务,且由于当前没有查询任务进度的接口,前台直接会显示成功,但后台还是会在执行任务)

    8.2.4 智能定位

    ​使用职能定位功能需安装异常检测与故障诊断服务,异常检测相关操作参见异常检测服务使用手册,故障诊断相关操作参见故障诊断服务使用手册

    ​(1)异常检测页面支持操作:

    img

    • 查看当前异常检测规则数量
    • 查看异常检测结果统计
    • 新建规则(传入json文件)
    • 查看所有规则
    • 查看所有异常检测记录

    (2)故障诊断页面支持操作:

    img

    • 查看所有任务
    • 创建故障诊断任务并执行
    • 查看某个任务的进度
    • 查看某个任务的报告
    • 删除任务,web界面尚不支持
    • 新增故障树(json文件)
    • 查看当前故障树
    • 删除故障树
    • 查看某报告详细内容

    8.2.5 配置管理

    使用配置管理功能需安装配置溯源服务,配置溯源相关操作参见配置溯源服务使用手册

    (1)业务域管理页面支持操作:

    img

    • 查看当前业务域
    • 添加业务域
    • 域内添加主机
    • 查看业务域内主机列表
    • 进入主机列表查看当前配置(收集配置)
    • 删除业务域

    (2)业务域配置管理页面支持操作:

    img

    • 查看配置项

    • 新增配置项(目前仅支持/etc/yum.repos.d/openEuler.repo 和 /etc/coremail/coremail.conf,格式需正确)

    • 查看配置文件(期望配置)

    • 查看配置变更日志

    8.2.6 架构感知

    ​ 使用架构感知功能需安装架构感知服务,架构感知相关操作参见架构感知服务使用手册

    架构感知页面支持操作:
    

    img

    • 支持对集群整体架构的查看

    • 支持节点和链路纤细信息的查看

      img

    • 探针采集到实时的tcp连接已经包括lvs、nginx等中间件连接情况,绘制拓扑图,展示节点之间、进程之间的连接情况。

    • 上层可以根据拓扑情况、链路指标数据等,进行故障定位定界。

    9 日志查看

    9.1 A-Ops日志

    路径:/var/log/aops/

    功能:记录A-Ops的操作信息以及内部运行状态,方便维护和故障检查。使用python中logging模块设置日志大小和备份数量。

    ; Maximum capacity of each file, the unit is byte, default is 30 M

    max_bytes=31457280

    ; Number of old logs to keep;default is 30

    backup_count=40

    • aops.log: A-Ops运行整体日志

      功能:负责显示A-Ops整体运行的日志,包括管理中心、数据中心等。

    • manager.log: 管理中心日志

      功能:负责显示主机管理、主机组管理、模板管理、任务管理的运行日志。

    • database.log: 数据中心日志

      功能:负责显示其他功能模块与数据库的交互日志。

    • check_scheduler.log: 异常检测日志

      功能:负责显示异常检测模块运行日志。

    • diag_scheduler.log: 故障诊断日志

      功能:负责显示异常诊断模块运行日志。

    • 架构感知日志:通过 journal 和 systemctl status 查看

    • 配置溯源日志:通过 journal 和 systemctl status 查看

    文档捉虫

    “有虫”文档片段

    问题描述

    提交类型 issue

    有点复杂...

    找人问问吧。

    PR

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

    一键搞定!

    问题类型
    规范和低错类

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

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

    ● 英文中包含中文字符;

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

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

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

    易用性

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

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

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

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

    正确性

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

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

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

    ● 代码片段错误;

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

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

    风险提示

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

    内容合规

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

    ● 内容侵权;

    您对文档的总体满意度

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