entgra-elk/entrypoint.sh

37 lines
1.6 KiB
Bash
Raw Normal View History

2024-05-22 08:52:13 +00:00
#!/bin/bash
2024-05-27 12:23:18 +00:00
# Check if ECS_CONTAINER_METADATA_FILE is set
if [ -z "$ECS_CONTAINER_METADATA_FILE" ]; then
echo "ECS_CONTAINER_METADATA_FILE is not set or the server is running on local deployment environment"
fi
# Extract HostPrivateIPv4Address from the metadata file
HOST_PRIVATE_IP=$(cat $ECS_CONTAINER_METADATA_FILE | grep -oP '(?<=HostPrivateIPv4Address": ")[^"]+')
if [ "$HOST_PRIVATE_IP" != "null" ]; then
echo "Host Private IP: $HOST_PRIVATE_IP"
# Define the input template file and output file
TEMPLATE_FILE="filebeat.template.yml"
OUTPUT_FILE="filebeat.yml"
mkdir -p /opt/filebeat-configs/${HOST_PRIVATE_IP}
2024-07-03 08:30:51 +00:00
cp /opt/filebeat-configs/$TEMPLATE_FILE /opt/filebeat-configs/${HOST_PRIVATE_IP}/$OUTPUT_FILE
2024-05-27 12:23:18 +00:00
# Replace the placeholder with the actual node name and write to the output file
2024-07-03 08:30:51 +00:00
sed -i 's/${HOST_PRIVATE_IP}/'$HOST_PRIVATE_IP'/g' /opt/filebeat-configs/${HOST_PRIVATE_IP}/$OUTPUT_FILE
sed -i 's/${LOGSTASH_HOST}/'$LOGSTASH_HOST'/g' /opt/filebeat-configs/${HOST_PRIVATE_IP}/$OUTPUT_FILE
sed -i 's/${LOGSTASH_PORT}/'$LOGSTASH_PORT'/g' /opt/filebeat-configs/${HOST_PRIVATE_IP}/$OUTPUT_FILE
2024-05-27 12:23:18 +00:00
echo "Filebeat configuration file created: $OUTPUT_FILE"
# Create symlinks
rm -rf /usr/share/filebeat/elk
ln -sf "/opt/logs/${HOST_PRIVATE_IP}/elk" /usr/share/filebeat/elk
ln -sf "/opt/filebeat-configs/${HOST_PRIVATE_IP}/filebeat.yml" /usr/share/filebeat/filebeat.yml
2024-05-22 08:52:13 +00:00
else
2024-05-27 12:23:18 +00:00
echo "HostPrivateIPv4Address not found"
2024-05-22 08:52:13 +00:00
fi
2024-07-03 08:30:51 +00:00
# Execute the original Filebeat entry point with passed arguments
exec /usr/local/bin/docker-entrypoint "$@"