mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-08-09 01:58:42 +00:00
perf: 添加 session 在线数量 (#11464)
* perf: 添加 session 在线数量 * perf: 优化会话数量 * perf: 优化会话数量 --------- Co-authored-by: ibuler <ibuler@qq.com>
This commit is contained in:
parent
db0b43ee84
commit
1138cd3334
@ -22,7 +22,7 @@ class VirtualAccountSerializer(serializers.ModelSerializer):
|
||||
'secret_from_login': {
|
||||
'help_text': _(
|
||||
'Current only support login from AD/LDAP. Secret priority: '
|
||||
'Same account in asset secret > Login secret > Manual input. '
|
||||
'Same account in asset secret > Login secret > Manual input. <br/ >'
|
||||
'For security, please set config CACHE_LOGIN_PASSWORD_ENABLED to true'
|
||||
)
|
||||
},
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:adfc307a827a5299030378017f8c1b840276711dcf1a0cf55d3bce47aafa0f1f
|
||||
size 156109
|
||||
oid sha256:e73f77a5898c8626b05360d32778643c5b77502da22e90f956be0f6aa2a45aa4
|
||||
size 156006
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-08-30 15:59+0800\n"
|
||||
"POT-Creation-Date: 2023-08-28 10:55+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -823,12 +823,12 @@ msgstr "コメント"
|
||||
#: accounts/serializers/account/virtual.py:24
|
||||
msgid ""
|
||||
"Current only support login from AD/LDAP. Secret priority: Same account in "
|
||||
"asset secret > Login secret > Manual input. For security, please set config "
|
||||
"CACHE_LOGIN_PASSWORD_ENABLED to true"
|
||||
"asset secret > Login secret > Manual input. <br/ >For security, please set "
|
||||
"config CACHE_LOGIN_PASSWORD_ENABLED to true"
|
||||
msgstr ""
|
||||
"現在、AD/LDAPからのログインのみをサポートしています。シークレットの優先順位: "
|
||||
"資産シークレット内の同じアカウント > ログインシークレット > 手動入力, セキュ"
|
||||
"リティのために、コンフィギュレーション項目CACHE _LOGIN_PASSWORD_ENABLEDはtrue"
|
||||
"資産シークレット内の同じアカウント > ログインシークレット > 手動入力. <br/> "
|
||||
"セキュリティのために、「config CACHE_LOGIN_PASSWORD_ENABLED」をtrueに設定してください。 "
|
||||
|
||||
#: accounts/serializers/automations/base.py:23
|
||||
#: assets/models/asset/common.py:155 assets/models/automations/base.py:18
|
||||
@ -1240,8 +1240,8 @@ msgid "Cloud service"
|
||||
msgstr "クラウド サービス"
|
||||
|
||||
#: assets/const/category.py:14 assets/models/asset/gpt.py:11
|
||||
#: assets/models/asset/web.py:16 audits/const.py:35
|
||||
#: terminal/models/applet/applet.py:27
|
||||
#: assets/models/asset/web.py:16 audits/const.py:34
|
||||
#: terminal/models/applet/applet.py:26
|
||||
msgid "Web"
|
||||
msgstr "Web"
|
||||
|
||||
@ -6037,8 +6037,8 @@ msgstr "一括作成非サポート"
|
||||
msgid "Storage is invalid"
|
||||
msgstr "ストレージが無効です"
|
||||
|
||||
#: terminal/models/applet/applet.py:30 xpack/plugins/license/models.py:86
|
||||
msgid "Community Edition"
|
||||
#: terminal/models/applet/applet.py:29
|
||||
msgid "Community"
|
||||
msgstr "コミュニティ版"
|
||||
|
||||
#: terminal/models/applet/applet.py:31
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:20793cf634d9d59e0c1e1b903712223422dd42e1b7f6b7859015e0b83aaa4a96
|
||||
size 127733
|
||||
oid sha256:0b96e0625afb1562c735097ed1ed4e5a0a5496e4578b208dd2ed24a67928ceb2
|
||||
size 127664
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: JumpServer 0.3.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-08-30 15:59+0800\n"
|
||||
"POT-Creation-Date: 2023-08-28 10:55+0800\n"
|
||||
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
|
||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
||||
@ -92,7 +92,7 @@ msgid "Update"
|
||||
msgstr "更新"
|
||||
|
||||
#: accounts/const/account.py:33
|
||||
#: accounts/serializers/automations/change_secret.py:156 audits/const.py:55
|
||||
#: accounts/serializers/automations/change_secret.py:156 audits/const.py:54
|
||||
#: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19
|
||||
#: ops/const.py:61 terminal/const.py:77 xpack/plugins/cloud/const.py:43
|
||||
msgid "Failed"
|
||||
@ -244,7 +244,7 @@ msgstr "切换自"
|
||||
|
||||
#: accounts/models/account.py:54 assets/const/protocol.py:162
|
||||
#: settings/serializers/auth/cas.py:20 settings/serializers/auth/feishu.py:20
|
||||
#: terminal/models/applet/applet.py:35
|
||||
#: terminal/models/applet/applet.py:34
|
||||
msgid "Version"
|
||||
msgstr "版本"
|
||||
|
||||
@ -348,56 +348,56 @@ msgstr "是否成功"
|
||||
msgid "Account backup execution"
|
||||
msgstr "账号备份执行"
|
||||
|
||||
#: accounts/models/automations/base.py:19
|
||||
#: accounts/models/automations/base.py:20
|
||||
msgid "Account automation task"
|
||||
msgstr "账号自动化任务"
|
||||
|
||||
#: accounts/models/automations/base.py:33
|
||||
#: accounts/models/automations/base.py:34
|
||||
msgid "Automation execution"
|
||||
msgstr "自动化执行"
|
||||
|
||||
#: accounts/models/automations/base.py:34
|
||||
#: accounts/models/automations/base.py:35
|
||||
msgid "Automation executions"
|
||||
msgstr "自动化执行"
|
||||
|
||||
#: accounts/models/automations/base.py:36
|
||||
#: accounts/models/automations/base.py:37
|
||||
msgid "Can view change secret execution"
|
||||
msgstr "查看改密执行"
|
||||
|
||||
#: accounts/models/automations/base.py:37
|
||||
#: accounts/models/automations/base.py:38
|
||||
msgid "Can add change secret execution"
|
||||
msgstr "创建改密执行"
|
||||
|
||||
#: accounts/models/automations/base.py:39
|
||||
#: accounts/models/automations/base.py:40
|
||||
msgid "Can view gather accounts execution"
|
||||
msgstr "查看收集账号执行"
|
||||
|
||||
#: accounts/models/automations/base.py:40
|
||||
#: accounts/models/automations/base.py:41
|
||||
msgid "Can add gather accounts execution"
|
||||
msgstr "创建收集账号执行"
|
||||
|
||||
#: accounts/models/automations/base.py:42
|
||||
#: accounts/models/automations/base.py:43
|
||||
msgid "Can view push account execution"
|
||||
msgstr "查看推送账号执行"
|
||||
|
||||
#: accounts/models/automations/base.py:43
|
||||
#: accounts/models/automations/base.py:44
|
||||
msgid "Can add push account execution"
|
||||
msgstr "创建推送账号执行"
|
||||
|
||||
#: accounts/models/automations/base.py:55 accounts/models/template.py:21
|
||||
#: accounts/models/automations/base.py:56 accounts/models/template.py:21
|
||||
#: accounts/serializers/automations/change_secret.py:40
|
||||
msgid "Secret strategy"
|
||||
msgstr "密文策略"
|
||||
|
||||
#: accounts/models/automations/base.py:57
|
||||
#: accounts/models/automations/base.py:58
|
||||
msgid "Password rules"
|
||||
msgstr "密码规则"
|
||||
|
||||
#: accounts/models/automations/base.py:60
|
||||
#: accounts/models/automations/base.py:61
|
||||
msgid "SSH key change strategy"
|
||||
msgstr "SSH 密钥推送方式"
|
||||
|
||||
#: accounts/models/automations/base.py:70 accounts/models/base.py:36
|
||||
#: accounts/models/automations/base.py:71 accounts/models/base.py:36
|
||||
#: accounts/serializers/account/account.py:429
|
||||
#: accounts/serializers/account/base.py:16
|
||||
#: accounts/serializers/automations/change_secret.py:46
|
||||
@ -406,7 +406,7 @@ msgstr "SSH 密钥推送方式"
|
||||
msgid "Secret type"
|
||||
msgstr "密文类型"
|
||||
|
||||
#: accounts/models/automations/base.py:72 accounts/models/mixins/vault.py:48
|
||||
#: accounts/models/automations/base.py:73 accounts/models/mixins/vault.py:48
|
||||
#: accounts/serializers/account/base.py:19
|
||||
#: authentication/models/temp_token.py:10
|
||||
#: authentication/templates/authentication/_access_key_modal.html:31
|
||||
@ -527,7 +527,7 @@ msgstr "账号验证"
|
||||
#: ops/models/job.py:126 ops/models/playbook.py:28 ops/serializers/job.py:20
|
||||
#: orgs/models.py:82 perms/models/asset_permission.py:56 rbac/models/role.py:29
|
||||
#: settings/models.py:32 settings/serializers/msg.py:82
|
||||
#: terminal/models/applet/applet.py:33 terminal/models/component/endpoint.py:12
|
||||
#: terminal/models/applet/applet.py:32 terminal/models/component/endpoint.py:12
|
||||
#: terminal/models/component/endpoint.py:94
|
||||
#: terminal/models/component/storage.py:26 terminal/models/component/task.py:13
|
||||
#: terminal/models/component/terminal.py:84 users/forms/profile.py:33
|
||||
@ -545,7 +545,7 @@ msgstr "特权账号"
|
||||
#: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39
|
||||
#: assets/models/label.py:22
|
||||
#: authentication/serializers/connect_token_secret.py:114
|
||||
#: terminal/models/applet/applet.py:40
|
||||
#: terminal/models/applet/applet.py:39
|
||||
#: terminal/models/component/endpoint.py:105 users/serializers/user.py:170
|
||||
msgid "Is active"
|
||||
msgstr "激活"
|
||||
@ -668,7 +668,7 @@ msgstr "类别"
|
||||
#: assets/serializers/asset/common.py:122 assets/serializers/platform.py:112
|
||||
#: assets/serializers/platform.py:127 audits/serializers.py:49
|
||||
#: authentication/serializers/connect_token_secret.py:123 ops/models/job.py:137
|
||||
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:39
|
||||
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:38
|
||||
#: terminal/models/component/storage.py:57
|
||||
#: terminal/models/component/storage.py:146 terminal/serializers/applet.py:29
|
||||
#: terminal/serializers/session.py:21 terminal/serializers/storage.py:226
|
||||
@ -808,8 +808,8 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认
|
||||
#: assets/models/cmd_filter.py:40 assets/models/cmd_filter.py:88
|
||||
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
|
||||
#: ops/models/job.py:145 ops/models/playbook.py:31 rbac/models/role.py:37
|
||||
#: settings/models.py:37 terminal/models/applet/applet.py:45
|
||||
#: terminal/models/applet/applet.py:302 terminal/models/applet/host.py:142
|
||||
#: settings/models.py:37 terminal/models/applet/applet.py:44
|
||||
#: terminal/models/applet/applet.py:284 terminal/models/applet/host.py:142
|
||||
#: terminal/models/component/endpoint.py:24
|
||||
#: terminal/models/component/endpoint.py:104
|
||||
#: terminal/models/session/session.py:46 tickets/models/comment.py:32
|
||||
@ -818,15 +818,14 @@ msgstr "关联平台,可配置推送参数,如果不关联,将使用默认
|
||||
msgid "Comment"
|
||||
msgstr "备注"
|
||||
|
||||
#: accounts/serializers/account/virtual.py:24
|
||||
#: accounts/serializers/account/virtual.py:22
|
||||
msgid ""
|
||||
"Current only support login from AD/LDAP. Secret priority: Same account in "
|
||||
"asset secret > Login secret > Manual input. For security, please set config "
|
||||
"CACHE_LOGIN_PASSWORD_ENABLED to true"
|
||||
"asset secret > Login secret > Manual input. <br/ >For security, please set "
|
||||
"config CACHE_LOGIN_PASSWORD_ENABLED to true"
|
||||
msgstr ""
|
||||
"当前仅支持 AD/LDAP 登录方式用户。 同名账号密码生效顺序: 资产上存在的同名账号"
|
||||
"密码 > 登录密码 > 手动输入, 为了安全起见,请设置配置项 "
|
||||
"CACHE_LOGIN_PASSWORD_ENABLED 为 true"
|
||||
"密码 > 登录密码 > 手动输入 <br/> 为了安全起见,请设置配置项 CACHE_LOGIN_PASSWORD_ENABLED=true,重启服务才能开启"
|
||||
|
||||
#: accounts/serializers/automations/base.py:23
|
||||
#: assets/models/asset/common.py:155 assets/models/automations/base.py:18
|
||||
@ -862,7 +861,7 @@ msgstr "* 密码长度范围 6-30 位"
|
||||
msgid "Automation task execution"
|
||||
msgstr "自动化任务执行历史"
|
||||
|
||||
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:54
|
||||
#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53
|
||||
#: audits/models.py:59 audits/signal_handlers/activity_log.py:33
|
||||
#: common/const/choices.py:18 ops/const.py:59 ops/serializers/celery.py:40
|
||||
#: terminal/const.py:76 terminal/models/session/sharing.py:121
|
||||
@ -870,8 +869,8 @@ msgstr "自动化任务执行历史"
|
||||
msgid "Success"
|
||||
msgstr "成功"
|
||||
|
||||
#: accounts/signal_handlers.py:46
|
||||
#, python-format
|
||||
#: accounts/signal_handlers.py:47
|
||||
#, fpython-format
|
||||
msgid "Push related accounts to assets: %s, by system"
|
||||
msgstr "推送账号到资产: %s, 由系统执行"
|
||||
|
||||
@ -1182,7 +1181,7 @@ msgstr "认证失败"
|
||||
msgid "Connect failed"
|
||||
msgstr "连接失败"
|
||||
|
||||
#: assets/const/automation.py:6 audits/const.py:6 audits/const.py:37
|
||||
#: assets/const/automation.py:6 audits/const.py:6 audits/const.py:36
|
||||
#: audits/signal_handlers/activity_log.py:62 common/utils/ip/geoip/utils.py:31
|
||||
#: common/utils/ip/geoip/utils.py:37 common/utils/ip/utils.py:104
|
||||
msgid "Unknown"
|
||||
@ -1204,7 +1203,7 @@ msgstr "测试网关"
|
||||
msgid "Gather facts"
|
||||
msgstr "收集资产信息"
|
||||
|
||||
#: assets/const/base.py:33 audits/const.py:48
|
||||
#: assets/const/base.py:33 audits/const.py:47
|
||||
#: terminal/serializers/applet_host.py:32
|
||||
msgid "Disabled"
|
||||
msgstr "禁用"
|
||||
@ -1235,8 +1234,8 @@ msgid "Cloud service"
|
||||
msgstr "云服务"
|
||||
|
||||
#: assets/const/category.py:14 assets/models/asset/gpt.py:11
|
||||
#: assets/models/asset/web.py:16 audits/const.py:35
|
||||
#: terminal/models/applet/applet.py:27
|
||||
#: assets/models/asset/web.py:16 audits/const.py:34
|
||||
#: terminal/models/applet/applet.py:26
|
||||
msgid "Web"
|
||||
msgstr "Web"
|
||||
|
||||
@ -1256,7 +1255,7 @@ msgstr "私有云"
|
||||
msgid "Kubernetes"
|
||||
msgstr "Kubernetes"
|
||||
|
||||
#: assets/const/device.py:7 terminal/models/applet/applet.py:26
|
||||
#: assets/const/device.py:7 terminal/models/applet/applet.py:25
|
||||
#: tickets/const.py:8
|
||||
msgid "General"
|
||||
msgstr "一般"
|
||||
@ -1450,7 +1449,7 @@ msgstr "用户名与用户相同"
|
||||
|
||||
#: assets/models/_user.py:52 authentication/models/connection_token.py:41
|
||||
#: authentication/serializers/connect_token_secret.py:111
|
||||
#: terminal/models/applet/applet.py:42 terminal/serializers/session.py:19
|
||||
#: terminal/models/applet/applet.py:41 terminal/serializers/session.py:19
|
||||
#: terminal/serializers/session.py:42 terminal/serializers/storage.py:70
|
||||
msgid "Protocol"
|
||||
msgstr "协议"
|
||||
@ -1589,7 +1588,7 @@ msgstr "资产自动化任务"
|
||||
|
||||
#: assets/models/automations/base.py:113 audits/models.py:199
|
||||
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:220
|
||||
#: terminal/models/applet/applet.py:301 terminal/models/applet/host.py:139
|
||||
#: terminal/models/applet/applet.py:283 terminal/models/applet/host.py:139
|
||||
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
|
||||
#: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283
|
||||
#: tickets/serializers/super_ticket.py:13
|
||||
@ -1734,7 +1733,7 @@ msgstr "开放的"
|
||||
msgid "Setting"
|
||||
msgstr "设置"
|
||||
|
||||
#: assets/models/platform.py:38 audits/const.py:49 settings/models.py:36
|
||||
#: assets/models/platform.py:38 audits/const.py:48 settings/models.py:36
|
||||
#: terminal/serializers/applet_host.py:33
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
@ -2137,8 +2136,7 @@ msgstr "重命名"
|
||||
msgid "Symlink"
|
||||
msgstr "建立软链接"
|
||||
|
||||
#: audits/const.py:18 audits/const.py:28 perms/const.py:14
|
||||
#: terminal/api/session/session.py:141
|
||||
#: audits/const.py:18 perms/const.py:14
|
||||
msgid "Download"
|
||||
msgstr "下载"
|
||||
|
||||
@ -2146,7 +2144,7 @@ msgstr "下载"
|
||||
msgid "Rename dir"
|
||||
msgstr "映射目录"
|
||||
|
||||
#: audits/const.py:23 rbac/tree.py:232 terminal/api/session/session.py:234
|
||||
#: audits/const.py:23 rbac/tree.py:232
|
||||
#: terminal/templates/terminal/_msg_command_warning.html:18
|
||||
#: terminal/templates/terminal/_msg_session_sharing.html:10
|
||||
msgid "View"
|
||||
@ -2158,7 +2156,7 @@ msgstr "查看"
|
||||
msgid "Create"
|
||||
msgstr "创建"
|
||||
|
||||
#: audits/const.py:29 perms/const.py:12
|
||||
#: audits/const.py:28 perms/const.py:12
|
||||
msgid "Connect"
|
||||
msgstr "连接"
|
||||
|
||||
@ -5952,8 +5950,8 @@ msgstr "不支持批量创建"
|
||||
msgid "Storage is invalid"
|
||||
msgstr "存储无效"
|
||||
|
||||
#: terminal/models/applet/applet.py:30 xpack/plugins/license/models.py:86
|
||||
msgid "Community Edition"
|
||||
#: terminal/models/applet/applet.py:29
|
||||
msgid "Community"
|
||||
msgstr "社区版"
|
||||
|
||||
#: terminal/models/applet/applet.py:31
|
||||
@ -7747,7 +7745,7 @@ msgstr "规则值"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:317 xpack/plugins/cloud/serializers/task.py:70
|
||||
msgid "Strategy rule"
|
||||
msgstr "策略规则"
|
||||
msgstr "条件"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:332
|
||||
msgid "Action attr"
|
||||
@ -7759,7 +7757,7 @@ msgstr "动作值"
|
||||
|
||||
#: xpack/plugins/cloud/models.py:341 xpack/plugins/cloud/serializers/task.py:73
|
||||
msgid "Strategy action"
|
||||
msgstr "策略动作"
|
||||
msgstr "动作"
|
||||
|
||||
#: xpack/plugins/cloud/providers/aws_international.py:18
|
||||
msgid "China (Beijing)"
|
||||
|
@ -90,7 +90,7 @@ class SessionViewSet(RecordViewLogMixin, OrgBulkModelViewSet):
|
||||
]
|
||||
extra_filter_backends = [DatetimeRangeFilterBackend]
|
||||
rbac_perms = {
|
||||
'download': ['terminal.download_sessionreplay']
|
||||
'download': ['terminal.download_sessionreplay'],
|
||||
}
|
||||
permission_classes = [RBACPermission | IsSessionAssignee]
|
||||
|
||||
@ -146,8 +146,26 @@ class SessionViewSet(RecordViewLogMixin, OrgBulkModelViewSet):
|
||||
)
|
||||
return response
|
||||
|
||||
@action(methods=[GET], detail=False, permission_classes=[IsAuthenticated], url_path='online-info', )
|
||||
def online_info(self, request, *args, **kwargs):
|
||||
asset = self.request.query_params.get('asset_id')
|
||||
account = self.request.query_params.get('account')
|
||||
if asset is None or account is None:
|
||||
return Response({'count': None})
|
||||
|
||||
queryset = Session.objects.filter(is_finished=True) \
|
||||
.filter(asset_id=asset) \
|
||||
.filter(protocol='rdp') # 当前只统计 rdp 协议的会话
|
||||
if '(' in account and ')' in account:
|
||||
queryset = queryset.filter(account=account)
|
||||
else:
|
||||
queryset = queryset.filter(account__endswith='({})'.format(account))
|
||||
count = queryset.count()
|
||||
return Response({'count': count})
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset().prefetch_related('terminal') \
|
||||
queryset = super().get_queryset() \
|
||||
.prefetch_related('terminal') \
|
||||
.annotate(terminal_display=F('terminal__name'))
|
||||
return queryset
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user