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