Home > Net >  'Permission Denied' while configuring Filebeat and Logstash using Bash Script
'Permission Denied' while configuring Filebeat and Logstash using Bash Script

Time:09-16

I am writing a script that creates a logstash conf file and adds the configuration, and removes the existing filebeat config file and creates a new one.

I am using cat, but when I run the script, I get:

./script.sh: /etc/logstash/conf.d/apache.conf : Permission denied
./script.sh: /etc/filebeat/filebeat.yml: Permission denied

This is the script. I have tried using sudo chown -R. Am I missing something or is there a better way to configure my file?

#!/bin/bash
sudo rm /etc/filebeat/filebeat.yml
cat > "/etc/filebeat/filebeat.yml" <<EOF
filebeat.inputs:
- type: filestream
  id: my-filestream-id
  enabled: true

  paths:
    - /home/ubuntu/logs/.*log
setup.kibana:
output.logstash:
  hosts: ["169.254.169.254:5044"]
EOF

sudo touch /etc/logstash/conf.d/apache.conf

sudo cat  > "/etc/logstash/conf.d/apache.conf " <<EOF
input {
  beats {
    port => 5044
  }
}
output {
  elasticsearch {
    hosts => ["169.254.169.254"]
  }
}

EOF

CodePudding user response:

The main problem here is because of how redirections work.

According to this answer:

All redirections (including >) are applied before executing the actual command. In other words, your shell first tries to open /etc/php5/apache2/php.ini for writing using your account, then runs a completely useless sudo cat.

You can easily solve your problem by using tee (with sudo) instead of cat. Then, your script should be like this:

#!/bin/bash
sudo rm /etc/filebeat/filebeat.yml
sudo tee "/etc/filebeat/filebeat.yml" << EOF
filebeat.inputs:
- type: filestream
  id: my-filestream-id
  enabled: true

  paths:
    - /home/ubuntu/logs/.*log
setup.kibana:
output.logstash:
  hosts: ["169.254.169.254:5044"]
EOF

sudo touch /etc/logstash/conf.d/apache.conf

sudo tee "/etc/logstash/conf.d/apache.conf" << EOF
input {
  beats {
    port => 5044
  }
}
output {
  elasticsearch {
    hosts => ["169.254.169.254"]
  }
}

EOF
  • Related