添加Prometheus配置
This commit is contained in:
@@ -62,6 +62,40 @@ else
|
||||
echo "No TTY detected, using default port: $PORT"
|
||||
fi
|
||||
|
||||
# Configure monitoring targets
|
||||
if [ -d "/etc/prometheus" ]; then
|
||||
TARGETS_DIR="/etc/prometheus/blackbox_targets"
|
||||
echo "Prometheus detected, targets will be saved to $TARGETS_DIR"
|
||||
else
|
||||
TARGETS_DIR="/blackbox_exporter/targets"
|
||||
fi
|
||||
if [ -t 0 ]; then
|
||||
echo "========================================================="
|
||||
echo "Configuring monitoring objects (optional)..."
|
||||
read -rp "Enter targets for ICMP Ping (separated by space, e.g. 8.8.8.8 1.1.1.1): " ICMP_VAL
|
||||
read -rp "Enter targets for HTTP check (separated by space, e.g. https://google.com): " HTTP_VAL
|
||||
|
||||
if [ -n "$ICMP_VAL" ] || [ -n "$HTTP_VAL" ]; then
|
||||
sudo mkdir -p "$TARGETS_DIR"
|
||||
if [ -n "$ICMP_VAL" ]; then
|
||||
echo "- targets:" | sudo tee "$TARGETS_DIR/icmp.yml" > /dev/null
|
||||
for t in $ICMP_VAL; do
|
||||
echo " - $t" | sudo tee -a "$TARGETS_DIR/icmp.yml" > /dev/null
|
||||
done
|
||||
echo "Done: $TARGETS_DIR/icmp.yml"
|
||||
fi
|
||||
if [ -n "$HTTP_VAL" ]; then
|
||||
echo "- targets:" | sudo tee "$TARGETS_DIR/http.yml" > /dev/null
|
||||
for t in $HTTP_VAL; do
|
||||
echo " - $t" | sudo tee -a "$TARGETS_DIR/http.yml" > /dev/null
|
||||
done
|
||||
echo "Done: $TARGETS_DIR/http.yml"
|
||||
fi
|
||||
fi
|
||||
echo "========================================================="
|
||||
fi
|
||||
|
||||
|
||||
# Create systemd service file
|
||||
SERVICE_FILE="/etc/systemd/system/blackbox_exporter.service"
|
||||
echo "Creating systemd service file..."
|
||||
@@ -86,5 +120,78 @@ echo "Enabling and starting blackbox_exporter service..."
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now blackbox_exporter.service
|
||||
|
||||
echo "Blackbox Exporter installation completed, listening on port ${PORT}"
|
||||
# Automatically integrate with Prometheus if present
|
||||
PROMETHEUS_YML="/etc/prometheus/prometheus.yml"
|
||||
if [ -f "$PROMETHEUS_YML" ]; then
|
||||
echo "Integrating with Prometheus..."
|
||||
TEMP_CONF="/tmp/blackbox_jobs.yml"
|
||||
rm -f "$TEMP_CONF"
|
||||
|
||||
# Generate the job snippets
|
||||
if [ -f "$TARGETS_DIR/icmp.yml" ] && ! grep -q "job_name: 'blackbox-icmp'" "$PROMETHEUS_YML"; then
|
||||
cat <<EOF >> "$TEMP_CONF"
|
||||
- job_name: 'blackbox-icmp'
|
||||
metrics_path: /probe
|
||||
params:
|
||||
module: [icmp]
|
||||
file_sd_configs:
|
||||
- files:
|
||||
- $TARGETS_DIR/icmp.yml
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
target_label: __param_target
|
||||
- source_labels: [__param_target]
|
||||
target_label: instance
|
||||
- target_label: __address__
|
||||
replacement: 127.0.0.1:${PORT}
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -f "$TARGETS_DIR/http.yml" ] && ! grep -q "job_name: 'blackbox-http'" "$PROMETHEUS_YML"; then
|
||||
cat <<EOF >> "$TEMP_CONF"
|
||||
- job_name: 'blackbox-http'
|
||||
metrics_path: /probe
|
||||
params:
|
||||
module: [http_2xx]
|
||||
file_sd_configs:
|
||||
- files:
|
||||
- $TARGETS_DIR/http.yml
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
target_label: __param_target
|
||||
- source_labels: [__param_target]
|
||||
target_label: instance
|
||||
- target_label: __address__
|
||||
replacement: 127.0.0.1:${PORT}
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -f "$TEMP_CONF" ]; then
|
||||
if [ -t 0 ]; then
|
||||
read -rp "Found $PROMETHEUS_YML. Would you like to append the blackbox jobs automatically? [y/N]: " DO_APPEND
|
||||
else
|
||||
DO_APPEND="y"
|
||||
fi
|
||||
|
||||
if [[ "$DO_APPEND" =~ ^[Yy]$ ]]; then
|
||||
cat "$TEMP_CONF" | sudo tee -a "$PROMETHEUS_YML" > /dev/null
|
||||
echo "Jobs appended to $PROMETHEUS_YML."
|
||||
if [ -f "/usr/bin/restart_prometheus" ]; then
|
||||
echo "Restarting Prometheus..."
|
||||
sudo /usr/bin/restart_prometheus
|
||||
else
|
||||
echo "Please restart Prometheus to apply changes: sudo systemctl restart prometheus"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Blackbox jobs already exist in $PROMETHEUS_YML or no targets configured."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "========================================================="
|
||||
echo "Blackbox Exporter installation and integration completed!"
|
||||
echo "Listening on port: ${PORT}"
|
||||
echo "========================================================="
|
||||
|
||||
|
||||
Reference in New Issue
Block a user