From 4754aefbfa7cc048a1fc2367205bcd7fd525895d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=8C=E6=A3=AE?= Date: Mon, 22 Jul 2024 17:20:08 +0800 Subject: [PATCH] =?UTF-8?q?ES=20=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 萌森 --- .../8.14.3/config/elasticsearch.yml | 82 ++++++++ apps/elastic-elasticsearch/8.14.3/data.yml | 53 +++++ .../8.14.3/docker-compose.yml | 39 ++++ .../8.14.3/scripts/init.sh | 15 ++ .../8.14.3/scripts/uninstall.sh | 10 + .../8.14.3/scripts/upgrade.sh | 15 ++ apps/elastic-elasticsearch/README.md | 33 ++++ apps/elastic-elasticsearch/data.yml | 19 ++ apps/elastic-elasticsearch/logo.png | Bin 0 -> 36919 bytes apps/elastic-kibana/8.14.3/config/kibana.yml | 183 ++++++++++++++++++ apps/elastic-kibana/8.14.3/data.yml | 45 +++++ apps/elastic-kibana/8.14.3/docker-compose.yml | 32 +++ apps/elastic-kibana/8.14.3/scripts/init.sh | 15 ++ .../8.14.3/scripts/uninstall.sh | 10 + apps/elastic-kibana/8.14.3/scripts/upgrade.sh | 15 ++ apps/elastic-kibana/README.md | 46 +++++ apps/elastic-kibana/data.yml | 19 ++ apps/elastic-kibana/logo.png | Bin 0 -> 36919 bytes 18 files changed, 631 insertions(+) create mode 100644 apps/elastic-elasticsearch/8.14.3/config/elasticsearch.yml create mode 100644 apps/elastic-elasticsearch/8.14.3/data.yml create mode 100644 apps/elastic-elasticsearch/8.14.3/docker-compose.yml create mode 100644 apps/elastic-elasticsearch/8.14.3/scripts/init.sh create mode 100644 apps/elastic-elasticsearch/8.14.3/scripts/uninstall.sh create mode 100644 apps/elastic-elasticsearch/8.14.3/scripts/upgrade.sh create mode 100644 apps/elastic-elasticsearch/README.md create mode 100644 apps/elastic-elasticsearch/data.yml create mode 100644 apps/elastic-elasticsearch/logo.png create mode 100644 apps/elastic-kibana/8.14.3/config/kibana.yml create mode 100644 apps/elastic-kibana/8.14.3/data.yml create mode 100644 apps/elastic-kibana/8.14.3/docker-compose.yml create mode 100644 apps/elastic-kibana/8.14.3/scripts/init.sh create mode 100644 apps/elastic-kibana/8.14.3/scripts/uninstall.sh create mode 100644 apps/elastic-kibana/8.14.3/scripts/upgrade.sh create mode 100644 apps/elastic-kibana/README.md create mode 100644 apps/elastic-kibana/data.yml create mode 100644 apps/elastic-kibana/logo.png diff --git a/apps/elastic-elasticsearch/8.14.3/config/elasticsearch.yml b/apps/elastic-elasticsearch/8.14.3/config/elasticsearch.yml new file mode 100644 index 000000000..f0705b19e --- /dev/null +++ b/apps/elastic-elasticsearch/8.14.3/config/elasticsearch.yml @@ -0,0 +1,82 @@ +# ======================== Elasticsearch Configuration ========================= +# +# NOTE: Elasticsearch comes with reasonable defaults for most settings. +# Before you set out to tweak and tune the configuration, make sure you +# understand what are you trying to accomplish and the consequences. +# +# The primary way of configuring a node is via this file. This template lists +# the most important settings you may want to configure for a production cluster. +# +# Please consult the documentation for further information on configuration options: +# https://www.elastic.co/guide/en/elasticsearch/reference/index.html +# +# ---------------------------------- Cluster ----------------------------------- +# +# Use a descriptive name for your cluster: +# +cluster.name: elasticsearch-cluster + # + # ------------------------------------ Node ------------------------------------ + # + # Use a descriptive name for the node: + # + #node.name: node-1 + # + # Add custom attributes to the node: + # + #node.attr.rack: r1 + # + # ----------------------------------- Paths ------------------------------------ + # + # Path to directory where to store the data (separate multiple locations by comma): + # + @path.data@ + # + # Path to log files: + # + @path.logs@ +# +# ----------------------------------- Memory ----------------------------------- +# +# Lock the memory on startup: +# +#bootstrap.memory_lock: true +# +# Make sure that the heap size is set to about half the memory available +# on the system and that the owner of the process is allowed to use this +# limit. +# +# Elasticsearch performs poorly when the system is swapping the memory. +# +# ---------------------------------- Network ----------------------------------- +# +# By default Elasticsearch is only accessible on localhost. Set a different +# address here to expose this node on the network: +# +network.host: 0.0.0.0 +# +# By default Elasticsearch listens for HTTP traffic on the first free port it +# finds starting at 9200. Set a specific HTTP port here: +# +http.port: 9200 +# +# For more information, consult the network module documentation. +# +# --------------------------------- Discovery ---------------------------------- +# +# Pass an initial list of hosts to perform discovery when this node is started: +# The default list of hosts is ["127.0.0.1", "[::1]"] +# +#discovery.seed_hosts: ["host1", "host2"] +# +# Bootstrap the cluster using an initial set of master-eligible nodes: +# +#cluster.initial_master_nodes: ["node-1", "node-2"] +# +# For more information, consult the discovery and cluster formation module documentation. +# +# ---------------------------------- Various ----------------------------------- +# +# Allow wildcard deletion of indices: +# +#action.destructive_requires_name: false diff --git a/apps/elastic-elasticsearch/8.14.3/data.yml b/apps/elastic-elasticsearch/8.14.3/data.yml new file mode 100644 index 000000000..add08a03e --- /dev/null +++ b/apps/elastic-elasticsearch/8.14.3/data.yml @@ -0,0 +1,53 @@ +additionalProperties: + formFields: + - default: "/home/elasticsearch" + edit: true + envKey: BARK_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 9200 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: 9300 + edit: true + envKey: PANEL_APP_PORT_API + labelZh: 通讯端口 + labelEn: Communication port + required: true + rule: paramPort + type: number + - default: "elasticsearch-cluster" + edit: true + envKey: ES_SETTING_CLUSTER_NAME + labelZh: 节点名称 + labelEn: Cluster name + required: true + type: text + - default: "" + edit: true + envKey: ELASTIC_PASSWORD + labelZh: Elasticsearch 密码 (elastic) + labelEn: Elasticsearch password (elastic) + required: false + type: password + - default: "" + edit: true + envKey: KIBANA_PASSWORD + labelZh: Kibana 密码 (kibana_system) + labelEn: Kibana password (kibana_system) + required: false + type: password + - default: "" + edit: true + envKey: ENROLLMENT_TOKEN + labelZh: 注册令牌 (节点) + labelEn: Enrollment token (node) + required: false + type: text diff --git a/apps/elastic-elasticsearch/8.14.3/docker-compose.yml b/apps/elastic-elasticsearch/8.14.3/docker-compose.yml new file mode 100644 index 000000000..26568da62 --- /dev/null +++ b/apps/elastic-elasticsearch/8.14.3/docker-compose.yml @@ -0,0 +1,39 @@ +version: "3.8" + +networks: + 1panel-network: + external: true + +services: + elasticsearch: + image: elasticsearch:8.14.3 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + tty: true + ulimits: + memlock: + soft: -1 + hard: -1 + ports: + - ${PANEL_APP_PORT_HTTPS}:9200 + - ${PANEL_APP_PORT_API}:9300 + env_file: + - /etc/1panel/envs/global.env + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml + - ${BARK_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs + - ${BARK_ROOT_PATH}/config:/usr/share/elasticsearch/config + - ${BARK_ROOT_PATH}/data:/usr/share/elasticsearch/data + - ${BARK_ROOT_PATH}/data:/usr/share/elasticsearch/logs + - ${BARK_ROOT_PATH}/data:/usr/share/elasticsearch/plugins + environment: + - ES_SETTING_HTTP_PORT=9200 + - ES_SETTING_CLUSTER_NAME=elasticsearch-cluster + - ES_SETTING_LICENSE=basic + - MEM_LIMIT=1073741824 + - ES_SETTING_BOOTSTRAP_MEMORY__LOCK=true diff --git a/apps/elastic-elasticsearch/8.14.3/scripts/init.sh b/apps/elastic-elasticsearch/8.14.3/scripts/init.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/elastic-elasticsearch/8.14.3/scripts/init.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/elastic-elasticsearch/8.14.3/scripts/uninstall.sh b/apps/elastic-elasticsearch/8.14.3/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/elastic-elasticsearch/8.14.3/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/elastic-elasticsearch/8.14.3/scripts/upgrade.sh b/apps/elastic-elasticsearch/8.14.3/scripts/upgrade.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/elastic-elasticsearch/8.14.3/scripts/upgrade.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/elastic-elasticsearch/README.md b/apps/elastic-elasticsearch/README.md new file mode 100644 index 000000000..dd899e657 --- /dev/null +++ b/apps/elastic-elasticsearch/README.md @@ -0,0 +1,33 @@ +# Elasticsearch + +搜索并分析您的数据 + +![Elasticsearch](https://file.lifebus.top/imgs/elasticsearch_logo.svg) + +Elasticsearch 是 Elastic Stack 核心的分布式搜索和分析引擎。 Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 +Elasticsearch 中。 +Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。 Elasticsearch 是索引、搜索和分析魔法发生的地方。 + +## 安装说明 + +### 单节点安装 + ++ `节点名称` 配置 + +用于标识集群中的节点。默认情况下,节点名称是随机生成的 UUID。 + ++ `Elasticsearch 密码 (elastic)` 配置 + +单节点启动必填 + +用于保护内置用户 `elastic` 的密码。默认情况下,密码是随机生成的。 + ++ `Kibana 密码 (kibana_system)` 配置 + +单节点启动必填 + +用于保护内置用户 `kibana_system` 的密码。默认情况下,密码是随机生成的。 + ++ `注册令牌 (节点)` 配置 + +单节点启动可忽略, 如果是作为 `集群` 中的节点启动,此项 `必须` 填写,可忽略密码配置。 diff --git a/apps/elastic-elasticsearch/data.yml b/apps/elastic-elasticsearch/data.yml new file mode 100644 index 000000000..44d12c2e5 --- /dev/null +++ b/apps/elastic-elasticsearch/data.yml @@ -0,0 +1,19 @@ +name: Kibana +title: 可视化Elasticsearch数据并导航Elastic堆栈 +description: 可视化Elasticsearch数据并导航Elastic堆栈 +additionalProperties: + key: kibana + name: Kibana + tags: + - WebSite + - Middleware + - Tool + - Local + shortDescZh: 可视化Elasticsearch数据并导航Elastic堆栈 + shortDescEn: Visualize Elasticsearch data and navigate the Elastic stack + type: website + crossVersionUpdate: true + limit: 0 + website: https://www.elastic.co/ + github: https://github.com/elastic/kibana/ + document: https://www.elastic.co/docs/ diff --git a/apps/elastic-elasticsearch/logo.png b/apps/elastic-elasticsearch/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..116cb930f44cbab3e92e6168be1f224c5db7eec3 GIT binary patch literal 36919 zcmV-7kjQU|P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv00000008+zyMF)x010qNS#tmY4lDow4lDuro9++*000McNliru zI#vJxfB;EEK~#9!?EQI|oo9U~cz^HbIp@@>l4Qv$*~aW(b`0LI!8V<|-IM9=NzY8r z+cVug-Th{|ug-M$bUJCk3yayZ2NDQ-Rsu0=0)_;TY;2QELP$agA^XB^3>fgHwW`i} z?)MMbV1mJtE$OLK_4&XhB)L@jR$WH*oUeZO{YwA<0000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z000000000000000000000000000000000000N6xI-vI!Q#+UzxpGuOMBs=@g0sz3K zR+3DT@|7gx<-O1DI}gBp8uT3i;21nP$=j0*`wjvCz@}A_ytkHIp5)HH!vGu&1t2g@ zW|Eu{1t0(b{rOl*eO*btb9v8YeP;nUDox)30001BN_;xWbJ{xm#H5b<&H`}MOaKA^ z0Kk2_HOW`R8d+&4l&I52v6o3E# z0PyWilKfJw-K*P4SzA{A0aHi;2mk;8-`@L5^3sxK-!A1JFr_R30RRAid-u^=^4z3+ zY20*uX92k16o3E#0Pw9oljQQYHhqpl5o1Q-AS zfX(KQYH~$NZeHGdS>IUzPB;^Q0001NCZA1m`DoJq*`Gh?mcFw9oD?Pi0RRBlEN)Hm zg2|-0p*E9z_b>ib-+2H|3KM_;003+TM>hU;+Wlx({~<#lSTmu006*7*Clyl zO?h=`>e}vWZTtl`7e{~r007wN-k(x_xFmNj?=krYY(6Fc0RRBl$Ud6n%2MhVx=HOj z3qUUvfB*mhY*e33az$Imf7W$PPP@+ZAFw$o00961*obaV$_rN8rR&ETWcS`@^_>Tx zHwr)i001_c!%2Rs*7~;L_|Dk)3v6}@KmY&$Hj*yMn`+6c(qv8f2Ve^@0000R%llKx zOG>hDdC#-^&H}J5m;eL-0AQo|Xp-lq)-Ndk0KP#12mk=UM(~-GT$w@pr|G)BvjD6s z3P1n=0H)n-NnTV-uFqtWs-wRE-^v6a0002f zs!Q_5l)S2>t}6ck?wtY<004k#^?{naxYT;*mz%}DvjD7H3P1n=0H)C&CAp#`U#z9% zN$>wpedhsKw-kT?002yz&nCINr2N^fNtX9Kr|&!f>zV=(004k#a$AxY9w?(5#wmI1 zUgaOaeX#`?004k#aX86Or{t{*b+s-l{{W7P0uTTIfN9Vrc~g>Cm73LE%0Gak<_ItV z007fqPfdAgk~@@t0LMlF2mk=UdiO_3xuP_ao3c9FcNT!DqW}Z|0AM})Op?oo-Q-Ve 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 JPDHLkV1lTVu)qKS literal 0 KcmV+b0RR6000031 diff --git a/apps/elastic-kibana/8.14.3/config/kibana.yml b/apps/elastic-kibana/8.14.3/config/kibana.yml new file mode 100644 index 000000000..cd426f430 --- /dev/null +++ b/apps/elastic-kibana/8.14.3/config/kibana.yml @@ -0,0 +1,183 @@ +# For more configuration options see the configuration guide for Kibana in +# https://www.elastic.co/guide/index.html + +# =================== System: Kibana Server =================== +# Kibana is served by a back end server. This setting specifies the port to use. +server.port: 5601 + +# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values. +# The default is 'localhost', which usually means remote machines will not be able to connect. +# To allow connections from remote users, set this parameter to a non-loopback address. +server.host: "0.0.0.0" + +# Enables you to specify a path to mount Kibana at if you are running behind a proxy. +# Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath +# from requests it receives, and to prevent a deprecation warning at startup. +# This setting cannot end in a slash. +#server.basePath: "" + +# Specifies whether Kibana should rewrite requests that are prefixed with +# `server.basePath` or require that they are rewritten by your reverse proxy. +# Defaults to `false`. +#server.rewriteBasePath: false + +# Specifies the public URL at which Kibana is available for end users. If +# `server.basePath` is configured this URL should end with the same basePath. +#server.publicBaseUrl: "" + +# The maximum payload size in bytes for incoming server requests. +#server.maxPayload: 1048576 + +# The Kibana server's name. This is used for display purposes. +server.name: "kibana-node" + +# =================== System: Kibana Server (Optional) =================== +# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively. +# These settings enable SSL for outgoing requests from the Kibana server to the browser. +#server.ssl.enabled: false +#server.ssl.certificate: /path/to/your/server.crt +#server.ssl.key: /path/to/your/server.key + +# =================== System: Elasticsearch =================== +# The URLs of the Elasticsearch instances to use for all your queries. +#elasticsearch.hosts: ["http://localhost:9200"] + +# If your Elasticsearch is protected with basic authentication, these settings provide +# the username and password that the Kibana server uses to perform maintenance on the Kibana +# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which +# is proxied through the Kibana server. +#elasticsearch.username: "kibana_system" +#elasticsearch.password: "pass" + +# Kibana can also authenticate to Elasticsearch via "service account tokens". +# Service account tokens are Bearer style tokens that replace the traditional username/password based configuration. +# Use this token instead of a username/password. +# elasticsearch.serviceAccountToken: "my_token" + +# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of +# the elasticsearch.requestTimeout setting. +#elasticsearch.pingTimeout: 1500 + +# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value +# must be a positive integer. +#elasticsearch.requestTimeout: 30000 + +# The maximum number of sockets that can be used for communications with elasticsearch. +# Defaults to `Infinity`. +#elasticsearch.maxSockets: 1024 + +# Specifies whether Kibana should use compression for communications with elasticsearch +# Defaults to `false`. +#elasticsearch.compression: false + +# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side +# headers, set this value to [] (an empty list). +#elasticsearch.requestHeadersWhitelist: [ authorization ] + +# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten +# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration. +#elasticsearch.customHeaders: {} + +# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable. +#elasticsearch.shardTimeout: 30000 + +# =================== System: Elasticsearch (Optional) =================== +# These files are used to verify the identity of Kibana to Elasticsearch and are required when +# xpack.security.http.ssl.client_authentication in Elasticsearch is set to required. +#elasticsearch.ssl.certificate: /path/to/your/client.crt +#elasticsearch.ssl.key: /path/to/your/client.key + +# Enables you to specify a path to the PEM file for the certificate +# authority for your Elasticsearch instance. +#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ] + +# To disregard the validity of SSL certificates, change this setting's value to 'none'. +#elasticsearch.ssl.verificationMode: full + +# =================== System: Logging =================== +# Set the value of this setting to off to suppress all logging output, or to debug to log everything. Defaults to 'info' +#logging.root.level: debug + +# Enables you to specify a file where Kibana stores log output. +#logging.appenders.default: +# type: file +# fileName: /var/logs/kibana.log +# layout: +# type: json + +# Example with size based log rotation +#logging.appenders.default: +# type: rolling-file +# fileName: /var/logs/kibana.log +# policy: +# type: size-limit +# size: 256mb +# strategy: +# type: numeric +# max: 10 +# layout: +# type: json + +# Logs queries sent to Elasticsearch. +#logging.loggers: +# - name: elasticsearch.query +# level: debug + +# Logs http responses. +#logging.loggers: +# - name: http.server.response +# level: debug + +# Logs system usage information. +#logging.loggers: +# - name: metrics.ops +# level: debug + +# Enables debug logging on the browser (dev console) +#logging.browser.root: +# level: debug + +# =================== System: Other =================== +# The path where Kibana stores persistent data not saved in Elasticsearch. Defaults to data +#path.data: data + +# Specifies the path where Kibana creates the process ID file. +#pid.file: /run/kibana/kibana.pid + +# Set the interval in milliseconds to sample system and process performance +# metrics. Minimum is 100ms. Defaults to 5000ms. +#ops.interval: 5000 + +# Specifies locale to be used for all localizable strings, dates and number formats. +# Supported languages are the following: English (default) "en", Chinese "zh-CN", Japanese "ja-JP", French "fr-FR". +i18n.locale: "zh-CN" + +# =================== Frequently used (Optional)=================== + +# =================== Saved Objects: Migrations =================== +# Saved object migrations run at startup. If you run into migration-related issues, you might need to adjust these settings. + +# The number of documents migrated at a time. +# If Kibana can't start up or upgrade due to an Elasticsearch `circuit_breaking_exception`, +# use a smaller batchSize value to reduce the memory pressure. Defaults to 1000 objects per batch. +#migrations.batchSize: 1000 + +# The maximum payload size for indexing batches of upgraded saved objects. +# To avoid migrations failing due to a 413 Request Entity Too Large response from Elasticsearch. +# This value should be lower than or equal to your Elasticsearch cluster’s `http.max_content_length` +# configuration option. Default: 100mb +#migrations.maxBatchSizeBytes: 100mb + +# The number of times to retry temporary migration failures. Increase the setting +# if migrations fail frequently with a message such as `Unable to complete the [...] step after +# 15 attempts, terminating`. Defaults to 15 +#migrations.retryAttempts: 15 + +# =================== Search Autocomplete =================== +# Time in milliseconds to wait for autocomplete suggestions from Elasticsearch. +# This value must be a whole number greater than zero. Defaults to 1000ms +#unifiedSearch.autocomplete.valueSuggestions.timeout: 1000 + +# Maximum number of documents loaded by each shard to generate autocomplete suggestions. +# This value must be a whole number greater than zero. Defaults to 100_000 +#unifiedSearch.autocomplete.valueSuggestions.terminateAfter: 100000 diff --git a/apps/elastic-kibana/8.14.3/data.yml b/apps/elastic-kibana/8.14.3/data.yml new file mode 100644 index 000000000..5655021c1 --- /dev/null +++ b/apps/elastic-kibana/8.14.3/data.yml @@ -0,0 +1,45 @@ +additionalProperties: + formFields: + - default: "/home/kibana" + edit: true + envKey: BARK_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 5601 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "['http://127.0.0.1:9200']" + edit: true + envKey: ELASTICSEARCH_HOSTS + labelZh: Elasticsearch 地址 + labelEn: Elasticsearch address + required: true + type: text + - default: "" + edit: true + envKey: ELASTICSEARCH_USERNAME + labelZh: Elasticsearch 用户名 + labelEn: Elasticsearch username + required: false + type: text + - default: "" + edit: true + envKey: ELASTICSEARCH_PASSWORD + labelZh: Elasticsearch 密码 + labelEn: Elasticsearch password + required: false + type: password + - default: "" + edit: true + envKey: ELASTICSEARCH_SERVICEACCOUNTTOKEN + labelZh: Elasticsearch 服务 账户令牌 + labelEn: Elasticsearch service account token + required: false + type: password diff --git a/apps/elastic-kibana/8.14.3/docker-compose.yml b/apps/elastic-kibana/8.14.3/docker-compose.yml new file mode 100644 index 000000000..9074a9d19 --- /dev/null +++ b/apps/elastic-kibana/8.14.3/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.8" + +networks: + 1panel-network: + external: true + +services: + kibana: + image: kibana:8.14.3 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:5601 + env_file: + - /etc/1panel/envs/global.env + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ./config/kibana.yml:/usr/share/kibana/config/kibana.yml + - ${BARK_ROOT_PATH}/config:/usr/share/kibana/config + - ${BARK_ROOT_PATH}/data:/usr/share/kibana/data + environment: + - SERVER_PORT=5601 + - SERVER_NAME="kibana-node" + - SERVER_HOST="0.0.0.0" + - I18N_LOCALE="zh-CN" + - SERVER_REWRITEBASEPATH=false + - SERVER_BASEPATH="" + - SERVER_PUBLICBASEURL="" diff --git a/apps/elastic-kibana/8.14.3/scripts/init.sh b/apps/elastic-kibana/8.14.3/scripts/init.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/elastic-kibana/8.14.3/scripts/init.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/elastic-kibana/8.14.3/scripts/uninstall.sh b/apps/elastic-kibana/8.14.3/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/elastic-kibana/8.14.3/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/elastic-kibana/8.14.3/scripts/upgrade.sh b/apps/elastic-kibana/8.14.3/scripts/upgrade.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/elastic-kibana/8.14.3/scripts/upgrade.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/elastic-kibana/README.md b/apps/elastic-kibana/README.md new file mode 100644 index 000000000..dd47a378b --- /dev/null +++ b/apps/elastic-kibana/README.md @@ -0,0 +1,46 @@ +# Kibana + +Kibana 是一个用户界面,可让您可视化 Elasticsearch 数据并导航 Elastic Stack。通过本教程了解可视化数据的基础知识。 + +![Kibana](https://file.lifebus.top/imgs/kibana_cover.png) + +Kibana 适合管理员、分析师和业务用户。作为管理员,您的角色是管理 Elastic Stack,从创建部署到将 Elasticsearch 数据导入 +Kibana,然后管理数据。 +作为分析师,您希望发现数据中的见解、在仪表板上可视化您的数据并分享您的发现。作为业务用户,您希望查看现有仪表板并深入了解详细信息。 + +Kibana 适用于所有类型的数据。您的数据可以是结构化或非结构化文本、数字数据、时间序列数据、地理空间数据、日志、指标、安全事件等。无论您的数据是什么,Kibana +都可以帮助您发现模式和关系并可视化结果。 + +## 特性 + ++ 搜索、观察和保护您的数据 + +从发现文档到分析日志再到查找安全漏洞,Kibana 是您访问这些功能及其他功能的门户。 + ++ 分析您的数据 + +搜索隐藏的见解,可视化您在图表、仪表、地图、图形等中发现的内容,并将它们组合在仪表板中。 + ++ 管理、监控和保护 Elastic Stack + +管理您的数据、监控 Elastic Stack 集群的运行状况并控制哪些用户可以访问哪些功能。 + +## 安装说明 + +> 登录账户信息,请从 `Elasticsearch` 日志中获取账户信息 +> +> 注册令牌,请从 `Elasticsearch` 日志中获取注册令牌信息 +> +> 首次登录地址,请查看日志获取登录地址信息 +> +> http://127.0.0.1:5601?code=xxxxxx + +### 登录方式 + ++ `用户名 + 密码` + +通过 `elastic` 或 `kibana_system` 用户 + `密码` 登录 + ++ `Elasticsearch 服务 账户令牌` + +通过 `Elasticsearch` 服务账户令牌登录,需要在 `Elasticsearch` 服务中获取 diff --git a/apps/elastic-kibana/data.yml b/apps/elastic-kibana/data.yml new file mode 100644 index 000000000..44d12c2e5 --- /dev/null +++ b/apps/elastic-kibana/data.yml @@ -0,0 +1,19 @@ +name: Kibana +title: 可视化Elasticsearch数据并导航Elastic堆栈 +description: 可视化Elasticsearch数据并导航Elastic堆栈 +additionalProperties: + key: kibana + name: Kibana + tags: + - WebSite + - Middleware + - Tool + - Local + shortDescZh: 可视化Elasticsearch数据并导航Elastic堆栈 + shortDescEn: Visualize Elasticsearch data and navigate the Elastic stack + type: website + crossVersionUpdate: true + limit: 0 + website: https://www.elastic.co/ + github: https://github.com/elastic/kibana/ + document: https://www.elastic.co/docs/ diff --git a/apps/elastic-kibana/logo.png b/apps/elastic-kibana/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..116cb930f44cbab3e92e6168be1f224c5db7eec3 GIT binary patch literal 36919 zcmV-7kjQU|P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv00000008+zyMF)x010qNS#tmY4lDow4lDuro9++*000McNliru zI#vJxfB;EEK~#9!?EQI|oo9U~cz^HbIp@@>l4Qv$*~aW(b`0LI!8V<|-IM9=NzY8r z+cVug-Th{|ug-M$bUJCk3yayZ2NDQ-Rsu0=0)_;TY;2QELP$agA^XB^3>fgHwW`i} z?)MMbV1mJtE$OLK_4&XhB)L@jR$WH*oUeZO{YwA<0000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z00000000000000000000000000000000000000000000000000000000000000000 z000000000000000000000000000000000000N6xI-vI!Q#+UzxpGuOMBs=@g0sz3K zR+3DT@|7gx<-O1DI}gBp8uT3i;21nP$=j0*`wjvCz@}A_ytkHIp5)HH!vGu&1t2g@ zW|Eu{1t0(b{rOl*eO*btb9v8YeP;nUDox)30001BN_;xWbJ{xm#H5b<&H`}MOaKA^ z0Kk2_HOW`R8d+&4l&I52v6o3E# z0PyWilKfJw-K*P4SzA{A0aHi;2mk;8-`@L5^3sxK-!A1JFr_R30RRAid-u^=^4z3+ zY20*uX92k16o3E#0Pw9oljQQYHhqpl5o1Q-AS zfX(KQYH~$NZeHGdS>IUzPB;^Q0001NCZA1m`DoJq*`Gh?mcFw9oD?Pi0RRBlEN)Hm zg2|-0p*E9z_b>ib-+2H|3KM_;003+TM>hU;+Wlx({~<#lSTmu006*7*Clyl zO?h=`>e}vWZTtl`7e{~r007wN-k(x_xFmNj?=krYY(6Fc0RRBl$Ud6n%2MhVx=HOj z3qUUvfB*mhY*e33az$Imf7W$PPP@+ZAFw$o00961*obaV$_rN8rR&ETWcS`@^_>Tx zHwr)i001_c!%2Rs*7~;L_|Dk)3v6}@KmY&$Hj*yMn`+6c(qv8f2Ve^@0000R%llKx zOG>hDdC#-^&H}J5m;eL-0AQo|Xp-lq)-Ndk0KP#12mk=UM(~-GT$w@pr|G)BvjD6s z3P1n=0H)n-NnTV-uFqtWs-wRE-^v6a0002f zs!Q_5l)S2>t}6ck?wtY<004k#^?{naxYT;*mz%}DvjD7H3P1n=0H)C&CAp#`U#z9% zN$>wpedhsKw-kT?002yz&nCINr2N^fNtX9Kr|&!f>zV=(004k#a$AxY9w?(5#wmI1 zUgaOaeX#`?004k#aX86Or{t{*b+s-l{{W7P0uTTIfN9Vrc~g>Cm73LE%0Gak<_ItV z007fqPfdAgk~@@t0LMlF2mk=UdiO_3xuP_ao3c9FcNT!DqW}Z|0AM})Op?oo-Q-Ve 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 JPDHLkV1lTVu)qKS literal 0 KcmV+b0RR6000031