帮助文档

自定义小部件

ManageEngine Log360 Cloud中的小组件是可嵌入的UI组件,您可以使用我们的 JS软件开发工具包自行创建。这些小组件可用于执行某些功能,能够无缝利用第三方应用的数据。

例如,通过Log360 Cloud中的自定义小组件,您可以将EDR或电子邮件安全解决方案中的数据无缝集成到Log360 Cloud,实现监控、分析和采取必要行动——全部在一个平台上完成。

注意:
  • 自定义小组件可在 所有 Log360 Cloud版本中创建。
  • 请参阅 此页面 了解支持的浏览器版本。
  • 您最多可以在Log360 Cloud中创建 200个小组件。 Log360 Cloud中的小组件类型

仪表板小组件

自定义报告小组件

设置 → 管理 → 开发者空间 → 自定义小组件 ,您可以通过添加标签 菜单将其添加到仪表板,该小组件将显示在仪表板设置中。 如何在仪表板中创建自定义小组件

小组件可以作为自定义报告添加到Log360 Cloud。创建自定义小组件后,路径为

自定义小部件

自定义小部件

Web标签小组件

设置 → 管理 → 开发者空间 → 自定义小组件 ,您可以通过导航到报告 → 管理自定义报告 → 添加报告 ,然后选择报告类型为自定义小组件,将其添加为自定义报告。如何在自定义报告中创建自定义小组件

小组件可以添加为Log360 Cloud中的Web标签。创建自定义小组件后,

自定义小部件

自定义小部件

自定义小部件

自定义小部件

自定义小部件

事件工作台小组件

您可以通过点击...图标,导航到 ,您可以通过首选项 → 添加新的Web标签 ,选择要添加为Web标签的自定义小组件。如何在Web标签中创建自定义小组件

小组件可以添加到Log360 Cloud中的

自定义小部件

自定义小部件

自定义小部件

您可以在Log360 Cloud中为仪表板构建自定义小组件。创建自定义小组件后,路径为

事件工作台。此操作可直接在 事件工作台 设置 自定义小部件 标签中完成,允许您将自定义小组件无缝集成到事件工作台。 如何在事件工作台中创建自定义小组件在Log360 Cloud中添加自定义小组件

您可以使用Zoho扩展工具包(ZET)向Log360 Cloud添加自定义小组件。

自定义小部件

自定义小部件

使用ZET创建自定义小组件

ZET,即Zoho扩展工具包,是一个命令行界面(CLI),帮助开发者为ManageEngine Log360 Cloud构建和打包自定义小组件。

CLI是一种基于文本的界面,允许用户通过输入特定命令来与软件交互,接收响应,并直接从终端或命令提示符执行操作。虽然图形用户界面(GUI)提供可视化交互,但CLI为开发者提供了一种更简便高效的工作方式,尤其适用于开发应用程序、管理软件甚至构建操作系统。

以下是如何使用ZET构建自定义小组件,并将这些小组件打包集成到ManageEngine Log360 Cloud中以增强功能。

安装必要组件

访问官方Node.js网站:

https://nodejs.org/en/download/

先决条件

该命令将返回已安装的Node.js版本,例如v14.18.1。

检查npm版本

npm -v

该命令将返回已安装的npm版本,例如6.14.12。

如果两个命令都返回版本号,表示Node.js和npm已成功安装。

安装Zoho扩展工具包(ZET)CLI

按照以下步骤安装ZET CLI:

安装ZET CLI包

运行以下命令安装zapps CLI node包:

npm install -g zoho-extension-toolkit

验证安装

安装完成后,运行以下命令确认安装成功:

$ zet //

如果安装成功,将显示与zet命令相关的帮助信息。

使用ZET创建新项目

按以下步骤使用Zoho扩展工具包(ZET)创建新项目:

初始化新项目

运行以下命令创建新项目:

zet init

该命令会列出可用的Zoho和ManageEngine服务。请选择您要创建项目模板的相应服务。

验证服务器启动

项目创建完成且本地开发服务器启动后,通过浏览器打开以下任意URL验证状态:

清单文件:http://localhost:5000/plugin-manifest.json

小组件预览:http://localhost:5000/app/widget.html

  • 如果这些URL能正常加载,说明您的项目已成功创建,本地服务器正在运行。
  • 在您的小组件项目中包含资源

渲染自定义小组件所需的所有必要文件均存储在“

Including Resources in Your Widget Project

All necessary files required for rendering your custom widget are stored inside the "应用你的项目的 "文件夹。

启动服务器

若要在本地运行你的应用并在沙盒实例中测试它,请使用以下命令启动本地HTTP服务器:

$ zet run

这将在你的本地机器上启动HTTP服务器,地址为 端口 5000。运行命令前,请确保该端口未被其他进程占用。

验证服务器

服务器启动后,在你的网页浏览器中打开以下URL,以检查服务器是否成功运行:

http://127.0.0.1:5000/app/widget.html

如果页面正确加载,你的小部件现已在本地环境中运行并可供测试。

验证和打包应用

在上传应用之前,务必正确验证和打包。请按照以下步骤操作:

验证应用

运行以下命令以检查应用包中的任何问题:

$ zet validate

该命令将扫描你的应用是否存在违规。如果发现问题,必须先解决才能继续上传。

打包应用

验证成功后,运行以下命令生成可上传的ZIP文件:

$ zet pack

这将在你的项目目录的 "dist" 文件夹中创建ZIP文件。然后可以上传此打包文件到 Log360 Cloud 进行部署。

将创建的小部件添加到Log360 Cloud

按照以下步骤将自定义小部件添加到Log360 Cloud:

a) 导航到 Developer Space

进入 设置 → Developer Space → Custom Widgets Log360 Cloud中的小组件类型

自定义小部件

b) 访问开发者文档

Developer Documentation 链接提供了有关如何为Log360 Cloud构建自定义小部件的详细说明。查阅该文档以获取更多信息。

c) 查看示例小部件

Sample Widgets 部分将带你进入Log360 Cloud中预创建的小部件。

  • 这些默认小部件作为示例,帮助你理解如何设计和使用自定义小部件。
  • 你可以下载并解压示例小部件,然后在代码编辑器中打开,了解其工作原理。

自定义小部件

d) 创建新小部件

要创建新小部件,点击 创建自定义小部件 → 立即创建.

  • Log360 Cloud还提供一个可用小部件列表,你可以通过选择自定义小部件来添加。
  • 自定义小部件

    自定义小部件

e) 填写小部件创建表单

创建自定义小部件表单:

  • 中,提供 小部件名称 是否正确安装: 描述.
  • 从以下选项中选择 小部件类型
    • 自定义报告小组件
    • Web标签小组件
    • 您可以在Log360 Cloud中为仪表板构建自定义小组件。创建自定义小组件后,路径为
    • 事件工作台小组件
  • 选择 查看小部件位置 以确定你的自定义小部件将在Log360 Cloud中的放置位置。
  • 自定义小部件

    自定义小部件

    自定义小部件

    自定义小部件

f) Log360 Cloud中的自定义小部件创建模式

Log360 Cloud支持 两种模式 用于自定义小部件创建:

1. 开发模式

  • 在此模式下,你可以 本地运行和测试 你的自定义小部件,随后再部署。
  • 运行以下命令启动小部件:

    $ zet run

  • 将小部件的URL(例如:http://localhost:5000/app/widget.html)添加到Log360 Cloud中的 小部件URL 输入字段。
注意
  • 对小部件代码所做的任何更改 会自动反映 在Log360 Cloud中(无论是在 仪表盘、网页标签还是自定义报告中)。).
  • 开发模式 不适用于事件工作台小部件,因为plugin-manifest.json中需要字段映射。
  • 开发模式下的自定义小部件仅对开发者可见, 其他用户不可见。 2. 部署模式

a) 上传ZIP文件(ZET包)

开发自定义小部件后,使用以下命令打包:

  • 这将创建一个

    $ zet pack

  • ZIP文件 放置在你的项目目录的 dist 文件夹中。 将此ZIP文件上传至Log360 Cloud以部署小部件。
  • b) 外部URL嵌入

你也可以不用ZET,而是将

  • 任何外部URL 嵌入为Log360 Cloud中的小部件。 该选项允许无缝集成第三方仪表盘或网页应用。
  • 如何在Log360 Cloud中包含自定义小部件

自定义小部件可以添加到Log360 Cloud的以下部分:

网页标签

创建

HTML页面 后,将以下配置添加至 widgets列表中的 plugin-manifest.json 文件内:

{
 "location": "dashboard",
 "url": "/app/widget.html",
 "name": "Sample Log360 Cloud widget",
 "display_name": "Sample Log360 Cloud widget"
}

这样确保小部件显示在 Log360 Cloud仪表盘上。.

向自定义报告添加小部件

要将自定义小部件添加到 自定义报告,请将以下配置添加到 plugin-manifest.json 文件内:

{
 "location": "custom_reports",
 "url": "/app/widget.html",
 "name": "Sample Log360 Cloud widget",
 "display_name": "Sample Log360 Cloud widget"
}

文件中: 这允许小部件用作.

自定义报告小部件。

向网页标签添加自定义小部件 要将自定义小部件作为网页标签

{
 "location": "web_tab",
 "url": "/app/widget.html",
 "name": "Sample Log360 Cloud widget",
 "display_name": "Sample Log360 Cloud widget"
}

添加,请将以下配置添加至plugin-manifest.json文件中的widgets列表: 这使用户能够在Log360 Cloud中以网页标签方式访问小部件。.

向事件工作台添加自定义小部件

向网页标签添加自定义小部件 要将自定义小部件作为网页标签

{
 "location": "web_tab",
 "url": "/app/widget.html",
 "name": "Sample Log360 Cloud widget",
 "display_name": "Sample Log360 Cloud widget"
}

添加,请将以下配置添加至plugin-manifest.json文件中的widgets列表: 这使用户能够在Log360 Cloud中以网页标签方式访问小部件。.

向事件工作台添加自定义小部件

若要在 事件工作台中包含自定义小部件,使用如下配置:

{
 "location": "incident-workbench",
 "url": "/app/incident-workbench.html",
 "name": "Security Analysis",
 "display_name": 	"Security Analysis"
 "options": {
 "fieldName":"filehash"
}
}

该配置确保小部件与 事件工作台 事件工作台集成,实现实时事件分析。

重要提示

自定义小部件添加后,若修改并上传其name属性,将导致该小部件从其映射模块(仪表盘、报告、网页标签或事件工作台)中移除。

Log360 Cloud允许的模块位置如下:

  • "dashboard"
  • "custom_reports"
  • "webtab"
  • "incident-workbench"

在事件工作台添加自定义小部件不同于其他模块,因为需要将特定字段映射到小部件。添加小部件到事件工作台时,必须指定 选项 以映射 fieldName 到自定义小部件。

以下是一些重要字段:

  • HOSTNAME → 设备名称(数据/日志采集来源)
  • USERNAME → 与数据/日志相关联的用户
  • IPADDRESS → 数据/日志中捕获的IP地址
  • FILENAME → 数据/日志中的文件名
  • PROCESSNAME → 数据/日志中的进程名
  • FILEHASH → 数据/日志中对应文件的hash值
  • EMAIL → 数据/日志中捕获的用户邮箱
  • DOMAINNAME → 数据/日志中捕获的AD域名
  • PORT → 数据/日志中与实体相关联的端口
  • 协议 → 与数据/日志中的实体相关联的协议

将日志数据传递给Incident Workbench中的自定义控件

当与字段相关的 事件工作台 被点击时, 日志数据 与该行对应的数据将从表格数据传递到 自定义控件.

日志数据结构示例:

{
 "logUUID": 430453503444,
 "HOSTNAME": "EVENT-TEST",
 "USERNAME": "FELIX-9050",
 ...
}

如何编辑自定义控件

  1. 转到 Settings -> Admin -> Developer Space -> Custom Widgets
  2. 在管理自定义控件表中,点击编辑图标以编辑自定义控件
  3. 自定义小部件

    自定义小部件

如何删除自定义控件

  1. 转到 Settings -> Admin -> Developer Space -> Custom Widgets
  2. 在管理自定义控件表中,点击删除图标以删除自定义控件
  3. 自定义小部件

    自定义小部件

JS SDK:

JS SDK 提供了一套 JavaScript 函数,用于将 Logs360Cloud 功能集成到您的自定义控件中。这些 API 使您的控件与平台之间能够无缝交互。

控件使用:

LOGS360CLOUD.init()

该函数作为基础调用,用于建立自定义控件与产品之间的连接。初始化完成后,其他 JS API 才会被定义。

返回 promise

复制到剪贴板

LOGS360CLOUD.init().then(function (res) { console.log(res); });

LOGS360CLOUD.get(options)

从产品服务器获取产品数据,如元数据或自定义控件中的任何输入数据。请注意,只有 Logs360 API 可以通过此函数调用。

复制到剪贴板

var options ={url:"/api/v1/meta/log_types"}; LOGS360CLOUD.get(options).then(function(response) { console.log(response); }).catch(function(response) { console.log(response); });

LOGS360CLOUD.add(options)

从自定义控件向服务器添加数据。请注意,只有 Logs360 API 可以通过此函数调用。

复制到剪贴板

var options ={url:"/api/v1/search", params:{query:query, start_time:startTime, end_time:endTime, start_from: '1', limit:'1000', logtype:[logtype]}}; LOGS360CLOUD.add(options).then(function(response) { console.log(response); }).catch(function(response) { console.log(response); });

LOGS360CLOUD.showLoader(opts)

该函数用于在控件窗口显示加载指示器。通过视觉提示正在进行数据获取、API调用或后台计算等过程,提升用户体验。

复制到剪贴板

LOGS360CLOUD.showLoader(opts).then(function(response) { console.log(response); }).catch(function(response) { console.log(response); });

LOGS360CLOUD.hideLoder(opts)

该函数用于从控件窗口移除或隐藏加载指示器。通常在数据检索或 API 执行完成后调用。

复制到剪贴板

LOGS360CLOUD.hideLoder(opts).then(function(response) { console.log(response); }).catch(function(response) { console.log(response); });

LOGS360CLOUD.showNotification(opts)

该函数用于在控件中显示顶部通知。该通知可用于告知用户重要更新、警报或过程状态。

复制到剪贴板

var opts = { type: "success" , message: "message shown successfully",autoClose:true,duration:2000}; LOGS360CLOUD.showNotification(opts).then(function(response) { console.log(response); }).catch(function(response) { console.log(response); });

LOGS360CLOUD.HideNotification(opts)

该函数用于隐藏或移除控件窗口顶部通知。当需要在通知自动关闭前手动关闭,或者根据用户操作清除通知时,该功能十分有用。

复制到剪贴板

LOGS360CLOUD.hideLoader(opts).then(function(response) { console.log(response); }).catch(function(response) { console.log(response); })

LOGS360CLOUD.getConnections()

获取所有成功安装的 API 应用的详细信息。

复制到剪贴板

LOGS360CLOUD.getConnections().then( function(res){ console.log(res); });

LOGS360CLOUD.invokeUrl()

该函数通过发起 API 调用,从集成的第三方应用获取数据。该函数支持多种配置选项,如 URL、HTTP 方法、头信息、参数和负载,允许与外部服务无缝交互。

复制到剪贴板

let headers = [{ "headerName": "accept", "headerValue": "application/vnd.atlas.2023-01-01+json"}]; let params = [{"bodyParamName": "path", "bodyParamValue": "/dharun_test/sub folder/_ My Paper doc.paper" }]; var opts = { url: "https://cloud.mongodb.com/api/atlas/v2/groups?envelope=false& includeCount=true&itemsPerPage=100&pageNum=1&pretty=false", method : "GET", connectionLinkName: "mongotest", headers : headers, params: params }; LOGS360CLOUD.invokeUrl(opts).then( function(res){ console.log(res); });