A-Ops服务部署手册

1.1介绍

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

1.2架构

a-ops软件架构

1.3 运行环境

  • 硬件配置:

    | 配置项 | 推荐规格 | | ———— | ————- | | CPU | 8核 | | 内存 | 3G | | 网络带宽 | 300M | | I/O | 375MB/sec |

  • 软件配置:

    | 软件名 | 版本 | | ——————- | ————- | | Python | 3.8及以上 | | Mysql | 8.0.26 | | Elasticsearch | 7.14.0-1 | | Kafka | 2.4.0 | | Prometheus | 2.20.0 |

1.2 安装下载

1.2.1 yum下载安装
  1. 配置yum源:openEuler21.09 和 openEuler21.09:Epol

    1. [openEuler21.09] # openEuler 21.09 官方发布源
    2. name=openEuler21.09
    3. baseurl=https://repo.openeuler.org/openEuler-21.09/everything/$basearch/
    4. enabled=1
    5. gpgcheck=1
    6. gpgkey=https://repo.openeuler.org/openEuler-21.09/everything/$basearch/RPM-GPG-KEY-openEuler
    7. [Epol] # openEuler 21.09:Epol 官方发布源
    8. name=Epol
    9. baseurl=https://repo.openeuler.org/openEuler-21.09/EPOL/$basearch/
    10. enabled=1
    11. gpgcheck=1
    12. gpgkey=https://repo.openeuler.org/openEuler-21.09/OS/$basearch/RPM-GPG-KEY-openEuler
  1. 通过yum install 安装

    1. # 管理节点:
    2. yum install aops-utils # A-Ops 的基础设施,是其他A-Ops服务的依赖项
    3. yum install aops-manager # A-Ops 管理中心服务:主机管理、部署管理、模板管理、任务管理4个模块。
    4. yum install aops-database # A-Ops 数据中心服务:数据存放和数据库管理。
    5. yum install aops-cli # A-Ops 基础命令行:主机管理、部署管理、模板管理、任务管理。
    6. yum install adoctor-cli # A-Ops 智能定位命令行:异常检测、故障定位。
    7. yum install gala-ragdoll # A-Ops 配置溯源
    8. yum install python3-gala-ragdoll
    9. yum install gala-spider # A-Ops 架构感知
    10. yum install python3-gala-spider
    11. # 管理节点 and 监测节点:
    12. yum install adoctor-check-scheduler # A-Ops 异常检测
    13. yum install adoctor-check-executor # A-Ops 异常检测
    14. yum install adoctor-diag-scheduler # A-Ops 故障定位
    15. yum install adoctor-diag-executor # A-Ops 故障定位
    16. yum install gala-gopher # A-Ops 架构感知探针
1.2.2 rpm下载安装
  1. rpm包版本下载地址:https://117.78.1.88/project/show/openEuler:21.09:Epol
  1. 执行如下命令进行安装(其中“x.x.x-x”表示版本号,请用实际情况代替)

    1. # 管理节点:
    2. rpm -ivh adoctor-cli-vx.x.x-x.oe1.aarch64.rpm
    3. rpm -ivh aops-utils-vx.x.x-x.oe1.aarch64.rpm
    4. rpm -ivh aops-manager-vx.x.x-x.oe1.aarch64.rpm
    5. rpm -ivh aops-database-vx.x.x-x.oe1.aarch64.rpm
    6. rpm -ivh aops-cli-vx.x.x-x.oe1.aarch64.rpm
    7. rpm -ivh gala-spider-vx.x.x-x.oe1.aarch64.rpm
    8. rpm -ivh gala-gopher-vx.x.x-x.oe1.aarch64.rpm
    9. # 管理节点 and 监测节点:
    10. rpm -ivh adoctor-check-scheduler-vx.x.x-x.oe1.aarch64.rpm
    11. rpm -ivh adoctor-check-executor-vx.x.x-x.oe1.aarch64.rpm
    12. rpm -ivh adoctor-diag-scheduler-vx.x.x-x.oe1.aarch64.rpm
    13. rpm -ivh adoctor-diag-executor-vx.x.x-x.oe1.aarch64.rpm
    14. rpm -ivh gala-spider-vx.x.x-x.oe1.aarch64.rpm
1.2.3 源码下载
  1. 源码下载地址: https://gitee.com/openeuler/A-Ops

1.3 安装后配置数据库

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

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

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

1.4 配置参数

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

    1. vim /etc/aops/system.ini
    1. # log module 日志设置
    2. [log]
    3. log_level=INFO # 日志级别 可设置为 DEBUG 查看运行详细
    4. log_dir=/var/log/aops # 日志存放目录
    5. max_bytes=31457280 # 日志最大储存
    6. backup_count=40 # 备份数量
    7. # 服务ip和端口,根据实际情况设置,主要由于cli的restful请求
    8. [manager] # aops-manager 端口
    9. ip=172.16.0.0
    10. port=11111
    11. [database] # aops-database 端口
    12. ip=172.16.0.0
    13. port=11119
    14. [check_scheduler] # aops-check-scheduler 端口
    15. ip=172.16.0.0
    16. port=11112
    17. [diag_scheduler] # aops-diag-scheduler 端口
    18. ip=172.16.0.0
    19. port=11113
  1. 管理中心配置: 管理中心默认配置文件存放在/etc/aops/manager.ini,请根据实际情况对配置进行更改。

    1. vim /etc/aops/manager.ini
    1. [manager]
    2. ip=172.16.0.0 # 管理中心ip
    3. port=11111 # 管理中心端口
    4. host_vault_dir=/opt/aops # 加密文件文件夹
    5. host_vars=/opt/aops/host_vars/ # 加密主机文件夹
    6. [database]
    7. ip=172.16.0.0 # 数据中心ip
    8. port=11112 # 数据中心端口
    9. [uwsgi]
    10. wsgi-file=manage.py # flask启动脚本
    11. daemonize=/var/log/aops/uwsgi/manager.log # 管理中心日志文件路径
    12. http-timeout=600 # 响应超时时间
    13. harakiri=600 # 后端运行超时时间
  1. 数据中心配置: 数据中心默认配置文件存放在/etc/aops/database.ini,请根据实际情况对配置进行更改。

    1. vim /etc/aops/database.ini
    1. [database]
    2. ip=172.16.0.0 # 数据中心ip
    3. port=11119 # 数据中心端口
    4. [elasticsearch]
    5. ip=172.16.0.0 # elasticsearch ip
    6. port=9200 # elasticsearch 端口
    7. max_es_query_num=10000000 # es最大查询数量
    8. [mysql]
    9. ip=172.16.0.0 # mysql ip
    10. port=3306 # mysql 端口
    11. database_name=aops # A-Ops 数据库名称
    12. engine_format=mysql+pymysql://@%s:%s/%s # mysql连接,默认免密
    13. pool_size=10000 # mysql 连接池最大连接数
    14. pool_recycle=7200 # mysql DBAPI最大存活时间
    15. [prometheus]
    16. ip=172.16.0.0 # prometheus ip
    17. port=9090 # prometheus 端口
    18. disable_ssl=True # 取消ssl认证
    19. [uwsgi]
    20. wsgi-file=manage.py # flask启动脚本
    21. daemonize=/var/log/aops/uwsgi/database.log # 数据中心日志文件路径
    22. http-timeout=600 # 响应超时时间
    23. harakiri=600 # 后端运行超时时间
  1. 异常检测配置:

    1. 异常检测scheduler默认配置文件存放在/etc/aops/check_scheduler.ini,请根据实际情况对配置进行更改。详细说明参照异常检测部分。

      1. [producer]
      2. kafka_server_list = 172.16.0.0:9092 # kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
      3. api_version = 0.11.5
      4. acks = 1
      5. retries = 3
      6. retry_backoff_ms = 100
      7. [consumer]
      8. kafka_server_list = 172.16.0.0:9092 # kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
      9. group_id = DiagGroup
      10. enable_auto_commit = False
      11. auto_offset_reset = earliest
      12. timeout_ms = 5
      13. max_records = 3
      14. [check_scheduler]
      15. ip = 172.16.0.0 # 异常检测scheduler ip
      16. port = 11112 # 异常检测scheduler 端口
      17. max_retry_num = 3
      18. cool_down_time = 120
      19. max_dead_retry_task = 10000
      20. dead_retry_task_discount = 0.5
      21. backward_task_step = 60
      22. backward_task_interval = 60
      23. ; Indicates the minimum timestamp, which is the end point of a historical task.
      24. ; Earliest detected Sep 1, 2021 at 01:01:00
      25. backward_min_timestamp = 1630429261
      26. forward_task_interval = 60
      27. ;forward max task step default 1 day
      28. forward_max_task_step = 86400
      29. [uwsgi]
      30. wsgi-file=manage.py # flask启动脚本
      31. daemonize=/var/log/aops/uwsgi/check_scheduler.log # 异常检测scheduler日志文件路径
      32. http-timeout=600 # 响应超时时间
      33. harakiri=600 # 后端运行超时时间
  1. 异常检测check_executor配置默认配置文件存放在/etc/aops/check_executor.ini,请根据实际情况对配置进行更改。详细说明参照异常检测部分。

    1. [consumer]
    2. kafka_server_list=172.16.0.0:9092 # kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
    3. enable_auto_commit=False
    4. auto_offset_reset=earliest
    5. timeout_ms=5
    6. max_records=3
    7. [producer]
    8. kafka_server_list=172.16.0.0:9092 # kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
    9. api_version=0.11.5
    10. acks=1
    11. retries=3
    12. retry_backoff_ms=100
    13. [executor]
    14. plugin_path = adoctor_check_executor.check_rule_plugins
    15. do_check_consumer_num = 2
    16. sample_period = 15
  1. 故障诊断配置:

    1. 故障诊断diag_scheduler默认配置文件存放在/etc/aops/diag_scheduler.ini,请根据实际情况对配置进行更改。

      1. [producer]
      2. kafka_server_list=172.16.0.0:9092 # kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
      3. api_version=0.11.5
      4. acks=1
      5. retries=3
      6. retry_backoff_ms=100
      7. [topic]
      8. name=DIAGNOSE_EXECUTE_REQ
      9. [diag_scheduler]
      10. ip=172.16.0.0 # 故障诊断 diag_schedule ip
      11. port=11113 # 故障诊断 diag_schedule 端口
      12. [uwsgi]
      13. wsgi-file=manage.py # flask启动脚本
      14. daemonize=/var/log/aops/uwsgi/diag_scheduler.log # 故障诊断scheduler日志文件路径
      15. http-timeout=600 # 响应超时时间
      16. harakiri=600 # 后端运行超时时间
  1. 故障诊断diag_executor默认配置文件存放在/etc/aops/diag_executor.ini,请根据实际情况对配置进行更改。

    1. [consumer]
    2. kafka_server_list=172.16.0.0:9092 #kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
    3. group_id=DiagGroup
    4. enable_auto_commit=False
    5. auto_offset_reset=earliest
    6. timeout_ms=5
    7. max_records=3
    8. [topic]
    9. name=DIAGNOSE_EXECUTE_REQ
  1. 配置溯源配置

    配置溯源默认配置文件存放在/etc/ragdoll/gala-ragdoll.conf,请根据实际情况对配置进行更改。

    1. [git]
    2. git_dir = "/home/confTraceTest" # confTraceTest仓库存放路径
    3. user_name = "XXXXX-XXX" # git 账号
    4. user_email = "XXXX@XXXX.com" git 邮箱
    5. [collect]
    6. collect_address = "http://172.16.0.0:11111" # aops-manager ip 和 端口
    7. collect_api = "/manage/config/collect" # A-Ops 收集配置接口路由
    8. [ragdoll]
    9. port = 11114 # gala-ragdoll 端口
  2. 架构感知配置

    1. gala-spider默认配置文件存放在/etc/spider/gala-spider.conf,请根据实际情况对配置进行更改。

      1. [global]
      2. data_source = "kafka"
      3. ui_source = "xxx"
      4. [kafka]
      5. topic = gala_gopher # kafka topic
      6. broker = ["172.16.0.0"] # kafka ip 和 端口,需要使用kafka部署的真实IP和端口。
      7. [promecheus]
      8. broker =
      9. [table_info] # 表名称
      10. base_table_name = ["tcp_link", "lvs_link"]
      11. other_table_name = ["nginx_statistic" , "lvs_link" , "haproxy_link" , "dnsmasq_link"]
      12. [option]
      13. exclude_addr = ['x.x.x.x'] # 不进行感知的主机ip
      14. [spider]
      15. port = 11115 # gala-spider 端口
      16. [temp_path]
      17. temp_tcp_file = "/var/tmp/spider/tcpline.txt" # tcp 数据存放路径
      18. temp_other_file = "/var/tmp/spider/otherline.txt" # 其他数据存放路径
    2. gala-gopher默认配置文件存放在/opt/gala-gopher/gala-gopher.conf,请根据实际情况对进行更改。

      1. global =
      2. {
      3. log_directory = "/var/log/gala-gopher"; # 日志文件架
      4. log_level = "debug";
      5. };
      6. ingress =
      7. {
      8. interval = 5;
      9. };
      10. egress =
      11. {
      12. interval = 5;
      13. time_range = 5;
      14. };
      15. imdb =
      16. {
      17. max_tables_num = 1024;
      18. max_records_num = 1024;
      19. max_metrics_num = 1024;
      20. };
      21. # 网络端口
      22. web_server =
      23. {
      24. port = 8888;
      25. };
      26. kafka =
      27. {
      28. kafka_broker = "172.16.0.0:9092"; # kafka ip 和端口,使用kafka部署的真实IP和端口。
      29. kafka_topic = "gala_gopher"; # kafka topic
      30. switch = "on";
      31. };
      32. #探针和扩展探针
      33. probes =
      34. (
      35. {
      36. name = "example";
      37. switch = "off";
      38. interval = 1;
      39. },
      40. {
      41. name = "system_meminfo";
      42. switch = "off";
      43. interval = 1;
      44. },
      45. {
      46. name = "system_vmstat";
      47. switch = "off";
      48. interval = 2;
      49. },
      50. {
      51. name = "system_tcp";
      52. switch = "off";
      53. interval = 2;
      54. },
      55. {
      56. name = "system_inode";
      57. switch = "off";
      58. interval = 2;
      59. },
      60. );
      61. extend_probes =
      62. (
      63. {
      64. name = "redis";
      65. command = "python3 /opt/gala-gopher/extend_probes/redis_probe.py";
      66. param = "";
      67. switch = "off";
      68. },
      69. {
      70. name = "tcp";
      71. command = "/opt/gala-gopher/extend_probes/tcpprobe";
      72. param = "";
      73. switch = "on";
      74. },
      75. {
      76. name = "dnsmasq";
      77. command = "/opt/gala-gopher/extend_probes/trace_dnsmasq";
      78. param = "";
      79. start_check = "ps axf | grep dnsmasq | grep -v grep | wc -l";
      80. check_type = "count";
      81. switch = "auto";
      82. },
      83. {
      84. name = "haproxy";
      85. command = "/opt/gala-gopher/extend_probes/trace_haproxy";
      86. param = "";
      87. start_check = "ps axf | grep haproxy | grep -v grep | wc -l";
      88. check_type = "count";
      89. switch = "auto";
      90. },
      91. {
      92. name = "nginx";
      93. command = "/opt/gala-gopher/extend_probes/nginx_probe";
      94. param = "";
      95. start_check = "ps axf | grep nginx | grep -v grep | wc -l";
      96. check_type = "count";
      97. switch = "auto";
      98. },
      99. {
      100. name = "lvs";
      101. command = "/opt/gala-gopher/extend_probes/trace_lvs";
      102. param = "";
      103. start_check = "lsmod | grep ip_vs | wc -l";
      104. check_type = "count";
      105. switch = "auto";
      106. }
      107. );
  1. 其他配置

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

      1. vim /etc/aops/default.json
      1. {
      2. "tasks": [
      3. {
      4. "task_id": "95c3e692ff3811ebbcd3a89d3a259eef",
      5. "task_name": "Default deployment",
      6. "username": "admin",
      7. "host_list": [
      8. {
      9. "host_name": "xx.xx.xx.xx",
      10. "host_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      11. },
      12. {
      13. "host_name": "xx.xx.xx.xx",
      14. "host_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      15. },
      16. {
      17. "host_name": "xx.xx.xx.xx",
      18. "host_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      19. }
      20. ]
      21. }
      22. ]
      23. }
  1. 修改/etc/ansible/ansible.cfg , 需要取消#71注释host_key_checking 的注释.

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

1.5、服务启动和停止

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

  1. systemctl start aops-database # 启动服务
  2. systemctl stop aops-database # 停止服务
  3. systemctl restart aops-database # 重启服务
  4. # 其他可选项有
  5. aops-manager
  6. adoctor-check-scheduler
  7. adoctor-check-executor
  8. adoctor-diag-scheduler
  9. adoctor-diag-executor
  10. aops-web
  11. gala-spider
  12. gala-gopher
  13. gala-ragdoll

1.6、网页服务启动

  • 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请根据实际服务部署设置。
    1. server {
    2. # 设置前端端口号,默认为80端口
    3. listen 80 default_server;
    4. listen [::]:80 default_server;
    5. # 设置IP/域名
    6. server_name localhost;
    7. location /api/ {
    8. proxy_pass http://172.16.0.0:11111/;
    9. }
    10. location /api/domain {
    11. proxy_pass http://172.16.0.0:11114/;
    12. rewrite ^/api/(.*) /$1 break;
    13. }
    14. location /api/host {
    15. proxy_pass http://172.16.0.0:11114/;
    16. rewrite ^/api/(.*) /$1 break;
    17. }
    18. location /api/confs {
    19. proxy_pass http://172.16.0.0:11114/;
    20. rewrite ^/api/(.*) /$1 break;
    21. }
    22. location /api/management {
    23. proxy_pass http://172.16.0.0:11114/;
    24. rewrite ^/api/(.*) /$1 break;
    25. }
    26. location /api/check {
    27. proxy_pass http://172.16.0.0:11112/;
    28. rewrite ^/api/(.*) /$1 break;
    29. }
    30. location /api/diag {
    31. proxy_pass http://172.16.0.0:11113/;
    32. rewrite ^/api/(.*) /$1 break;
    33. }
    34. location /api/gala-spider {
    35. proxy_pass http://172.16.0.0:11115/;
    36. rewrite ^/api/(.*) /$1 break;
    37. }
  • 关闭selinux:setenforce 0

  • 关闭防火墙:

    1. systemctl stop firewalld
  • 启动web服务

    1. 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:

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

  • 登录

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

  • 页面介绍

    (1)工作台:该页面为数据看板页面,用户登录后就在此页

    img

    数据信息支持查看

  • 当前纳管的主机数量

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

    用户账户操作(右上角)

  • 修改密码

  • 输入解密密钥
  • 登出

(2)资产管理:分为主机管理与主机组管理页面

主机组页面支持操作

img

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

主机管理页面支持操作

img

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

(3)部署管理

img

支持操作

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

(4)智能诊断

异常检测页面支持操作

img

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

故障诊断页面支持操作

img

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

(5)配置管理

业务域管理页面支持操作

img

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

业务域配置管理页面支持操作

img

  • 查看配置项

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

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

  • 查看配置变更日志

(6)架构感知

架构感知页面支持操作

img

  • 支持对集群整体架构的查看
  • 支持节点和链路纤细信息的查看

    img

  • 探针采集到实时的tcp连接已经包括lvs、nginx等中间件连接情况,绘制拓扑图,展示节点之间、进程之间的连接情况。
  • 上层可以根据拓扑情况、链路指标数据等,进行故障定位定界。

1.7 日志查看

1.7.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 查看

1.8 集群内安装部署

1.8.1 A-Ops 部署服务

A-Ops支持14个组件在集群内的安装部署,其中包括:

  1. zookeeperkafkaprometheusnode_exportermysqlelasticsearchfluentdadoctor_check_executor adoctor_check_scheduler adoctor_diag_executor adoctor_diag_scheduler gala_gophergala_spider gala_ragdoll
1.8.2 A-Ops 部署服务操作
  • 首先task query 查询默认任务id,注意默认任务的主机必须已经被正确添加。

  • /usr/lib/python3.8/site-packages/aops_manager/deploy_manager/ansible_handler下的修改:

    • inventory目录下 将相应任务中的主机需要改为执行任务的主机ip,以gala_spider为例:

      1. gala_spider_hosts:
      2. hosts:
      3. 172.16.0.0: # 设置为需要操作的主机名
      4. ansible_host: 172.16.0.0 # 设置为需要操作的主机ip
      5. ansible_python_interpreter: /usr/bin/python3
  • 任务配置

    • 默认任务配置:/etc/aops/default.json。参照1.4配置参数
    1. vim /etc/aops/default.json
    • 修改/etc/ansible/ansible.cfg , 需要取消#71注释host_key_checking 的注释.
    1. vim /etc/ansible/ansible.cfg
    1. # uncomment this to disable SSH key host checking
    2. host_key_checking = False
    • /usr/lib/python3.8/site_packages/aops_manager/deploy_manager/tasks/95c3e692ff3811ebbcd3a89d3a259eef.yml,根据需求选择部署,设置enable 为true。continue选项为某一步执行失败不阻塞其他任务。

      1. ---
      2. step_list:
      3. zookeeper:
      4. enable: true
      5. continue: false
      6. kafka:
      7. enable: false
      8. continue: false
      9. prometheus:
      10. enable: false
      11. continue: false
      12. node_exporter:
      13. enable: false
      14. continue: false
      15. mysql:
      16. enable: false
      17. continue: false
      18. elasticsearch:
      19. enable: false
      20. continue: false
      21. fluentd:
      22. enable: false
      23. continue: false
      24. adoctor_check_executor:
      25. enable: false
      26. continue: false
      27. adoctor_check_scheduler:
      28. enable: false
      29. continue: false
      30. adoctor_diag_executor:
      31. enable: false
      32. continue: false
      33. adoctor_diag_scheduler:
      34. enable: false
      35. continue: false
      36. gala_gopher:
      37. enable: false
      38. continue: false
      39. gala_spider:
      40. enable: false
      41. continue: false
      42. gala_ragdoll:
      43. enable: false
      44. continue: false
    • account certificate : key 必须是添加主机时使用的key , 每次重启manager后必须重新执行certificate

      1. aops certificate --key xxxx --access_token xxxx
    • 执行任务命令

      1. aops task --action execute --task_list 95c3e692ff3811ebbcd3a89d3a259eef --access_token xxx