[新增]24.07初始化模板
This commit is contained in:
71
tsg_olap/installation/kafka/create_topic.sh.j2
Normal file
71
tsg_olap/installation/kafka/create_topic.sh.j2
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
source /etc/profile
|
||||
|
||||
partition_nums={{ groups.kafka | length }}
|
||||
replication_nums={{ 2 if groups.kafka | length >1 else 1 }}
|
||||
kafka_servers="{% for host in groups['kafka'] %}{{ host }}:9092{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
|
||||
common_topic=(
|
||||
BGP-RECORD
|
||||
DOS-EVENT
|
||||
NETWORK-TRAFFIC-METRIC
|
||||
OBJECT-STATISTICS-METRIC
|
||||
POLICY-RULE-METRIC
|
||||
PROXY-EVENT
|
||||
PROXY-EVENT-PROCESSED
|
||||
PXY-EXCH-INTERMEDIA-CERT
|
||||
SESSION-RECORD-IPFIX
|
||||
STATISTICS-RULE-METRIC
|
||||
VOIP-CONVERSATION-RECORD
|
||||
VOIP-RECORD
|
||||
VOIP-RECORD-PROCESSED
|
||||
TOPK-METRIC
|
||||
DOS-PROTECTION-RULE-METRIC
|
||||
DOS-SKETCH-TOP-SERVER-IP
|
||||
DOS-SKETCH-METRIC
|
||||
DATAPATH-TELEMETRY-RECORD
|
||||
TRAFFIC-SKETCH-METRIC
|
||||
)
|
||||
|
||||
multi_partition_topic=(
|
||||
TRANSACTION-RECORD
|
||||
TRANSACTION-RECORD-PROCESSED
|
||||
SESSION-RECORD
|
||||
SESSION-RECORD-PROCESSED
|
||||
TRAFFIC-FILE-STREAM-RECORD
|
||||
)
|
||||
|
||||
function getTopic() {
|
||||
docker exec kafka kafka-topics.sh --bootstrap-server $kafka_servers --list
|
||||
}
|
||||
|
||||
function createTopic() {
|
||||
exist_topic=$(echo "$exist_topic_list" | grep -wx "$3" | wc -l)
|
||||
if [ $exist_topic -eq '0' ]; then
|
||||
docker exec kafka kafka-topics.sh '--create' '--if-not-exists' '--bootstrap-server' "$kafka_servers" '--replication-factor' $1 '--partitions' $2 '--topic' $3
|
||||
fi
|
||||
}
|
||||
|
||||
function checkTopic() {
|
||||
exist_topic_list=$(getTopic)
|
||||
all_topic=("${common_topic[@]}" "${multi_partition_topic[@]}")
|
||||
for topic_name in ${all_topic[@]}; do
|
||||
exist_topic=$(echo "$exist_topic_list" | grep -wx "$topic_name" | wc -l)
|
||||
if [ $exist_topic -eq '0' ]; then
|
||||
echo "Topic $topic_name creation failure"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
exist_topic_list=$(getTopic)
|
||||
for topic_name in ${common_topic[@]}; do
|
||||
createTopic $replication_nums $partition_nums $topic_name
|
||||
done
|
||||
|
||||
for topic_name in ${multi_partition_topic[@]}; do
|
||||
createTopic 1 $((partition_nums * 3)) $topic_name
|
||||
done
|
||||
|
||||
checkTopic
|
||||
Reference in New Issue
Block a user