主分支代码

This commit is contained in:
robin
2026-02-07 20:30:31 +08:00
parent 3b042d1dad
commit bc223fd1aa
65 changed files with 1969 additions and 188 deletions

View File

@@ -1,4 +1,4 @@
<first-menu>
<first-menu v-if="firstMenuItem !== 'clickhouse'">
<menu-item href="/db">所有节点</menu-item>
<span class="item disabled">|</span>
<menu-item :href="'/db/node?nodeId=' + node.id" code="node">"{{node.name}}"详情</menu-item>

View File

@@ -0,0 +1,46 @@
{$layout}
{$template "menu"}
<h3>ClickHouse 配置</h3>
<p class="comment">用于访问日志列表查询logs_ingest 表)。配置后,访问日志列表将优先从 ClickHouse 读取;不配置则仅从 MySQL 读取。留空表示不使用 ClickHouse。</p>
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success" @submit.prevent="onSubmit">
<csrf-token></csrf-token>
<table class="ui table definition selectable">
<tr>
<td class="title">连接地址Host</td>
<td>
<input type="text" name="host" maxlength="200" ref="focus" placeholder="如 127.0.0.1 或 clickhouse.example.com" :value="config.host"/>
<p class="comment">ClickHouse 服务器地址。</p>
</td>
</tr>
<tr>
<td>端口Port</td>
<td>
<input type="number" name="port" min="1" max="65535" style="width:6em" :value="config.port"/>
<p class="comment">HTTP 接口端口,默认 8123。</p>
</td>
</tr>
<tr>
<td>用户名User</td>
<td>
<input type="text" name="user" maxlength="100" :value="config.user"/>
</td>
</tr>
<tr>
<td>密码Password</td>
<td>
<input type="password" name="password" maxlength="200" placeholder="不修改请留空" value=""/>
<p class="comment">留空则不修改已保存的密码。</p>
</td>
</tr>
<tr>
<td>数据库名Database</td>
<td>
<input type="text" name="database" maxlength="100" placeholder="default" :value="config.database"/>
<p class="comment">logs_ingest 表所在库,默认 default。</p>
</td>
</tr>
</table>
<submit-btn></submit-btn>
</form>

View File

@@ -0,0 +1,12 @@
Tea.context(function () {
this.success = function () {
teaweb.success("保存成功")
}
this.onSubmit = function (e) {
e.preventDefault()
e.stopPropagation()
Tea.action("$").post().form(e.target).success(function () {
Tea.Vue.success()
})
}
})

View File

@@ -15,13 +15,14 @@
<td>
<select class="ui dropdown auto-width" name="type" v-model="type">
<option value="">[选择类型]</option>
<option v-for="type in types" :value="type.code">{{type.name}}</option>
<option v-for="t in types" :value="t.code">{{t.name}}</option>
</select>
<p class="comment">可选:文件、文件+MySQL、文件+ClickHouse、文件+MySQL+ClickHouse、ElasticSearch、TCP、Syslog、命令行等。</p>
</td>
</tr>
<!-- 文件 -->
<tbody v-show="type == 'file'">
<!-- 文件(含 文件 / 文件+MySQL / 文件+ClickHouse / 文件+MySQL+ClickHouse -->
<tbody v-show="type == 'file' || type == 'file_mysql' || type == 'file_clickhouse' || type == 'file_mysql_clickhouse'">
<tr>
<td>日志文件路径 *</td>
<td>

View File

@@ -16,12 +16,14 @@
<tr>
<td>存储类型 *</td>
<td>
{{policy.typeName}}
<select class="ui dropdown auto-width" name="type" v-model="policy.typeDisplay">
<option v-for="t in types" :value="t.code">{{t.name}}</option>
</select>
</td>
</tr>
<!-- 文件 -->
<tbody v-show="type == 'file'">
<tbody v-show="policy.typeDisplay == 'file' || policy.typeDisplay == 'file_mysql' || policy.typeDisplay == 'file_clickhouse' || policy.typeDisplay == 'file_mysql_clickhouse'">
<tr>
<td>日志文件路径 *</td>
<td>
@@ -52,7 +54,7 @@
</tbody>
<!-- Elastic Search -->
<tbody v-show="type == 'es'">
<tbody v-show="policy.typeDisplay == 'es'">
<tr>
<td>Endpoint *</td>
<td>
@@ -114,7 +116,7 @@
</tbody>
<!-- TCP Socket -->
<tbody v-show="type == 'tcp'">
<tbody v-show="policy.typeDisplay == 'tcp'">
<tr>
<td>网络协议 *</td>
<td>
@@ -134,7 +136,7 @@
</tbody>
<!-- Syslog -->
<tbody v-show="type == 'syslog'">
<tbody v-show="policy.typeDisplay == 'syslog'">
<tr>
<td>网络协议</td>
<td>
@@ -188,7 +190,7 @@
</tbody>
<!-- 命令行输入流 -->
<tbody v-show="type == 'command'">
<tbody v-show="policy.typeDisplay == 'command'">
<tr>
<td>可执行文件 *</td>
<td>