initial commit
This commit is contained in:
71
containers/kafka
Normal file
71
containers/kafka
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user