dev_1.0.0_sundp 完成Metric模块及模块e2e测试 (#18)
Co-authored-by: sundapeng.sdp <sundapeng@hashdata.cn> Reviewed-on: #18 Reviewed-by: xuxt <xuxt@zgclab.edu.cn> Reviewed-by: yuyr <yuyr@zgclab.edu.cn> Reviewed-by: huhy <husteryezi@163.com>
This commit was merged in pull request #18.
This commit is contained in:
97
src/metric/grafana/build/start-grafana-supervised.sh
Normal file
97
src/metric/grafana/build/start-grafana-supervised.sh
Normal file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "[INFO] Starting Grafana under supervisor..."
|
||||
|
||||
DOMAIN=grafana.metric.argus.com
|
||||
|
||||
# 记录容器 IP
|
||||
IP=$(ifconfig | awk '/inet / && $2 != "127.0.0.1" {print $2; exit}')
|
||||
echo "current IP: ${IP}"
|
||||
echo "${IP}" > /private/argus/etc/${DOMAIN}
|
||||
|
||||
# 确保必要目录存在(权限已在 Dockerfile 中设置)
|
||||
mkdir -p /private/argus/metric/grafana/data
|
||||
mkdir -p /private/argus/metric/grafana/logs
|
||||
mkdir -p /private/argus/metric/grafana/plugins
|
||||
mkdir -p /private/argus/metric/grafana/provisioning/datasources
|
||||
mkdir -p /private/argus/metric/grafana/provisioning/dashboards
|
||||
mkdir -p /private/argus/metric/grafana/data/sessions
|
||||
mkdir -p /private/argus/metric/grafana/data/dashboards
|
||||
mkdir -p /private/argus/metric/grafana/config
|
||||
mkdir -p /var/log/grafana
|
||||
mkdir -p /etc/grafana/provisioning/datasources
|
||||
mkdir -p /var/lib/grafana
|
||||
|
||||
# 复制主配置文件到持久化目录
|
||||
if [ -f "/tmp/grafana.ini" ]; then
|
||||
echo "[INFO] Copying grafana.ini to /private/argus/metric/grafana/config/"
|
||||
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"
|
||||
fi
|
||||
|
||||
# 检查配置文件来源(优先级:挂载目录 > 容器内配置 > 默认配置)
|
||||
if [ -f "/private/argus/metric/grafana/config/grafana.ini" ]; then
|
||||
echo "[INFO] Using grafana.ini from /private/argus/metric/grafana/config/"
|
||||
CONFIG_FILE="--config=/private/argus/metric/grafana/config/grafana.ini"
|
||||
elif [ -f "/etc/grafana/grafana.ini" ]; then
|
||||
echo "[INFO] Using custom grafana.ini from /etc/grafana/"
|
||||
CONFIG_FILE="--config=/etc/grafana/grafana.ini"
|
||||
else
|
||||
echo "[INFO] Using default configuration"
|
||||
CONFIG_FILE=""
|
||||
fi
|
||||
|
||||
# 复制数据源配置文件到挂载目录
|
||||
if [ -f "/tmp/datasources.yml" ]; then
|
||||
echo "[INFO] Copying datasource configuration to /private/argus/metric/grafana/provisioning/datasources/"
|
||||
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"
|
||||
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"
|
||||
# 确保数据源配置目录权限正确
|
||||
chown -R grafana:grafana /private/argus/metric/grafana/provisioning/datasources
|
||||
elif [ -d "/etc/grafana/provisioning/datasources" ] && [ "$(ls -A /etc/grafana/provisioning/datasources)" ]; then
|
||||
echo "[INFO] Found datasource provisioning files in /etc/grafana/provisioning/datasources"
|
||||
# 确保数据源配置目录权限正确
|
||||
chown -R grafana:grafana /etc/grafana/provisioning/datasources
|
||||
else
|
||||
echo "[INFO] No datasource provisioning files found, using manual configuration"
|
||||
fi
|
||||
|
||||
# 复制仪表板配置文件到挂载目录
|
||||
if [ -f "/tmp/dashboards.yml" ]; then
|
||||
echo "[INFO] Copying dashboard configuration to /private/argus/metric/grafana/provisioning/dashboards/"
|
||||
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"
|
||||
fi
|
||||
|
||||
# 复制默认仪表板到挂载目录
|
||||
if [ -f "/tmp/default_dashboard.json" ]; then
|
||||
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
|
||||
chown grafana:grafana /private/argus/metric/grafana/provisioning/dashboards/default_dashboard.json
|
||||
echo "[INFO] Default dashboard copied successfully"
|
||||
fi
|
||||
|
||||
# 确保所有配置目录权限正确
|
||||
chown -R grafana:grafana /private/argus/metric/grafana/provisioning/
|
||||
|
||||
# 启动 Grafana
|
||||
if [ -n "$CONFIG_FILE" ]; then
|
||||
echo "[INFO] Starting Grafana with custom configuration..."
|
||||
exec /usr/share/grafana/bin/grafana server \
|
||||
--homepath=/usr/share/grafana \
|
||||
--packaging=docker \
|
||||
$CONFIG_FILE
|
||||
else
|
||||
echo "[INFO] Starting Grafana with default configuration..."
|
||||
exec /usr/share/grafana/bin/grafana server \
|
||||
--homepath=/usr/share/grafana \
|
||||
--packaging=docker \
|
||||
cfg:default.log.mode=console \
|
||||
cfg:default.log.level=info
|
||||
fi
|
||||
Reference in New Issue
Block a user