ES 客户端

Signed-off-by: 萌森 <qyg2297248353@163.com>
This commit is contained in:
萌森 2024-07-22 17:20:08 +08:00
parent 46b46f26d5
commit 4754aefbfa
18 changed files with 631 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -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

View File

@ -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` 的密码。默认情况下,密码是随机生成的。
+ `注册令牌 (节点)` 配置
单节点启动可忽略, 如果是作为 `集群` 中的节点启动,此项 `必须` 填写,可忽略密码配置。

View File

@ -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/

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -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 clusters `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

View File

@ -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

View File

@ -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=""

View File

@ -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

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -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

View File

@ -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` 服务中获取

View File

@ -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/

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB