From 8d05042564a0df417d9fed96e6904f05a02b23c0 Mon Sep 17 00:00:00 2001 From: "sundapeng.sdp" Date: Fri, 26 Sep 2025 17:44:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E4=BE=A7=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E7=BB=84=E4=BB=B6=E5=89=8D=EF=BC=8C=E6=8F=90=E5=89=8D?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=85=A8=E5=B1=80=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=B9=B6=E8=AE=BE=E7=BD=AE=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=EF=BC=9B=E9=9B=86=E6=88=90=20fluent-bit=20=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=8C=85=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs #11 --- .../all-in-one/config/config.env | 3 + .../bin/node_exporter | Bin .../check_health.sh | 0 .../install.sh | 0 .../package.sh | 2 +- .../uninstall.sh | 0 .../all-in-one/scripts/install_artifact.sh | 61 +++++++++++++----- .../all-in-one/scripts/publish_artifact.sh | 9 +++ .../all-in-one/scripts/setup.sh | 13 ++-- 9 files changed, 64 insertions(+), 24 deletions(-) create mode 100644 src/metric/client-plugins/all-in-one/config/config.env rename src/metric/client-plugins/all-in-one/plugins/{node-exporter-installer => node-exporter}/bin/node_exporter (100%) rename src/metric/client-plugins/all-in-one/plugins/{node-exporter-installer => node-exporter}/check_health.sh (100%) rename src/metric/client-plugins/all-in-one/plugins/{node-exporter-installer => node-exporter}/install.sh (100%) rename src/metric/client-plugins/all-in-one/plugins/{node-exporter-installer => node-exporter}/package.sh (96%) rename src/metric/client-plugins/all-in-one/plugins/{node-exporter-installer => node-exporter}/uninstall.sh (100%) diff --git a/src/metric/client-plugins/all-in-one/config/config.env b/src/metric/client-plugins/all-in-one/config/config.env new file mode 100644 index 0000000..0a70059 --- /dev/null +++ b/src/metric/client-plugins/all-in-one/config/config.env @@ -0,0 +1,3 @@ +# Elasticsearch +ES_HOST=es.log.argus.com +ES_PORT=9200 diff --git a/src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/bin/node_exporter b/src/metric/client-plugins/all-in-one/plugins/node-exporter/bin/node_exporter similarity index 100% rename from src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/bin/node_exporter rename to src/metric/client-plugins/all-in-one/plugins/node-exporter/bin/node_exporter diff --git a/src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/check_health.sh b/src/metric/client-plugins/all-in-one/plugins/node-exporter/check_health.sh similarity index 100% rename from src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/check_health.sh rename to src/metric/client-plugins/all-in-one/plugins/node-exporter/check_health.sh diff --git a/src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/install.sh b/src/metric/client-plugins/all-in-one/plugins/node-exporter/install.sh similarity index 100% rename from src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/install.sh rename to src/metric/client-plugins/all-in-one/plugins/node-exporter/install.sh diff --git a/src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/package.sh b/src/metric/client-plugins/all-in-one/plugins/node-exporter/package.sh similarity index 96% rename from src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/package.sh rename to src/metric/client-plugins/all-in-one/plugins/node-exporter/package.sh index 04cf207..b38c733 100755 --- a/src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/package.sh +++ b/src/metric/client-plugins/all-in-one/plugins/node-exporter/package.sh @@ -17,7 +17,7 @@ log_success() { # 获取当前目录 CURRENT_DIR=$(pwd) -PACKAGE_NAME="node-exporter-installer-$(date +%Y%m%d-%H%M%S)" +PACKAGE_NAME="node-exporter-$(date +%Y%m%d-%H%M%S)" PACKAGE_FILE="${PACKAGE_NAME}.tar.gz" log_info "开始打包 Node Exporter 安装包..." diff --git a/src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/uninstall.sh b/src/metric/client-plugins/all-in-one/plugins/node-exporter/uninstall.sh similarity index 100% rename from src/metric/client-plugins/all-in-one/plugins/node-exporter-installer/uninstall.sh rename to src/metric/client-plugins/all-in-one/plugins/node-exporter/uninstall.sh diff --git a/src/metric/client-plugins/all-in-one/scripts/install_artifact.sh b/src/metric/client-plugins/all-in-one/scripts/install_artifact.sh index 72a3c5b..d2a3ea9 100755 --- a/src/metric/client-plugins/all-in-one/scripts/install_artifact.sh +++ b/src/metric/client-plugins/all-in-one/scripts/install_artifact.sh @@ -2,23 +2,6 @@ set -e -# 加载配置文件 -load_config() { - local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - local config_file="$script_dir/config.env" - - if [[ -f "$config_file" ]]; then - log_info "加载配置文件: $config_file" - # 导出配置文件中的环境变量 - set -a # 自动导出所有变量 - source "$config_file" - set +a # 关闭自动导出 - log_success "配置文件加载完成" - else - log_warning "配置文件不存在: $config_file,使用默认配置" - fi -} - RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' @@ -46,6 +29,49 @@ INSTALL_DIR="${1:-$(pwd)}" # 使用第一个参数作为安装目录,如果 TEMP_DIR="/tmp/metrics-install-$$" VERSION_FILE="version.json" +# 加载配置文件 +load_config() { + local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + local config_file="$script_dir/config.env" + + if [[ -f "$config_file" ]]; then + log_info "加载配置文件: $config_file" + # 导出配置文件中的环境变量 + set -a # 自动导出所有变量 + source "$config_file" + set +a # 关闭自动导出 + log_success "配置文件加载完成" + else + log_warning "配置文件不存在: $config_file,使用默认配置" + fi +} + +# 复制配置文件到安装目录 +copy_config_files() { + log_info "复制配置文件到安装目录..." + + local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + local source_config="$script_dir/config.env" + local target_config="$INSTALL_DIR/config.env" + + if [[ -f "$source_config" ]]; then + # 检查源文件和目标文件是否是同一个文件 + if [[ "$source_config" == "$target_config" ]]; then + log_info "配置文件已在目标位置,跳过复制" + log_success "配置文件已存在: $target_config" + else + if cp "$source_config" "$target_config"; then + log_success "配置文件复制完成: $target_config" + else + log_error "配置文件复制失败" + return 1 + fi + fi + else + log_warning "源配置文件不存在: $source_config" + fi +} + check_root() { if [[ $EUID -ne 0 ]]; then log_error "此脚本需要 root 权限运行" @@ -694,6 +720,7 @@ main() { verify_checksums install_system_deps install_components + copy_config_files create_install_record setup_health_check_cron show_install_info diff --git a/src/metric/client-plugins/all-in-one/scripts/publish_artifact.sh b/src/metric/client-plugins/all-in-one/scripts/publish_artifact.sh index 2a4e709..0a36cd6 100755 --- a/src/metric/client-plugins/all-in-one/scripts/publish_artifact.sh +++ b/src/metric/client-plugins/all-in-one/scripts/publish_artifact.sh @@ -104,6 +104,15 @@ if [[ -f "scripts/uninstall_artifact.sh" ]]; then cp "scripts/uninstall_artifact.sh" "$TEMP_PACKAGE_DIR/uninstall.sh" fi +# 复制配置文件 +if [[ -f "$ARTIFACT_DIR/config.env" ]]; then + log_info "复制配置文件..." + cp "$ARTIFACT_DIR/config.env" "$TEMP_PACKAGE_DIR/" + log_success "配置文件复制完成" +else + log_warning "未找到 config.env 文件" +fi + # 复制 deps 目录 if [[ -d "$ARTIFACT_DIR/deps" ]]; then log_info "复制系统依赖包..." diff --git a/src/metric/client-plugins/all-in-one/scripts/setup.sh b/src/metric/client-plugins/all-in-one/scripts/setup.sh index 961d81f..b311dc9 100755 --- a/src/metric/client-plugins/all-in-one/scripts/setup.sh +++ b/src/metric/client-plugins/all-in-one/scripts/setup.sh @@ -2,12 +2,6 @@ set -e -# 加载配置文件(仅在解压后的目录中可用) -load_config() { - # setup.sh 脚本不需要配置文件,FTP参数通过命令行参数或环境变量提供 - log_info "setup.sh 脚本使用命令行参数或环境变量获取FTP配置" -} - # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' @@ -635,6 +629,13 @@ install_argus_metric() { # 更新软链接指向新版本 log_info "更新当前版本链接..." + + # 如果 current 已经存在且是目录,先删除它 + if [[ -d "$CURRENT_LINK" ]] && [[ ! -L "$CURRENT_LINK" ]]; then + log_warning "发现 current 是目录而不是符号链接,正在删除..." + rm -rf "$CURRENT_LINK" + fi + if ln -sfn "$version_dir" "$CURRENT_LINK"; then log_success "版本链接更新完成: $CURRENT_LINK -> $version_dir" else