mirror of
https://github.com/krislamo/graylog_demo
synced 2024-12-16 06:50:35 +00:00
Improved input installation on provisioning
This commit is contained in:
parent
163f140726
commit
9d17f8ab08
58
Vagrantfile
vendored
58
Vagrantfile
vendored
@ -20,7 +20,9 @@ Vagrant.configure("2") do |config|
|
|||||||
|
|
||||||
# Import GPG keys
|
# Import GPG keys
|
||||||
curl -s https://download.docker.com/linux/centos/gpg -o docker-key
|
curl -s https://download.docker.com/linux/centos/gpg -o docker-key
|
||||||
rpm --import docker-key /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
rpm --import docker-key \
|
||||||
|
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 \
|
||||||
|
http://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
|
||||||
|
|
||||||
# Install Docker Community Edition
|
# Install Docker Community Edition
|
||||||
yum-config-manager --add-repo \
|
yum-config-manager --add-repo \
|
||||||
@ -33,6 +35,10 @@ Vagrant.configure("2") do |config|
|
|||||||
# Convenience
|
# Convenience
|
||||||
yum install -y vim
|
yum install -y vim
|
||||||
|
|
||||||
|
# Install jq
|
||||||
|
yum install -y epel-release
|
||||||
|
yum install -y jq
|
||||||
|
|
||||||
# Install apache
|
# Install apache
|
||||||
yum install -y httpd
|
yum install -y httpd
|
||||||
systemctl start httpd
|
systemctl start httpd
|
||||||
@ -54,16 +60,58 @@ Vagrant.configure("2") do |config|
|
|||||||
# Install newest docker-compose
|
# Install newest docker-compose
|
||||||
config.vm.provision "shell", path: "install-compose.sh"
|
config.vm.provision "shell", path: "install-compose.sh"
|
||||||
|
|
||||||
# Start compose services
|
# Start compose services and add default input
|
||||||
config.vm.provision "shell", inline: <<-SHELL
|
config.vm.provision "shell", inline: <<-SHELL
|
||||||
|
# Bring up containers
|
||||||
cd /vagrant
|
cd /vagrant
|
||||||
/usr/local/bin/docker-compose up -d 2> /dev/null
|
/usr/local/bin/docker-compose up -d 2> /dev/null
|
||||||
cd /vagrant/wordpress
|
cd /vagrant/wordpress
|
||||||
/usr/local/bin/docker-compose up -d 2> /dev/null
|
/usr/local/bin/docker-compose up -d 2> /dev/null
|
||||||
echo "Waiting 60 seconds for Graylog to become available..."
|
|
||||||
sleep 60
|
|
||||||
cd /vagrant
|
cd /vagrant
|
||||||
curl -i -X POST \
|
|
||||||
|
# Wait 120 seconds for Graylog to come online
|
||||||
|
SECONDS=0
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
GRAYLOG_STATE=$(
|
||||||
|
docker inspect vagrant_graylog_1 \
|
||||||
|
| jq --raw-output '.[] | .State.Health.Status')
|
||||||
|
|
||||||
|
if [[ "$GRAYLOG_STATE" == "healthy" ]]; then
|
||||||
|
echo "Graylog is available."
|
||||||
|
sleep 5
|
||||||
|
break
|
||||||
|
elif [[ $GRAYLOG_STATE != "starting" ]]; then
|
||||||
|
echo "Something is wrong with Graylog. Aborting."
|
||||||
|
exit 1
|
||||||
|
elif [[ $SECONDS -le 120 ]]; then
|
||||||
|
echo "Waiting for Graylog ($SECONDS/120 seconds)"
|
||||||
|
sleep 10
|
||||||
|
else
|
||||||
|
echo "Waiting on Graylog timed out. Aborting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check for existing GELF UDP Input
|
||||||
|
INPUTSTATE=$(
|
||||||
|
curl -s -X GET \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "X-Requested-By: cli" \
|
||||||
|
-u admin:admin \
|
||||||
|
"http://graylog.172.28.128.30.xip.io:8080/api/system/inputstates")
|
||||||
|
|
||||||
|
INPUT_TYPES=$(echo $INPUTSTATE | jq --raw-output '.states | .[] | .message_input.type')
|
||||||
|
|
||||||
|
for TYPE in $INPUT_TYPES; do
|
||||||
|
if [[ "$TYPE" == "org.graylog2.inputs.gelf.udp.GELFUDPInput" ]]; then
|
||||||
|
echo "Found GELF UDP input in Graylog, aborting input installation."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Install GELF UDP Input
|
||||||
|
curl -i -s -X POST \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-H "X-Requested-By: cli" \
|
-H "X-Requested-By: cli" \
|
||||||
-u admin:admin \
|
-u admin:admin \
|
||||||
|
Loading…
Reference in New Issue
Block a user