如何添加成员账号分别管理主机和资源(提示:需升级到专业版,同时需升级到v3.3.9或以上版本)

我们在主机比较多的情况下,管理员可以创建若干个成员账号,每个账号可以登录管理自己的主机和监控资源
注意:此处的成员账号和服务器系统账号没有任何关系,不是一个概念
用户账号功能视频讲解
1、首先在server/config/application.yml中开启成员管理,如下,配置项userInfoManage改为yes,然后重启server

#是否开启成员账号管理(即每个成员可管理自己的资源),yes开启,no关闭,关闭后新增的成员账号不能再登录(管理员和只读账号可以登录)此功能需升级到专业版
userInfoManage: yes
	
如果此项设置为no,那么已经添加的成员账号将不能再登录系统,同时也不会收到自己资源的告警消息
如果此项设置为yes,那么已经添加的成员账号将恢复可登录系统,同时也会收到自己资源的告警消息
2、启用用户账号管理后,就可以在菜单【系统管理】->【成员账号】(v3.3.9此菜单叫用户账号管理,为了避免混淆叫法,
v3.4.0开始改称为成员账号,功能没变)新增成员账号,新增后的成员账号都可以登录到系统,来管理自己的主机和资源
3、如何让监控主机和成员账号关联起来,修改agent/config/application.properties的配置项account,如下

#绑定成员登录账号,默认为空即绑定于管理员
account=ethan
	
ethan即新添加的成员登录账号,修改完成后,重启下agent即可,这样该主机就关联到成员ethan下了
一个agent主机只能绑定一个成员账号
若需要修改该主机的关联成员,修改account=新成员账号即可,该主机的进程、端口等资源也会转移到新成员名下
4、只有管理员可以维护成员登录账号信息,管理员可以看到和维护所有成员账号的监控资源信息,管理员始终拥有最高权限
只读账号也可以浏览所有成员的监控资源信息,但是不能编辑、修改、删除
5、成员使用自己的账号登录后,可以维护自己的进程、端口、docker、日志文件、数据表、服务接口、数通设备、资产管理等信息
管理员可以维护所有成员账号的监控资源信息,但是不会改变监控资源的所属用户
6、系统日志、大屏显示没有区分成员账号显示,依然是基于系统所有资源的信息展示和分析
7、邮件告警,添加成员时,如果保存了【成员邮箱】,那么当成员的资源发送告警通知时,系统会同时发送给该成员
8、告警脚本方式,添加用户账号时,如果保存了【成员标识】,一般填写第三方用户ID,脚本中获取第二个参数即是成员标识值,第一个参数即该成员所属资源的告警内容
我们在告警脚本如果想给告警资源的所属账号发送通知,那么获取第二个参数即可,第一个参数是告警内容
如下以钉钉告警脚本为例,其他脚本也和此一样,标红部分为需要修改和添加的内容
#!/bin/sh
content=${@:1}
userId=${@:2} #userId即是第三方的用户ID,给这个userId发送信息即可,如果一个主机或者资源没有关联成员账号,那么userId就是一个空字符串
content=${content//\ $userId/} #把告警内容中的 userId替换为空
content=${content//\ /}
time3=$(date "+%H:%M:%S")
content="$time3,$content"
echo "warn content is : $content"
 
webhook='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
 
function SendMsgToDingding() {
    curl $webhook -H 'Content-Type: application/json' -d "
    {
        'msgtype': 'text',
        'text': {
            'content': 'WGCLOUD告警:$1'
        },
        'at': {
		'atMobiles': [
			'$2'
		], 
		'isAtAll': false
	}
    }"
}

SendMsgToDingding $content $userId