使用问题¶
1. OpsAny的权限体系是怎么设计的?我应该如何给用户授权。¶
- 用户的角色和权限
用户角色有:管理员、普通用户、开发者三种角色。
- 管理员角色:可以看到所有数据(参考下面的数据权限),但并不能看到所有页面,需要创建权限策略进行授权(参考下面的页面权限)。
- 普通用户角色:只能看到授权的页面和授权的数据。
-
开发者角色:类似普通用户角色,但是可以打开开发中心。
-
OpsAny的权限分为两种:
- 页面权限:设置用户可以看到哪个平台的哪个页面和哪个按钮。页面权限通过【统一权限】平台进行设置,依据RBAC(Role-Based Access Control)的设计模式,通过创建“权限策略”进行授权。
-
数据权限:设置用户可以看到的具体实例。例如哪些主机、哪些脚本、哪些应用等等。实例权限是通过【资源平台】创建授权策略进行授权。例外:【堡垒机】是独立的通过自身权限策略进行授权。
-
总结:管理员角色默认可以看到所有的数据,不需要进行数据授权,但是能访问的页面需要进行页面授权。普通用户角色需要页面授权和数据授权。这个设计和公有云是有区别的,目前大多数公有云是没有CMDB概念的,所以授权的时候,是页面权限和数据权限一起授权。但是在OpsAny中,数据权限由【资源平台】CMDB进行统一管理。
2. 忘记admin密码怎么办?¶
首先,新安装的平台,在安装完成后,会自动修改密码,并且输出出来,同时会将自动修改的密码写入到【$INSTALL_PATH/conf/.passwd_env】文件中。(这个是为了防止,用户安装完毕后忘记修改初始化密码,导致默认密码admin造成的弱口令安全风险。)
如果你自行修改了密码,而且忘记了密码怎么办呢?我们提供了重新初始化admin用户密码的脚本,在opsany-paas-login的容器中。
# 登录进容器里面
docker exec -it opsany-paas-login /bin/sh
# 设置环境变量,并执行初始化脚本,密码会被初始化为: 123456
cd /opt/opsany/paas/login
export BK_ENV="production"
python init_admin.py
#退出容器
exit
3. 如何替换HTTPS证书?¶
将证书替换到\({INSTALL_PATH}/conf/nginx-conf.d/ssl/路径下,以\)DOMAIN_NAME进行命名的,并重启容器。 docker restart opsany-base-openresty
例如演示环境的证书,安装完毕之后,会申请HTTPS证书,然后下面这样进行替换。
[root@demo ~]# /bin/cp 7310312_demo.opsany.com.pem /data/opsany/conf/nginx-conf.d/ssl/demo.opsany.com.pem
[root@demo ~]# /bin/cp 7310312_demo.opsany.com.key /data/opsany/conf/nginx-conf.d/ssl/demo.opsany.com.key
[root@demo ~]# docker restart opsany-base-openresty
4. 如何查看日志文件¶
日志文件在安装目录下的logs目录下,每个平台都有一个独立的目录存放日志。以平台的APPID命名。查看日志技巧:
- 1.先将日志清空,确保不被旧的日志影响。
- 2.在界面上执行相关操作,查看产生的日志。
- 3.将日志发送到社区微信群,寻找协助。
ls /data/opsany/logs
- 统一权限(rbac)
- 工作台(workbench)
- 资源平台(cmdb)
- 管控平台(control)
- 作业平台(job)
- 基础监控(monitor)
- 云管平台(cmp)
- 堡垒机(bastion)
- 应用平台(devops)
- 流水线(pipeline)
- 持续部署(deploy)
- 制品仓库(repo)
案例:
[root@ops ~]# ls -l /data/opsany/logs/control/
总用量 2184
-rw-r--r-- 1 root root 117858 11月 3 11:54 celery-beat.log #定时任务日志,例如作业平台执行定时作业,云管平台自动同步云主机。
-rw-r--r-- 1 root root 414197 11月 3 11:54 celery.log #后台任务日志,例如云管同步主机,管控平台纳管主机,添加监控等。
-rw-r--r-- 1 root root 7126 11月 2 21:41 component.log #系统不可用,通常看这个日志
-rw-r--r-- 1 root root 827069 11月 3 11:54 control.log #功能有异常,通常看这个日志,会有具体的报错。
-rw-r--r-- 1 root root 438828 11月 3 11:54 nginx-access.log
-rw-r--r-- 1 root root 0 11月 2 21:18 nginx-error.log
-rw-r--r-- 1 root root 0 11月 2 21:18 nginx-supervisor.log
-rw-r--r-- 1 root root 318597 11月 3 11:54 uwsgi.log #进程启动日志,通常服务无法启动时查看。
-rw-r--r-- 1 root root 0 11月 2 21:18 wb_mysql.log
5. 堡垒机连接目标主机失败,如何排查?¶
堡垒机连接目标主机失败的原因列表如下:
- 远程主机22端口不通
- 用户名或密码错误
- 证书错误
- SSH协议不支持
排查方法:
手工登录验证测试
docker exec -it opsany-paas-websocket /bin/sh
ssh root@目标主机
6.重新安装操作系统后,堡垒机无法连接?¶
重新安装操作系统之后,主机指纹发生变化,会导致堡垒机无法进行连接,为了安全性考虑。暂时没有自动忽略该问题,需要重启websocket解决。
docker restart opsany-paas-websocket
7.为什么主机纳管成功,但是堡垒机连接失败?¶
首先,主机纳管和堡垒机连接的底层实现是不同的。
- 主机纳管:通过Proxy,Proxy通过Agent/SSH等方式连接到目标主机。
- 堡垒机:通过Websocket,Websocket容器通过SSH/Telnet等协议连接到目标主机。
例如SSH纳管失败,需要从proxy容器去测试。堡垒机连接失败,需要从websocket容器去测试。
8.ITSM工作台-工单流程设计中的API字段如何正确使用?¶
-
Opsany只做获取数据的过程,所以我们仅支持GET请求。
-
API的来源可以是任何的地方,如果您选择平台外部,需要认证的可以额外提供Header参数。
-
抽取数据键名,则是为了声明,我们需要怎么去获取数据,如:
# API实际返回
{
"code": 200,
"api_code": 20000,
"data": [
{
....
}
]
}
# 点击连接测试后将会返回:
{
"status": true,
"message": "发送请求成功",
"data": {
"code": 200,
"api_code": 20000,
"data": [
{
....
}
]
}
}
# 则您需要在 "抽取数据键名" 处填写: data.data
因此,您的所有键值均不能含有英文点
# 下拉菜单(单选)和 下拉菜单(多选)数据结构一样,需要如下所示的数据结构
# 其中key和name均为必须参数且key为全局唯一,如果不是该结构,则无法使用。
[
{
"key": "key1",
"name": "name1"
},
{
"key": "key2",
"name": "name2"
},
{
"key": "key3",
"name": "name3"
}
]
# 级联菜单所需如下所示的数据结构
# 其中key和name以及children均为必须参数且key为全局唯一
[
{
"key": "key1",
"name": "name1",
"children": [
{
"key": "key1.1",
"name": "name1.1"
},
{
"key": "key1.2",
"name": "name1.2"
},
{
"key": "key1.3",
"name": "name1.3"
}
]
},
{
"key": "key2",
"name": "name2",
"children": [
{
"key": "key2.1",
"name": "name2.1"
},
{
"key": "key2.2",
"name": "name2.2"
},
{
"key": "key2.3",
"name": "name2.3"
}
]
},
{
"key": "key3",
"name": "name3",
"children": [
{
"key": "key3.1",
"name": "name3.1"
},
{
"key": "key3.2",
"name": "name3.2"
},
{
"key": "key3.3",
"name": "name3.3",
"children": [
{
"key": "key3.3.1",
"name": "name3.3.1"
},
{
"key": "key3.3.2",
"name": "name3.3.2"
},
{
"key": "key3.3.3",
"name": "name3.3.3"
}
]
}
]
}
]
- 特殊说明:我们不会对您的数据进行保存以及校验,所以您的API中返回数据中key,以及name均不能含有:空格,竖线(
|
),英文点(.
)等特殊字符。 - 备注:key的值全局唯一,包括级联菜单。
- 测试地址:
# 下拉菜单(单选和多选)测试地址案例 https://DMOAIN_NAME/o/workbench/api/workbench/v0_1/api-fields-example/ # 级联菜单测试地址案例 https://DMOAIN_NAME/o/workbench/api/workbench/v0_1/api-fields-tree-example/
9. 为什么我录入了物理机、机柜、区域、机房但是视图无法展示?无法批量操作?¶
在资源平台中录入的数据需要进行关系的设置后,才能在视图进行展示。主机视图和物理视图,均是根据机房-区域-机柜这样的从属关系进行数据展示。在资源仓库进行批量设置关系时也是一样的。例如你可能想把很多物理机批量的放置到某一个机柜上,但是无法选择机柜,也是因为该机柜并没有关联区域,或者区域并没有关联机房。所有的数据没有关系导致的。
10. 为什么我给物理机、虚拟机、云主机增加了自定义字段,但是主机视图中不显示该字段?¶
由于OpsAny的主机分为了物理机、虚拟机、云主机三种类型,所以在视图管理中,仅展示这三个模型相同的字段,如果只给某一个模型例如虚拟机增加了一个自定义字段,那么在视图是不展示的,在资源仓库是展示的。
11. 监控插件安装失败怎么办?¶
在管控平台纳管主机时,可以选择自动安装、手工安装等方式进行监控插件的安装,但是由于操作系统众多,再加上不同用户的运行环境可能都不同,难免遇到监控插件失败的问题。检查方法为
-
- 先检查Agent是否启动,配置文件是否正常。
# 查看服务状态。
systemctl status zabbix-agent
# 查看配置文件中“Server=”和“ServerActive=”的IP地址是否为Server IP地址
grep -v '^#' /etc/zabbix/zabbix_agentd.conf
-
- 打开Zabbix Web查看状态
查看Zabbix Web界面主机页面中的主机状态,查找原因。