A-Ops部署指南

一、环境要求

  • 2台openEuler 22.09机器

    分别用于部署check模块的两种模式:调度器,执行器。其他服务如mysql、elasticsearch、aops-manager等可在任意一台机器独立部署,为便于操作,将这些服务部署在机器A。

  • 内存尽量为8G+

二、配置部署环境

机器A:

机器A需部署的aops服务有:aops-tools、aops-manager、aops-check、aops-web、aops-agent、gala-gopher。

需部署的第三方服务有:mysql、elasticsearch、zookeeper、kafka、prometheus。

具体部署步骤如下:

2.1 关闭防火墙

关闭本节点防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

2.2 部署aops-tools

安装aops-tools:

yum install aops-tools

2.3 部署数据库[mysql、elasticsearch]

2.3.1 部署mysql

使用安装aops-tools时安装的aops-basedatabase脚本进行安装

cd /opt/aops/aops_tools
./aops-basedatabase mysql

修改mysql配置文件

vim /etc/my.cnf

新增bind-address, 值为本机ip

1662346986112

重启mysql服务

systemctl restart mysqld

连接数据库,设置权限:

mysql
show databases;
use mysql;
select user,host from user;//出现user为root,host为localhost时,说明mysql只允许本机连接,外网和本地软件客户端则无法连接。
update user set host = '%' where user='root';
flush privileges;//刷新权限
exit
2.3.2 部署elasticsearch

使用安装aops-tools时安装的aops-basedatabase脚本进行安装

cd /opt/aops/aops_tools
./aops-basedatabase elasticsearch

修改配置文件:

修改elasticsearch配置文件:

vim /etc/elasticsearch/elasticsearch.yml

1662370718890

1662370575036

1662370776219

重启elasticsearch服务:

systemctl restart elasticsearch

2.4 部署aops-manager

安装aops-manager

yum install aops-manager

修改配置文件:

vim /etc/aops/manager.ini

将配置文件中各服务的地址修改为真实地址,由于将所有服务都部署在机器A,故需把IP地址配为机器A的地址。

[manager]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=11111
host_vault_dir=/opt/aops
host_vars=/opt/aops/host_vars

[uwsgi]
wsgi-file=manage.py
daemonize=/var/log/aops/uwsgi/manager.log
http-timeout=600
harakiri=600

[elasticsearch]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=9200
max_es_query_num=10000000

[mysql]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=3306
database_name=aops
engine_format=mysql+pymysql://@%s:%s/%s
pool_size=10000
pool_recycle=7200

[aops_check]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=11112

启动aops-manager服务:

systemctl start aops-manager

2.5 部署aops-web

安装aops-web

yum install aops-web

修改配置文件,由于将所有服务都部署在机器A,故需将web访问的各服务地址配置成机器A的真实ip。

vim /etc/nginx/aops-nginx.conf

部分服务配置截图:

1662378186528

开启aops-web服务:

systemctl start aops-web

2.6 部署kafka

2.6.1 部署zookeeper

安装:

yum install zookeeper

启动服务:

systemctl start zookeeper
2.6.2 部署kafka

安装:

yum install kafka

修改配置文件:

vim /opt/kafka/config/server.properties

将listener 改为本机ip

1662381371927

启动kafka服务:

cd /opt/kafka/bin
nohup ./kafka-server-start.sh ../config/server.properties &
tail -f ./nohup.out  # 查看nohup所有的输出出现A本机ip 以及 kafka启动成功INFO;

2.7 部署aops-check

安装aops-check:

yum install aops-check

修改配置文件:

vim /etc/aops/check.ini

将配置文件中各服务的地址修改为真实地址,由于将所有服务都部署在机器A,故需把IP地址配为机器A的地址。

[check]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=11112
mode=configurable  // 该模式为configurable模式,用于常规诊断模式下的调度器。
timing_check=on

[default_mode]
period=30
step=30

[elasticsearch]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=9200

[mysql]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=3306
database_name=aops
engine_format=mysql+pymysql://@%s:%s/%s
pool_size=10000
pool_recycle=7200

[prometheus]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=9090
query_range_step=15s

[agent]
default_instance_port=8888

[manager]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=11111

[consumer]
kafka_server_list=192.168.1.1:9092  // 此处及后续服务ip修改为机器A真实ip
enable_auto_commit=False
auto_offset_reset=earliest
timeout_ms=5
max_records=3
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID
result_name=CHECK_RESULT
[producer]
kafka_server_list = 192.168.1.1:9092  // 此处及后续服务ip修改为机器A真实ip
api_version = 0.11.5
acks = 1
retries = 3
retry_backoff_ms = 100
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID

启动aops-check服务(configurable模式):

systemctl start aops-check

2.8 部署客户端服务

客户端机器的服务需要部署aops-agent及gala-gopher,具体可参考aops-agent部署指南

注意:主机注册时需要先在前端添加主机组操作,确保该主机所属的主机组存在。此处只对机器A做部署、纳管。

2.9 部署prometheus

安装prometheus:

yum install prometheus2

修改配置文件:

vim /etc/prometheus/prometheus.yml

将所有客户端的gala-gopher地址新增到prometheus的监控节点中。

1662377261742

启动服务:

systemctl start prometheus

2.10 部署gala-ragdoll

A-Ops配置溯源功能依赖gala-ragdoll实现,通过Git实现配置文件的变动监测。

安装gala-ragdoll:

yum install gala-ragdoll # A-Ops 配置溯源

修改配置文件:

vim /etc/ragdoll/gala-ragdoll.conf

将collect节点collect_address中IP地址修改为机器A的地址,collect_api与collect_port修改为实际接口地址。

[git]
git_dir = "/home/confTraceTest"
user_name = "user_name"
user_email = "user_email"

[collect]
collect_address = "http://192.168.1.1"    //此处修改为机器A的真实IP
collect_api = "/manage/config/collect"    //此处修改为配置文件采集的实际接口
collect_port = 11111                      //此处修改为服务的实际端口

[sync]
sync_address = "http://0.0.0.0"
sync_api = "/demo/syncConf"
sync_port = 11114


[ragdoll]
port = 11114

启动gala-ragdoll服务

systemctl start gala-ragdoll

机器B:

机器B只需部署aops-check作为执行器。

2.11 部署aops-check

安装aops-check:

yum install aops-check

修改配置文件:

vim /etc/aops/check.ini

将配置文件中各服务的地址修改为真实地址,除check服务为机器B的地址外,其他服务都部署在机器A,故需把IP地址配置为机器A的地址即可。

[check]
ip=192.168.1.2  // 此处ip改为机器B真实ip
port=11112
mode=executor  // executor,用于常规诊断模式下的执行器
timing_check=on

[default_mode]
period=30
step=30

[elasticsearch]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=9200

[mysql]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=3306
database_name=aops
engine_format=mysql+pymysql://@%s:%s/%s
pool_size=10000
pool_recycle=7200

[prometheus]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=9090
query_range_step=15s

[agent]
default_instance_port=8888

[manager]
ip=192.168.1.1  // 此处及后续服务ip修改为机器A真实ip
port=11111

[consumer]
kafka_server_list=192.168.1.1:9092  // 此处及后续服务ip修改为机器A真实ip
enable_auto_commit=False
auto_offset_reset=earliest
timeout_ms=5
max_records=3
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID
result_name=CHECK_RESULT
[producer]
kafka_server_list = 192.168.1.1:9092  // 此处及后续服务ip修改为机器A真实ip
api_version = 0.11.5
acks = 1
retries = 3
retry_backoff_ms = 100
task_name=CHECK_TASK
task_group_id=CHECK_TASK_GROUP_ID

启动aops-check服务(executor模式):

systemctl start aops-check

至此,两台机器的服务部署完成。

文档捉虫

“有虫”文档片段

问题描述

提交类型 issue
有点复杂...
找人问问吧。
PR
小问题,全程线上修改...
一键搞定!
问题类型
规范和低错类

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

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

● 英文中包含中文字符;

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

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

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

易用性

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

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

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

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

正确性

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

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

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

● 代码片段错误;

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

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

风险提示

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

内容合规

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

● 内容侵权;

您对文档的总体满意度

非常不满意
非常满意
提交
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。