72 lines
2.0 KiB
Bash
72 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# Configure Apache Kafka for Odin
|
|
#
|
|
|
|
echo -e "\e[93m"
|
|
|
|
log() {
|
|
echo -e "\t\e[96m[*]${1}\e[93m"
|
|
}
|
|
|
|
export KAFKA_URL='http://apache.claz.org/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz'
|
|
export IP=$(ip route | awk '/src/{print $9}')
|
|
echo "kafka" >/etc/hostname
|
|
echo "${IP}\tkafka" >> /etc/hosts
|
|
|
|
deluser -q --remove-home ubuntu
|
|
|
|
apt-get update || exit 1
|
|
apt-get --purge remove snapd lxd -y
|
|
apt-get upgrade -y
|
|
apt-get install -y htop wget default-jre zookeeperd prometheus-node-exporter
|
|
|
|
useradd -r -d /opt/kafka -s /bin/true kafka
|
|
mkdir /var/lib/kafka && chown kafka /var/lib/kafka
|
|
wget -O /opt/kafka.tgz ${KAFKA_URL}
|
|
tar -xzf /opt/kafka.tgz -C /opt
|
|
rm /opt/kafka.tgz
|
|
mv /opt/kafka_* /opt/kafka
|
|
chown -R kafka /opt/kafka
|
|
|
|
cat >/etc/systemd/system/kafka.service<<EOF
|
|
[Unit]
|
|
Description=Apache Kafka server (broker)
|
|
Documentation=http://kafka.apache.org/documentation.html
|
|
Requires=network.target
|
|
After=network.target zookeeper.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=kafka
|
|
Group=kafka
|
|
Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
|
|
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
|
|
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
sed -i 's/#delete.topic.enable=true/delete.topic.enable=true/g' /opt/kafka/config/server.properties
|
|
sed -i 's/log.dirs=\/tmp\/kafka-logs/log.dirs=\/var\/lib\/kafka/g' /opt/kafka/config/server.properties
|
|
sed -i 's/log.dirs=\/tmp\/kafka-logs/log.dirs=\/var\/lib\/kafka/g' /opt/kafka/config/server.properties
|
|
sed -i 's/#listeners=PLAINTEXT:\/\/:9092/listeners=PLAINTEXT:\/\/kafka:9092/g' /opt/kafka/config/server.properties
|
|
|
|
cat >> /etc/cron.weekly/kafka_cleanup<<EOF
|
|
#!/bin/bash
|
|
|
|
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
export PATH=\${PATH}:/opt/kafka/bin
|
|
export zk="127.0.0.1:2181"
|
|
|
|
for i in \$(kafka-topics.sh --list --zookeeper \${zk} |grep -v __consumer_offsets); do
|
|
kafka-topics.sh --zookeeper \${zk} --delete --topic \${i}
|
|
done
|
|
EOF
|
|
|
|
apt-get install -y prometheus-node-exporter
|
|
|
|
systemctl enable kafka
|
|
systemctl start kafka
|
|
echo -e "\e[0m"
|