跳转至
首页 解决方案 下载 文档
演示环境

OpsAny主机纳管手册


Proxy网络连接

OpsAny支持多控制器(Proxy)模式,每个控制器负责管理本地区域的主机,所有的Proxy全部连接到OpsAny上。

Proxy监听端口:

  • 4505、4506:Salt服务监听端口
  • 8010:Proxy服务进程监听端口
  • 8011:OpenResty监听端口

OpsAny平台需要连接到Proxy的8011端口。被纳管主机需要连接到Proxy的8011和8012端口(用于下载文件和脚本),其中: - SSH模式: Proxy需要连接到所有主机的22端口。 - Agent模式: 所有主机需要连接到Proxy的4505和4506端口。

请求调用路径

例如用户在作业平台执行了一个快速脚本执行、文件分发、作业执行,调用链路如下:

【作业平台】-【ESB】-【管控平台】-【Proxy】-(通过SSH或者Agent)-【主机】

例如用户在资源平台执行了资产采集任务,调用链路如下:

【资源平台】-【ESB】-【管控平台】-【Proxy】-(通过SSH或者Agent)-【主机】

当出现问题时,也可以根据调用链路进行逐一故障诊断,管控平台和Proxy是整个执行的核心。

Proxy下的主机纳管

OpsAny的主机纳管支持以下四种方式:

  • Agent:通过Agent进行纳管操作。
  • SSH:通过SSH进行纳管操作
  • Agent/SSH:双通道模式,Agent优先,首先判断Agent是否可以连接,正常即使用Agent进行执行。Agent异常,使用SSH进行执行。
  • SSH/Agent:双通道模式,SSH优先,首先判断SSH是否可以连接,正常即使用SSH进行执行。SSH异常。使用Agent进行执行。

SSH异常排查手册

SSH通过Ansible进行纳管和连接测试,如果SSH异常,可以直接通过Ansible进行测试,查看日志。

异常原因统计:

  • 主机无法访问,Ping不同。
  • 主机可以访问,ping正常,但是端口不通。
  • 主机IP和端口均正常,但是验证失败(密码验证失败、密钥验证失败)
  • 主机IP和端口均正常,验证信息确定输入正确,可能SSH版本导致相关算法不支持。需要修改/etc/ssh/ssh_config配置支持

以上几种异常,均可以通过下面的排查手段,查看到日志进行处理。

  • 调整SSH参数支持老版本的SSH,例如CentOS 6
docker exec -it opsany-proxy /bin/sh
# 如果下面文件不存在,可以新建。
vi /etc/ssh/ssh_config
Host *
  HostKeyAlgorithms ssh-rsa,ssh-dss
  PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss
  • 进入OpsAny Proxy容器。
# For Docker
docker exec -it opsany-proxy /bin/sh

# For Kubernetes
kubectl exec -it PodName -n opsany -- /bin/sh
  • 执行下面命令
ansible -i /opt/opsany-proxy/invscript_proxy.py all -m ping

Agent异常排查手册

OpsAny的Agent是一个自定义封装好的Python环境,无需任何依赖,不需要主机已经安装Python,也不会对已经存在的Python环境有任何影响。默认安装在/usr/local/opsany-agent目录下,不可更改。使用Supervisor进行进程管理,会自动注册到Service或者Systemd系统服务中。并且仅支持Python3。不会对操作系统原有的Python环境产生任何影响,而且Agent也不存在内存泄露或者将CPU跑慢等情况,可以放心的进行安装。

Agent介绍

1.Agent包存放位置。

Agent的包存放在OpsAny Proxy(控制器)的/opt/opsany/uploads/agent目录下,该目录在OpenResty上设置了可以下载。

cd /opt/opsany/conf/nginx-conf.d
cat nginx_paas.conf
...
    location ~ ^/uploads/(.*) {
        autoindex off;
        root /opt/opsany/;
    }
...

如果你遇到了安装Agent的时候失败了,请检查你是否放置了agent的包到uploads目录下,在安装文档中有步骤,你可能少了。

2.Agent包构成

Agent是自定义的一个Python包,免安装直接解压即可,无需任何依赖。

Agent管理

1.查看Agent状态

systemctl status opsany-agent

2.停止Agent

systemctl stop opsany-agent

3.查看Agent中插件状态

Agent的插件将被Agent以Supervisor的方式进行管理,这里单独有一个脚本封装了supervisorctl查看状态。

/usr/local/opsany-agent/agent.sh status

4.重启所有Agent服务

/usr/local/opsany-agent/agent.sh restart all

5.查看Agent日志

cd /usr/local/opsany-agent/log

6.手工安装的Agent如何自动发现?

手工安装的Agent起来之后会自动注册到Proxy,然后需要手工的在【管控平台】主机管理--操作(更多)--点击纳管操作进行主机纳管。纳管完毕待状态正常后,可以点击资产采集进行采集。

Agent异常排查

  1. 查看当前所有连接到Proxy的Agent
docker exec -it opsany-proxy /bin/sh    
salt '*' test.ping
  1. 查看已经纳管和未纳管的主机
docker exec -it opsany-proxy /bin/sh    
salt-key
  1. 如果手工安装了agent但是salt-key中没有,请检查Agent的配置文件。有可能节点ID设置的相同或者连接的Proxy地址不对。

Document