dev_1.0.0_sundp_2 优化Argus-metric模块的e2e部署测试流程 #27
@ -31,25 +31,26 @@ RUN mkdir -p /var/log/supervisor
|
|||||||
ENV FTP_BASE_PATH=/private/argus/ftp
|
ENV FTP_BASE_PATH=/private/argus/ftp
|
||||||
|
|
||||||
# 设置域名环境变量
|
# 设置域名环境变量
|
||||||
ENV DOMAIN=prom.ftp.argus.com
|
ENV DOMAIN=ftp.metric.argus.com
|
||||||
|
|
||||||
# 设置FTP用户密码环境变量
|
# 设置FTP用户密码环境变量
|
||||||
ENV FTP_PASSWORD=ZGClab1234!
|
ENV FTP_PASSWORD=ZGClab1234!
|
||||||
|
|
||||||
# 设置用户和组ID环境变量
|
# 设置用户和组ID环境变量
|
||||||
ARG FTP_UID=2133
|
ARG ARGUS_BUILD_UID=2133
|
||||||
ARG FTP_GID=2015
|
ARG ARGUS_BUILD_GID=2015
|
||||||
ENV FTP_UID=${FTP_UID}
|
|
||||||
ENV FTP_GID=${FTP_GID}
|
ENV ARGUS_BUILD_UID=${ARGUS_BUILD_UID} \
|
||||||
|
ARGUS_BUILD_GID=${ARGUS_BUILD_GID}
|
||||||
|
|
||||||
# 创建FTP用户和目录结构
|
# 创建FTP用户和目录结构
|
||||||
RUN groupadd -g ${FTP_GID} ftpuser && \
|
RUN groupadd -g ${ARGUS_BUILD_GID} ftpuser && \
|
||||||
useradd -u ${FTP_UID} -g ${FTP_GID} -d ${FTP_BASE_PATH}/share -s /bin/bash ftpuser && \
|
useradd -u ${ARGUS_BUILD_UID} -g ${ARGUS_BUILD_GID} -d ${FTP_BASE_PATH}/share -s /bin/bash ftpuser && \
|
||||||
mkdir -p ${FTP_BASE_PATH}/share \
|
mkdir -p ${FTP_BASE_PATH}/share \
|
||||||
&& mkdir -p /private/argus/etc \
|
&& mkdir -p /private/argus/etc \
|
||||||
&& mkdir -p /var/log/vsftpd \
|
&& mkdir -p /var/log/vsftpd \
|
||||||
&& mkdir -p /var/run/vsftpd/empty \
|
&& chown -R ftpuser:ftpuser ${FTP_BASE_PATH} \
|
||||||
&& chown -R ftpuser:ftpuser ${FTP_BASE_PATH}
|
&& mkdir -p /var/run/vsftpd/empty
|
||||||
|
|
||||||
# 创建vsftpd配置目录和用户列表文件
|
# 创建vsftpd配置目录和用户列表文件
|
||||||
RUN mkdir -p /etc/vsftpd && \
|
RUN mkdir -p /etc/vsftpd && \
|
||||||
|
|||||||
@ -32,6 +32,9 @@ IP=$(ifconfig eth0 | awk '/inet /{print $2}' || hostname -i)
|
|||||||
echo "current IP: ${IP}"
|
echo "current IP: ${IP}"
|
||||||
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
||||||
|
|
||||||
|
chown ${ARGUS_BUILD_UID}:${ARGUS_BUILD_GID} /private/argus/etc/${DOMAIN}
|
||||||
|
chmod +x /private/argus/etc/${DOMAIN}
|
||||||
|
|
||||||
# 启动vsftpd
|
# 启动vsftpd
|
||||||
echo "[INFO] Starting vsftpd..."
|
echo "[INFO] Starting vsftpd..."
|
||||||
exec /usr/sbin/vsftpd /tmp/vsftpd.conf
|
exec /usr/sbin/vsftpd /tmp/vsftpd.conf
|
||||||
|
|||||||
@ -17,30 +17,31 @@ RUN mkdir -p /var/log/supervisor
|
|||||||
ENV GRAFANA_BASE_PATH=/private/argus/metric/grafana
|
ENV GRAFANA_BASE_PATH=/private/argus/metric/grafana
|
||||||
|
|
||||||
# 设置用户和组ID环境变量
|
# 设置用户和组ID环境变量
|
||||||
ARG GRAFANA_UID=2133
|
ARG ARGUS_BUILD_UID=2133
|
||||||
ARG GRAFANA_GID=2015
|
ARG ARGUS_BUILD_GID=2015
|
||||||
ENV GRAFANA_UID=${GRAFANA_UID}
|
|
||||||
ENV GRAFANA_GID=${GRAFANA_GID}
|
ENV ARGUS_BUILD_UID=${ARGUS_BUILD_UID} \
|
||||||
|
ARGUS_BUILD_GID=${ARGUS_BUILD_GID}
|
||||||
|
|
||||||
# 创建基本目录结构
|
# 创建基本目录结构
|
||||||
RUN mkdir -p /private/argus/etc \
|
RUN mkdir -p /private/argus/etc \
|
||||||
&& mkdir -p /private/argus/metric/grafana/data \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/data \
|
||||||
&& mkdir -p /private/argus/metric/grafana/logs \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/logs \
|
||||||
&& mkdir -p /private/argus/metric/grafana/plugins \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/plugins \
|
||||||
&& mkdir -p /private/argus/metric/grafana/provisioning/datasources \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/provisioning/datasources \
|
||||||
&& mkdir -p /private/argus/metric/grafana/provisioning/dashboards \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/provisioning/dashboards \
|
||||||
&& mkdir -p /private/argus/metric/grafana/data/sessions \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/data/sessions \
|
||||||
&& mkdir -p /private/argus/metric/grafana/data/dashboards \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/data/dashboards \
|
||||||
&& mkdir -p /private/argus/metric/grafana/config \
|
&& mkdir -p ${GRAFANA_BASE_PATH}/config \
|
||||||
&& mkdir -p /etc/grafana \
|
&& mkdir -p /etc/grafana \
|
||||||
&& mkdir -p /var/lib/grafana \
|
&& mkdir -p /var/lib/grafana \
|
||||||
&& mkdir -p /var/log/grafana
|
&& mkdir -p /var/log/grafana
|
||||||
|
|
||||||
# 修改 Grafana 用户 UID/GID 并授权
|
# 修改 Grafana 用户 UID/GID 并授权
|
||||||
RUN deluser grafana && \
|
RUN deluser grafana && \
|
||||||
addgroup -g ${GRAFANA_GID} grafana && \
|
addgroup -g ${ARGUS_BUILD_GID} grafana && \
|
||||||
adduser -u ${GRAFANA_UID} -G grafana -s /bin/sh -D grafana && \
|
adduser -u ${ARGUS_BUILD_UID} -G grafana -s /bin/sh -D grafana && \
|
||||||
chown -R grafana:grafana /var/lib/grafana /etc/grafana /var/log/grafana /private/argus
|
chown -R grafana:grafana /var/lib/grafana /etc/grafana /var/log/grafana ${GRAFANA_BASE_PATH}
|
||||||
|
|
||||||
# 复制配置文件到容器内临时位置
|
# 复制配置文件到容器内临时位置
|
||||||
COPY grafana.ini /tmp/grafana.ini
|
COPY grafana.ini /tmp/grafana.ini
|
||||||
|
|||||||
@ -9,6 +9,7 @@ DOMAIN=grafana.metric.argus.com
|
|||||||
IP=$(ifconfig | awk '/inet / && $2 != "127.0.0.1" {print $2; exit}')
|
IP=$(ifconfig | awk '/inet / && $2 != "127.0.0.1" {print $2; exit}')
|
||||||
echo "current IP: ${IP}"
|
echo "current IP: ${IP}"
|
||||||
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
||||||
|
chmod +x /private/argus/etc/${DOMAIN}
|
||||||
|
|
||||||
# 确保必要目录存在(权限已在 Dockerfile 中设置)
|
# 确保必要目录存在(权限已在 Dockerfile 中设置)
|
||||||
mkdir -p /private/argus/metric/grafana/data
|
mkdir -p /private/argus/metric/grafana/data
|
||||||
@ -27,7 +28,6 @@ mkdir -p /var/lib/grafana
|
|||||||
if [ -f "/tmp/grafana.ini" ]; then
|
if [ -f "/tmp/grafana.ini" ]; then
|
||||||
echo "[INFO] Copying grafana.ini to /private/argus/metric/grafana/config/"
|
echo "[INFO] Copying grafana.ini to /private/argus/metric/grafana/config/"
|
||||||
cp /tmp/grafana.ini /private/argus/metric/grafana/config/grafana.ini
|
cp /tmp/grafana.ini /private/argus/metric/grafana/config/grafana.ini
|
||||||
chown grafana:grafana /private/argus/metric/grafana/config/grafana.ini
|
|
||||||
echo "[INFO] Grafana configuration copied successfully"
|
echo "[INFO] Grafana configuration copied successfully"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -47,12 +47,9 @@ fi
|
|||||||
if [ -f "/tmp/datasources.yml" ]; then
|
if [ -f "/tmp/datasources.yml" ]; then
|
||||||
echo "[INFO] Copying datasource configuration to /private/argus/metric/grafana/provisioning/datasources/"
|
echo "[INFO] Copying datasource configuration to /private/argus/metric/grafana/provisioning/datasources/"
|
||||||
cp /tmp/datasources.yml /private/argus/metric/grafana/provisioning/datasources/datasources.yml
|
cp /tmp/datasources.yml /private/argus/metric/grafana/provisioning/datasources/datasources.yml
|
||||||
chown grafana:grafana /private/argus/metric/grafana/provisioning/datasources/datasources.yml
|
|
||||||
echo "[INFO] Datasource configuration copied successfully"
|
echo "[INFO] Datasource configuration copied successfully"
|
||||||
elif [ -d "/private/argus/metric/grafana/provisioning/datasources" ] && [ "$(ls -A /private/argus/metric/grafana/provisioning/datasources)" ]; then
|
elif [ -d "/private/argus/metric/grafana/provisioning/datasources" ] && [ "$(ls -A /private/argus/metric/grafana/provisioning/datasources)" ]; then
|
||||||
echo "[INFO] Found existing datasource provisioning files in /private/argus/metric/grafana/provisioning/datasources"
|
echo "[INFO] Found existing datasource provisioning files in /private/argus/metric/grafana/provisioning/datasources"
|
||||||
# 确保数据源配置目录权限正确
|
|
||||||
chown -R grafana:grafana /private/argus/metric/grafana/provisioning/datasources
|
|
||||||
elif [ -d "/etc/grafana/provisioning/datasources" ] && [ "$(ls -A /etc/grafana/provisioning/datasources)" ]; then
|
elif [ -d "/etc/grafana/provisioning/datasources" ] && [ "$(ls -A /etc/grafana/provisioning/datasources)" ]; then
|
||||||
echo "[INFO] Found datasource provisioning files in /etc/grafana/provisioning/datasources"
|
echo "[INFO] Found datasource provisioning files in /etc/grafana/provisioning/datasources"
|
||||||
# 确保数据源配置目录权限正确
|
# 确保数据源配置目录权限正确
|
||||||
@ -65,7 +62,6 @@ fi
|
|||||||
if [ -f "/tmp/dashboards.yml" ]; then
|
if [ -f "/tmp/dashboards.yml" ]; then
|
||||||
echo "[INFO] Copying dashboard configuration to /private/argus/metric/grafana/provisioning/dashboards/"
|
echo "[INFO] Copying dashboard configuration to /private/argus/metric/grafana/provisioning/dashboards/"
|
||||||
cp /tmp/dashboards.yml /private/argus/metric/grafana/provisioning/dashboards/dashboards.yml
|
cp /tmp/dashboards.yml /private/argus/metric/grafana/provisioning/dashboards/dashboards.yml
|
||||||
chown grafana:grafana /private/argus/metric/grafana/provisioning/dashboards/dashboards.yml
|
|
||||||
echo "[INFO] Dashboard configuration copied successfully"
|
echo "[INFO] Dashboard configuration copied successfully"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -73,13 +69,9 @@ fi
|
|||||||
if [ -f "/tmp/default_dashboard.json" ]; then
|
if [ -f "/tmp/default_dashboard.json" ]; then
|
||||||
echo "[INFO] Copying default dashboard to /private/argus/metric/grafana/provisioning/dashboards/"
|
echo "[INFO] Copying default dashboard to /private/argus/metric/grafana/provisioning/dashboards/"
|
||||||
cp /tmp/default_dashboard.json /private/argus/metric/grafana/provisioning/dashboards/default_dashboard.json
|
cp /tmp/default_dashboard.json /private/argus/metric/grafana/provisioning/dashboards/default_dashboard.json
|
||||||
chown grafana:grafana /private/argus/metric/grafana/provisioning/dashboards/default_dashboard.json
|
|
||||||
echo "[INFO] Default dashboard copied successfully"
|
echo "[INFO] Default dashboard copied successfully"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 确保所有配置目录权限正确
|
|
||||||
chown -R grafana:grafana /private/argus/metric/grafana/provisioning/
|
|
||||||
|
|
||||||
# 启动 Grafana
|
# 启动 Grafana
|
||||||
if [ -n "$CONFIG_FILE" ]; then
|
if [ -n "$CONFIG_FILE" ]; then
|
||||||
echo "[INFO] Starting Grafana with custom configuration..."
|
echo "[INFO] Starting Grafana with custom configuration..."
|
||||||
|
|||||||
@ -48,11 +48,11 @@ RUN mkdir -p /var/log/supervisor
|
|||||||
ENV PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
|
ENV PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
|
||||||
|
|
||||||
# 设置用户和组ID环境变量
|
# 设置用户和组ID环境变量
|
||||||
ARG PROMETHEUS_UID=2133
|
ARG ARGUS_BUILD_UID=2133
|
||||||
ARG PROMETHEUS_GID=2015
|
ARG ARGUS_BUILD_GID=2015
|
||||||
ENV PROMETHEUS_UID=${PROMETHEUS_UID}
|
|
||||||
ENV PROMETHEUS_GID=${PROMETHEUS_GID}
|
|
||||||
|
|
||||||
|
ENV ARGUS_BUILD_UID=${ARGUS_BUILD_UID} \
|
||||||
|
ARGUS_BUILD_GID=${ARGUS_BUILD_GID}
|
||||||
# 创建目录结构
|
# 创建目录结构
|
||||||
RUN mkdir -p ${PROMETHEUS_BASE_PATH}/rules \
|
RUN mkdir -p ${PROMETHEUS_BASE_PATH}/rules \
|
||||||
&& mkdir -p ${PROMETHEUS_BASE_PATH}/targets \
|
&& mkdir -p ${PROMETHEUS_BASE_PATH}/targets \
|
||||||
@ -61,11 +61,11 @@ RUN mkdir -p ${PROMETHEUS_BASE_PATH}/rules \
|
|||||||
&& ln -s ${PROMETHEUS_BASE_PATH} /prometheus
|
&& ln -s ${PROMETHEUS_BASE_PATH} /prometheus
|
||||||
|
|
||||||
# 修改 Prometheus 用户 UID/GID 并授权
|
# 修改 Prometheus 用户 UID/GID 并授权
|
||||||
RUN usermod -u ${PROMETHEUS_UID} nobody && \
|
RUN usermod -u ${ARGUS_BUILD_UID} nobody && \
|
||||||
groupmod -g ${PROMETHEUS_GID} nogroup && \
|
groupmod -g ${ARGUS_BUILD_GID} nogroup && \
|
||||||
chown -h nobody:nogroup /prometheus && \
|
chown -h nobody:nogroup /prometheus && \
|
||||||
chown -R nobody:nogroup /private/argus/metric /etc/prometheus && \
|
chown -R nobody:nogroup ${PROMETHEUS_BASE_PATH} && \
|
||||||
chown -R nobody:nogroup ${PROMETHEUS_BASE_PATH}
|
chown -R nobody:nogroup /etc/prometheus
|
||||||
|
|
||||||
# supervisor 配置
|
# supervisor 配置
|
||||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|||||||
@ -7,7 +7,7 @@ global:
|
|||||||
alerting:
|
alerting:
|
||||||
alertmanagers:
|
alertmanagers:
|
||||||
- static_configs:
|
- static_configs:
|
||||||
- targets: []
|
- targets: ["alertmanager.alert.argus.com:9093"]
|
||||||
|
|
||||||
# 规则目录
|
# 规则目录
|
||||||
rule_files:
|
rule_files:
|
||||||
|
|||||||
@ -17,6 +17,7 @@ sed "s|\${PROMETHEUS_BASE_PATH}|${PROMETHEUS_BASE_PATH}|g" \
|
|||||||
IP=$(ifconfig eth0 | awk '/inet /{print $2}')
|
IP=$(ifconfig eth0 | awk '/inet /{print $2}')
|
||||||
echo "current IP: ${IP}"
|
echo "current IP: ${IP}"
|
||||||
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
||||||
|
chmod +x /private/argus/etc/${DOMAIN}
|
||||||
|
|
||||||
exec /bin/prometheus \
|
exec /bin/prometheus \
|
||||||
--config.file=${PROMETHEUS_BASE_PATH}/prometheus.yml \
|
--config.file=${PROMETHEUS_BASE_PATH}/prometheus.yml \
|
||||||
|
|||||||
@ -9,8 +9,9 @@ services:
|
|||||||
context: ../ftp/build
|
context: ../ftp/build
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
FTP_UID: ${FTP_UID:-2133}
|
ARGUS_BUILD_UID: ${ARGUS_BUILD_UID:-2133}
|
||||||
FTP_GID: ${FTP_GID:-2015}
|
ARGUS_BUILD_GID: ${ARGUS_BUILD_GID:-2015}
|
||||||
|
USE_INTRANET: ${USE_INTRANET:-false}
|
||||||
image: argus-metric-ftp:latest
|
image: argus-metric-ftp:latest
|
||||||
container_name: argus-ftp
|
container_name: argus-ftp
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@ -18,9 +19,9 @@ services:
|
|||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
- FTP_BASE_PATH=/private/argus/ftp
|
- FTP_BASE_PATH=/private/argus/ftp
|
||||||
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
|
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
|
||||||
- DOMAIN=${FTP_DOMAIN:-prom.ftp.argus.com}
|
- DOMAIN=${FTP_DOMAIN:-ftp.metric.argus.com}
|
||||||
- FTP_UID=${FTP_UID:-2133}
|
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
|
||||||
- FTP_GID=${FTP_GID:-2015}
|
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
|
||||||
ports:
|
ports:
|
||||||
- "${FTP_PORT:-21}:21"
|
- "${FTP_PORT:-21}:21"
|
||||||
- "${FTP_DATA_PORT:-20}:20"
|
- "${FTP_DATA_PORT:-20}:20"
|
||||||
@ -44,8 +45,8 @@ services:
|
|||||||
context: ../prometheus/build
|
context: ../prometheus/build
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
PROMETHEUS_UID: ${PROMETHEUS_UID:-2133}
|
ARGUS_BUILD_UID: ${ARGUS_BUILD_UID:-2133}
|
||||||
PROMETHEUS_GID: ${PROMETHEUS_GID:-2015}
|
ARGUS_BUILD_GID: ${ARGUS_BUILD_GID:-2015}
|
||||||
USE_INTRANET: ${USE_INTRANET:-false}
|
USE_INTRANET: ${USE_INTRANET:-false}
|
||||||
image: argus-metric-prometheus:latest
|
image: argus-metric-prometheus:latest
|
||||||
container_name: argus-prometheus
|
container_name: argus-prometheus
|
||||||
@ -53,8 +54,8 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
- PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
|
- PROMETHEUS_BASE_PATH=/private/argus/metric/prometheus
|
||||||
- PROMETHEUS_UID=${PROMETHEUS_UID:-2133}
|
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
|
||||||
- PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
|
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
|
||||||
ports:
|
ports:
|
||||||
- "${PROMETHEUS_PORT:-9090}:9090"
|
- "${PROMETHEUS_PORT:-9090}:9090"
|
||||||
volumes:
|
volumes:
|
||||||
@ -76,16 +77,16 @@ services:
|
|||||||
context: ../grafana/build
|
context: ../grafana/build
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
GRAFANA_UID: ${GRAFANA_UID:-2133}
|
ARGUS_BUILD_UID: ${ARGUS_BUILD_UID:-2133}
|
||||||
GRAFANA_GID: ${GRAFANA_GID:-2015}
|
ARGUS_BUILD_GID: ${ARGUS_BUILD_GID:-2015}
|
||||||
image: argus-metric-grafana:latest
|
image: argus-metric-grafana:latest
|
||||||
container_name: argus-grafana
|
container_name: argus-grafana
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
- GRAFANA_BASE_PATH=/private/argus/metric/grafana
|
- GRAFANA_BASE_PATH=/private/argus/metric/grafana
|
||||||
- GRAFANA_UID=${GRAFANA_UID:-2133}
|
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
|
||||||
- GRAFANA_GID=${GRAFANA_GID:-2015}
|
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
|
||||||
- GF_SERVER_HTTP_PORT=3000
|
- GF_SERVER_HTTP_PORT=3000
|
||||||
- GF_LOG_LEVEL=warn
|
- GF_LOG_LEVEL=warn
|
||||||
- GF_LOG_MODE=console
|
- GF_LOG_MODE=console
|
||||||
|
|||||||
@ -1,19 +1,15 @@
|
|||||||
# 用户和组配置
|
# 统一用户和组配置
|
||||||
FTP_UID=2133
|
ARGUS_BUILD_UID=1048
|
||||||
FTP_GID=2015
|
ARGUS_BUILD_GID=1048
|
||||||
PROMETHEUS_UID=2133
|
|
||||||
PROMETHEUS_GID=2015
|
|
||||||
GRAFANA_UID=2133
|
|
||||||
GRAFANA_GID=2015
|
|
||||||
|
|
||||||
# 数据根目录
|
# 数据根目录
|
||||||
DATA_ROOT=/private/argus
|
DATA_ROOT=/private
|
||||||
|
|
||||||
# FTP 配置
|
# FTP 配置
|
||||||
FTP_PORT=2122
|
FTP_PORT=21
|
||||||
FTP_DATA_PORT=2022
|
FTP_DATA_PORT=20
|
||||||
FTP_PASSWORD=ZGClab1234!
|
FTP_PASSWORD=ZGClab1234!
|
||||||
FTP_DOMAIN=prom.ftp.argus.com
|
FTP_DOMAIN=ftp.metric.argus.com
|
||||||
|
|
||||||
# Prometheus 配置
|
# Prometheus 配置
|
||||||
PROMETHEUS_PORT=9090
|
PROMETHEUS_PORT=9090
|
||||||
|
|||||||
@ -1,14 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
FTP_DOMAIN="${FTP_DOMAIN:-ftp.metric.argus.com}"
|
|
||||||
FTP_SERVER="${FTP_SERVER:-172.30.0.40}"
|
FTP_SERVER="${FTP_SERVER:-172.30.0.40}"
|
||||||
FTP_USER="${FTP_USER:-ftpuser}"
|
FTP_USER="${FTP_USER:-ftpuser}"
|
||||||
FTP_PASSWORD="${FTP_PASSWORD:-ZGClab1234!}"
|
FTP_PASSWORD="${FTP_PASSWORD:-ZGClab1234!}"
|
||||||
FTP_PORT="${FTP_PORT:-21}"
|
FTP_PORT="${FTP_PORT:-21}"
|
||||||
|
|
||||||
# 优先使用域名,如果域名不可用则使用 IP
|
FTP_HOST="${FTP_SERVER}"
|
||||||
FTP_HOST="${FTP_DOMAIN:-$FTP_SERVER}"
|
|
||||||
|
|
||||||
echo "[03] 进入测试节点执行安装..."
|
echo "[03] 进入测试节点执行安装..."
|
||||||
echo "[03] 使用 FTP 地址: ${FTP_HOST}:${FTP_PORT}"
|
echo "[03] 使用 FTP 地址: ${FTP_HOST}:${FTP_PORT}"
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 初始化目录脚本
|
# 初始化目录脚本
|
||||||
# 用于创建所有必要的数据目录并设置正确的权限
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@ -16,61 +15,47 @@ if [ -f .env ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 默认配置
|
# 默认配置
|
||||||
FTP_UID=${FTP_UID:-2133}
|
ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
|
||||||
FTP_GID=${FTP_GID:-2015}
|
ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
|
||||||
PROMETHEUS_UID=${PROMETHEUS_UID:-2133}
|
|
||||||
PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
|
|
||||||
GRAFANA_UID=${GRAFANA_UID:-2133}
|
|
||||||
GRAFANA_GID=${GRAFANA_GID:-2015}
|
|
||||||
DATA_ROOT=${DATA_ROOT:-/private}
|
DATA_ROOT=${DATA_ROOT:-/private}
|
||||||
|
|
||||||
echo "开始初始化目录结构..."
|
echo "开始初始化目录结构..."
|
||||||
echo "数据根目录: ${DATA_ROOT}"
|
echo "数据根目录: ${DATA_ROOT}"
|
||||||
echo ""
|
echo "统一 UID: ${ARGUS_BUILD_UID}"
|
||||||
|
echo "统一 GID: ${ARGUS_BUILD_GID}"
|
||||||
|
|
||||||
|
# 创建基础目录结构
|
||||||
|
echo "创建基础目录结构..."
|
||||||
|
sudo mkdir -p ${DATA_ROOT}/argus/metric
|
||||||
|
sudo mkdir -p ${DATA_ROOT}/argus/etc
|
||||||
|
sudo mkdir -p ${DATA_ROOT}/argus/agent
|
||||||
|
|
||||||
# 创建 FTP 目录
|
# 创建 FTP 目录
|
||||||
echo "创建 FTP 目录..."
|
echo "创建 FTP 目录..."
|
||||||
sudo mkdir -p ${DATA_ROOT}/argus/metric/ftp/share
|
sudo mkdir -p ${DATA_ROOT}/argus/metric/ftp/share
|
||||||
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/argus/metric/ftp
|
|
||||||
sudo chmod -R 755 ${DATA_ROOT}/argus/metric/ftp
|
|
||||||
|
|
||||||
# 创建 Prometheus 目录
|
# 创建 Prometheus 目录
|
||||||
echo "创建 Prometheus 目录..."
|
echo "创建 Prometheus 目录..."
|
||||||
sudo mkdir -p ${DATA_ROOT}/argus/metric/prometheus/{data,rules,targets}
|
sudo mkdir -p ${DATA_ROOT}/argus/metric/prometheus/{data,rules,targets}
|
||||||
|
|
||||||
# 统一设置 Prometheus 目录权限
|
|
||||||
sudo chown -R ${PROMETHEUS_UID}:${PROMETHEUS_GID} ${DATA_ROOT}/argus/metric/prometheus
|
|
||||||
sudo chmod -R 755 ${DATA_ROOT}/argus/metric/prometheus
|
|
||||||
|
|
||||||
# 创建 Grafana 目录
|
# 创建 Grafana 目录
|
||||||
echo "创建 Grafana 目录..."
|
echo "创建 Grafana 目录..."
|
||||||
sudo mkdir -p ${DATA_ROOT}/argus/metric/grafana/{data,logs,plugins,provisioning/datasources,provisioning/dashboards,data/sessions,data/dashboards,config}
|
sudo mkdir -p ${DATA_ROOT}/argus/metric/grafana/{data,logs,plugins,provisioning/datasources,provisioning/dashboards,data/sessions,data/dashboards,config}
|
||||||
sudo chown -R ${GRAFANA_UID}:${GRAFANA_GID} ${DATA_ROOT}/argus/metric/grafana
|
|
||||||
sudo chmod -R 755 ${DATA_ROOT}/argus/metric/grafana
|
|
||||||
|
|
||||||
# 创建公共配置目录
|
# 统一设置所有目录权限
|
||||||
echo "创建公共配置目录..."
|
echo "设置目录权限..."
|
||||||
sudo mkdir -p ${DATA_ROOT}/argus/etc
|
sudo chown -R ${ARGUS_BUILD_UID}:${ARGUS_BUILD_GID} ${DATA_ROOT}/argus/metric
|
||||||
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/argus/etc
|
sudo chmod -R 755 ${DATA_ROOT}/argus/metric
|
||||||
sudo chmod -R 755 ${DATA_ROOT}/argus/etc
|
|
||||||
|
|
||||||
# 创建 Agent 目录
|
|
||||||
echo "创建 Agent 目录..."
|
|
||||||
sudo mkdir -p ${DATA_ROOT}/argus/agent
|
|
||||||
sudo chown -R ${FTP_UID}:${FTP_GID} ${DATA_ROOT}/argus/agent
|
|
||||||
sudo chmod -R 755 ${DATA_ROOT}/argus/agent
|
|
||||||
|
|
||||||
echo "目录初始化完成!"
|
echo "目录初始化完成!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "目录结构:"
|
echo "目录结构:"
|
||||||
echo " ${DATA_ROOT}/"
|
echo " ${DATA_ROOT}/"
|
||||||
echo " ├── argus/"
|
echo " ├── argus/ (UID:${ARGUS_BUILD_UID}, GID:${ARGUS_BUILD_GID})"
|
||||||
echo " │ ├── metric/"
|
echo " │ ├── metric/"
|
||||||
echo " │ │ ├── ftp/ (UID:${FTP_UID}, GID:${FTP_GID})"
|
echo " │ │ ├── ftp/"
|
||||||
echo " │ │ ├── prometheus/ (UID:${PROMETHEUS_UID}, GID:${PROMETHEUS_GID})"
|
echo " │ │ ├── prometheus/"
|
||||||
echo " │ │ └── grafana/ (UID:${GRAFANA_UID}, GID:${GRAFANA_GID})"
|
echo " │ │ └── grafana/"
|
||||||
echo " │ ├── etc/ (UID:${FTP_UID}, GID:${FTP_GID})"
|
|
||||||
echo " │ └── agent/ (UID:${FTP_UID}, GID:${FTP_GID})"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "您现在可以运行 'docker-compose up -d' 来启动所有服务"
|
echo "您现在可以运行 'docker-compose up -d' 来启动所有服务"
|
||||||
|
|
||||||
|
|||||||
@ -151,7 +151,7 @@ else
|
|||||||
echo "部分镜像缺失,开始构建..."
|
echo "部分镜像缺失,开始构建..."
|
||||||
echo "工作目录: $(pwd)"
|
echo "工作目录: $(pwd)"
|
||||||
cd "$TEST_DIR"
|
cd "$TEST_DIR"
|
||||||
docker compose build
|
docker compose build --no-cache
|
||||||
|
|
||||||
# 询问是否保存镜像
|
# 询问是否保存镜像
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@ -22,57 +22,38 @@ if [ ! -d "$INPUT_DIR" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 定义要加载的镜像文件和期望的镜像名称
|
# 查找所有tar文件并加载
|
||||||
declare -A IMAGES=(
|
|
||||||
["argus-ftp.tar"]="argus-metric-ftp:latest"
|
|
||||||
["argus-prometheus.tar"]="argus-metric-prometheus:latest"
|
|
||||||
["argus-grafana.tar"]="argus-metric-grafana:latest"
|
|
||||||
["test-node.tar"]="ubuntu:22.04"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 加载镜像
|
|
||||||
total=0
|
total=0
|
||||||
success=0
|
success=0
|
||||||
skipped=0
|
|
||||||
failed=0
|
failed=0
|
||||||
|
|
||||||
for tar_file in "${!IMAGES[@]}"; do
|
# 查找目录下所有.tar文件
|
||||||
|
tar_files=($(find "$INPUT_DIR" -name "*.tar" -type f 2>/dev/null | sort))
|
||||||
|
|
||||||
|
if [ ${#tar_files[@]} -eq 0 ]; then
|
||||||
|
echo "错误: 在目录 $INPUT_DIR 中未找到任何 .tar 文件"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "找到 ${#tar_files[@]} 个镜像文件:"
|
||||||
|
for tar_file in "${tar_files[@]}"; do
|
||||||
|
echo " - $(basename "$tar_file")"
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
for tar_file in "${tar_files[@]}"; do
|
||||||
total=$((total + 1))
|
total=$((total + 1))
|
||||||
input_file="${INPUT_DIR}/${tar_file}"
|
tar_filename=$(basename "$tar_file")
|
||||||
image_name="${IMAGES[$tar_file]}"
|
|
||||||
|
|
||||||
echo "[$total] 处理: $tar_file"
|
echo "[$total] 处理: $tar_filename"
|
||||||
|
|
||||||
# 检查 tar 文件是否存在
|
# 强制加载,不检查镜像是否已存在
|
||||||
if [ ! -f "$input_file" ]; then
|
echo " 加载镜像..."
|
||||||
echo " ✗ 文件不存在: $tar_file"
|
if docker load -i "$tar_file"; then
|
||||||
failed=$((failed + 1))
|
echo " 加载成功: $tar_filename"
|
||||||
echo ""
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 检查镜像是否已存在
|
|
||||||
if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${image_name}$"; then
|
|
||||||
echo " ⊙ 镜像已存在: $image_name (跳过)"
|
|
||||||
skipped=$((skipped + 1))
|
|
||||||
echo ""
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 加载镜像
|
|
||||||
echo " → 加载镜像..."
|
|
||||||
if docker load -i "$input_file"; then
|
|
||||||
# 验证加载后的镜像
|
|
||||||
if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${image_name}$"; then
|
|
||||||
echo " ✓ 加载成功: $image_name"
|
|
||||||
success=$((success + 1))
|
success=$((success + 1))
|
||||||
else
|
else
|
||||||
echo " ⚠ 加载完成,但镜像名称可能不匹配"
|
echo " 加载失败: $tar_filename"
|
||||||
echo " 请检查: docker images | grep '${image_name%:*}'"
|
|
||||||
success=$((success + 1))
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo " ✗ 加载失败: $tar_file"
|
|
||||||
failed=$((failed + 1))
|
failed=$((failed + 1))
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
@ -85,13 +66,12 @@ echo ""
|
|||||||
echo "统计:"
|
echo "统计:"
|
||||||
echo " 总计: $total"
|
echo " 总计: $total"
|
||||||
echo " 成功: $success"
|
echo " 成功: $success"
|
||||||
echo " 跳过: $skipped"
|
|
||||||
echo " 失败: $failed"
|
echo " 失败: $failed"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 显示当前的镜像
|
# 显示当前所有镜像
|
||||||
echo "当前 Argus 相关镜像:"
|
echo "当前所有镜像:"
|
||||||
docker images | grep -E "REPOSITORY|argus-metric" || echo "未找到 argus-metric 镜像"
|
docker images
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [ $failed -gt 0 ]; then
|
if [ $failed -gt 0 ]; then
|
||||||
@ -100,10 +80,6 @@ if [ $failed -gt 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $success -gt 0 ]; then
|
if [ $success -gt 0 ]; then
|
||||||
echo "✓ 镜像加载成功!"
|
echo "镜像加载成功!"
|
||||||
echo ""
|
|
||||||
echo "下一步:"
|
|
||||||
echo " 运行: bash scripts/common/start-all.sh"
|
|
||||||
echo " 或者: docker-compose up -d"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user