1:新增dos相关任务
2:修复druid-TSG-7519问题
This commit is contained in:
34
TSG-21.08/clickhouse/create_dos_tables.bash
Normal file
34
TSG-21.08/clickhouse/create_dos_tables.bash
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE tsg_galaxy_v3.dos_event_log_local on cluster ck_cluster(
|
||||||
|
log_id UInt64,
|
||||||
|
start_time Int64,
|
||||||
|
end_time Int64,
|
||||||
|
attack_type String,
|
||||||
|
severity String,
|
||||||
|
conditions String,
|
||||||
|
destination_ip String,
|
||||||
|
destination_country String,
|
||||||
|
source_ip_list String,
|
||||||
|
source_country_list String,
|
||||||
|
session_rate Int64,
|
||||||
|
packet_rate Int64,
|
||||||
|
bit_rate Int64
|
||||||
|
) ENGINE = MergeTree PARTITION BY toYYYYMMDD(toDate(start_time)) ORDER BY (log_id, start_time, destination_ip) SETTINGS index_granularity = 8192;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE tsg_galaxy_v3.dos_event_log on cluster ck_query(
|
||||||
|
log_id UInt64,
|
||||||
|
start_time Int64,
|
||||||
|
end_time Int64,
|
||||||
|
attack_type String,
|
||||||
|
severity String,
|
||||||
|
conditions String,
|
||||||
|
destination_ip String,
|
||||||
|
destination_country String,
|
||||||
|
source_ip_list String,
|
||||||
|
source_country_list String,
|
||||||
|
session_rate Int64,
|
||||||
|
packet_rate Int64,
|
||||||
|
bit_rate Int64
|
||||||
|
) ENGINE = Distributed('ck_cluster', 'tsg_galaxy_v3', 'dos_event_log_local', rand());
|
||||||
55
TSG-21.08/druid/traffic_destination_ip_metrics_log.json
Normal file
55
TSG-21.08/druid/traffic_destination_ip_metrics_log.json
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"type": "kafka",
|
||||||
|
"dataSchema": {
|
||||||
|
"dataSource": "traffic_top_destination_ip_metrics_log",
|
||||||
|
"parser": {
|
||||||
|
"type": "string",
|
||||||
|
"parseSpec": {
|
||||||
|
"format": "json",
|
||||||
|
"timestampSpec": {
|
||||||
|
"column": "sketch_start_time",
|
||||||
|
"format": "posix"
|
||||||
|
},
|
||||||
|
"dimensionsSpec": {
|
||||||
|
"dimensions": [
|
||||||
|
"common_sled_ip",
|
||||||
|
"destination_ip",
|
||||||
|
"common_data_center",
|
||||||
|
"attack_type",
|
||||||
|
{ "type": "long", "name": "partition_num" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"metricsSpec" : [
|
||||||
|
{ "type" : "longSum", "name" : "session_rate","fieldName" : "session_rate"},
|
||||||
|
{ "type" : "longSum", "name" : "packet_rate", "fieldName" : "packet_rate" },
|
||||||
|
{ "type" : "longSum", "name" : "bit_rate", "fieldName" : "bit_rate" },
|
||||||
|
{ "type" : "HLLSketchBuild", "name" : "ip_object", "fieldName" : "common_client_ip" }
|
||||||
|
],
|
||||||
|
"granularitySpec": {
|
||||||
|
"type": "uniform",
|
||||||
|
"segmentGranularity": "DAY",
|
||||||
|
"queryGranularity": {"type": "period", "period": "PT10M", "timeZone": "Asia/Hong_Kong"},
|
||||||
|
"rollup": true
|
||||||
|
},
|
||||||
|
"transformSpec" :{
|
||||||
|
"transforms":[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tuningConfig": {
|
||||||
|
"type": "kafka",
|
||||||
|
"resetOffsetAutomatically": true,
|
||||||
|
"reportParseExceptions": false
|
||||||
|
},
|
||||||
|
"ioConfig": {
|
||||||
|
"topic": "TRAFFIC-TOP-DESTINATION-IP-METRICS-LOG",
|
||||||
|
"taskCount": 1,
|
||||||
|
"replicas": 1,
|
||||||
|
"taskDuration": "PT1H",
|
||||||
|
"completionTimeout": "PT30M",
|
||||||
|
"consumerProperties": {
|
||||||
|
"bootstrap.servers": "192.168.44.12:9092"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
72
TSG-21.08/druid/traffic_summary_log.json
Normal file
72
TSG-21.08/druid/traffic_summary_log.json
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"type": "kafka",
|
||||||
|
"dataSchema": {
|
||||||
|
"dataSource": "traffic_summary_log",
|
||||||
|
"parser": {
|
||||||
|
"type": "string",
|
||||||
|
"parseSpec": {
|
||||||
|
"format": "json",
|
||||||
|
"timestampSpec": {
|
||||||
|
"column": "common_recv_time",
|
||||||
|
"format": "posix"
|
||||||
|
},
|
||||||
|
"dimensionsSpec": {
|
||||||
|
"dimensions": [
|
||||||
|
"isp",
|
||||||
|
"data_center",
|
||||||
|
"schema_type",
|
||||||
|
{ "name": "entrance_id", "type": "long" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"metricsSpec" : [
|
||||||
|
{ "type" : "HLLSketchBuild", "name" : "ip_object", "fieldName" : "common_client_ip" },
|
||||||
|
{ "type" : "longSum", "name" : "sessions", "fieldName" : "common_sessions" },
|
||||||
|
{ "type" : "longSum", "name" : "c2s_pkt_num", "fieldName" : "common_c2s_pkt_num" },
|
||||||
|
{ "type" : "longSum", "name" : "s2c_pkt_num", "fieldName" : "common_s2c_pkt_num" },
|
||||||
|
{ "type" : "longSum", "name" : "c2s_byte_num", "fieldName" : "common_c2s_byte_num" },
|
||||||
|
{ "type" : "longSum", "name" : "s2c_byte_num", "fieldName" : "common_s2c_byte_num" },
|
||||||
|
{ "type" : "longSum", "name" : "one_sided_connections", "fieldName" : "one_sided_connections" },
|
||||||
|
{ "type" : "longSum", "name" : "uncategorized_bytes", "fieldName" : "uncategorized_bytes" },
|
||||||
|
{ "type" : "longSum", "name" : "fragmentation_packets", "fieldName" : "fragmentation_packets" },
|
||||||
|
{ "type" : "longSum", "name" : "sequence_gap_loss", "fieldName" : "sequence_gap_loss" },
|
||||||
|
{ "type" : "longSum", "name" : "unorder_packets", "fieldName" : "unorder_packets" }
|
||||||
|
],
|
||||||
|
"granularitySpec": {
|
||||||
|
"type": "uniform",
|
||||||
|
"segmentGranularity": "DAY",
|
||||||
|
"queryGranularity": {"type": "period", "period": "PT15S", "timeZone": "Asia/Hong_Kong"},
|
||||||
|
"rollup": true
|
||||||
|
},
|
||||||
|
"transformSpec" :{
|
||||||
|
"transforms":[
|
||||||
|
{"type": "expression","name": "isp","expression": "common_isp"},
|
||||||
|
{"type": "expression","name": "data_center","expression": "common_data_center"},
|
||||||
|
{"type": "expression","name": "entrance_id","expression": "common_entrance_id"},
|
||||||
|
{"type": "expression","name": "schema_type","expression": "common_schema_type"},
|
||||||
|
{"type": "expression", "name": "one_sided_connections", "expression": "if(common_stream_dir!=3,common_sessions,0)"},
|
||||||
|
{"type": "expression", "name": "uncategorized_bytes", "expression": "if(\"common_l7_protocol\"=='UNCATEGORIZED',\"common_c2s_byte_num\"+\"common_s2c_byte_num\",0)"},
|
||||||
|
{"type": "expression","name": "fragmentation_packets","expression": "\"common_c2s_ipfrag_num\"+\"common_s2c_ipfrag_num\""},
|
||||||
|
{"type": "expression","name": "sequence_gap_loss","expression": "\"common_c2s_tcp_lostlen\"+\"common_s2c_tcp_lostlen\""},
|
||||||
|
{"type": "expression","name": "unorder_packets","expression": "\"common_c2s_tcp_unorder_num\"+\"common_s2c_tcp_unorder_num\""}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tuningConfig": {
|
||||||
|
"type": "kafka",
|
||||||
|
"maxRowsPerSegment": 20000000,
|
||||||
|
"reportParseExceptions": false
|
||||||
|
},
|
||||||
|
"ioConfig": {
|
||||||
|
"topic": "CONNECTION-RECORD-COMPLETED-LOG",
|
||||||
|
"taskCount": 1,
|
||||||
|
"replicas": 1,
|
||||||
|
"taskDuration": "PT1H",
|
||||||
|
"completionTimeout": "PT30M",
|
||||||
|
"consumerProperties": {
|
||||||
|
"bootstrap.servers": "kafkabootstrap:9092",
|
||||||
|
"group.id": "kafka-indexing-service"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#gohangout启动文件
|
||||||
|
|
||||||
|
#配置文件名称,注意配置文件需要放在$BASE_DIR/conf文件夹下
|
||||||
|
YML_NAME=k2ck_dos_event_log_tsgv3
|
||||||
|
#gohangout的二进制启动文件路径
|
||||||
|
BASE_DIR=$(cd $(dirname $0); cd ../../; pwd)
|
||||||
|
#日志级别,1,5,10,数字越大日志越详细
|
||||||
|
LOG_LV=3
|
||||||
|
#线程总数,即开启worker数量,每个线程拥有自己的filter, output,占用多份内存,默认1个线程
|
||||||
|
THREAD_SUM=1
|
||||||
|
#进程总数
|
||||||
|
PROCESS_SUM=$1
|
||||||
|
|
||||||
|
if [ ! -d "$BASE_DIR/logs" ]; then
|
||||||
|
mkdir -p $BASE_DIR/logs
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "###########################$(date +%Y%m%d%H%M%S)###########################" >> $BASE_DIR/bin/start_log/${YML_NAME}_restart.log
|
||||||
|
id=0
|
||||||
|
logid=0
|
||||||
|
while true ; do
|
||||||
|
NUM=`ps -ef | grep -w ${YML_NAME}.yml | grep -v grep |wc -l`
|
||||||
|
pids=$(ps -ef | grep -w ${YML_NAME}.yml | grep -v grep | awk '{print $2}')
|
||||||
|
time_stamp=$(date +%Y%m%d%H%M%S)
|
||||||
|
if [ "${NUM}" -lt ${PROCESS_SUM} ];then
|
||||||
|
$BASE_DIR/bin/gohangout --config $BASE_DIR/conf/${YML_NAME}.yml --logtostderr --v ${LOG_LV} --worker ${THREAD_SUM} >> $BASE_DIR/logs/${YML_NAME}.log 2>&1 &
|
||||||
|
echo "${time_stamp} ---> the ${YML_NAME}APP restart ---> $id" >> $BASE_DIR/bin/start_log/${YML_NAME}_restart.log
|
||||||
|
((logid++))
|
||||||
|
((id++))
|
||||||
|
if [ ${logid} -gt ${PROCESS_SUM} ];then
|
||||||
|
logid=0
|
||||||
|
pids=$(ps -ef | grep -w ${YML_NAME}.yml | grep -v grep | awk '{print $2}')
|
||||||
|
for pid in $pids
|
||||||
|
do
|
||||||
|
kill -9 $pid
|
||||||
|
done
|
||||||
|
echo "kafka or clickhouse is error,reset gohangout,sleep 30s... ..." >> $BASE_DIR/bin/start_log/${YML_NAME}_restart.log
|
||||||
|
sleep 30
|
||||||
|
fi
|
||||||
|
#大于设置进程数,杀掉所有进程,重启
|
||||||
|
elif [ "${NUM}" -gt ${PROCESS_SUM} ];then
|
||||||
|
for pid in $pids
|
||||||
|
do
|
||||||
|
kill -9 $pid
|
||||||
|
done
|
||||||
|
id=0
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
29
TSG-21.08/gohangout/conf/k2ck_dos_event_log_tsgv3.yml
Normal file
29
TSG-21.08/gohangout/conf/k2ck_dos_event_log_tsgv3.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
inputs:
|
||||||
|
- Kafka:
|
||||||
|
topic:
|
||||||
|
DOS-EVENT-LOG: 1
|
||||||
|
#assign:
|
||||||
|
# weblog: [0,9]
|
||||||
|
codec: json
|
||||||
|
consumer_settings:
|
||||||
|
bootstrap.servers: "ip:9092"
|
||||||
|
group.id: gohangout_dos_event_log_tsgv3_1
|
||||||
|
max.partition.fetch.bytes: '10485760'
|
||||||
|
auto.commit.interval.ms: '5000'
|
||||||
|
# from.beginning: 'true'
|
||||||
|
# sasl.mechanism: PLAIN
|
||||||
|
# sasl.user: admin
|
||||||
|
# sasl.password: admin-secret
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
- Clickhouse:
|
||||||
|
table: 'tsg_galaxy_v3.dos_event_log_local'
|
||||||
|
username: 'default'
|
||||||
|
password: 'ceiec2019'
|
||||||
|
conn_max_life_time: 60
|
||||||
|
hosts:
|
||||||
|
- 'tcp://ip:9001'
|
||||||
|
bulk_actions: 100000
|
||||||
|
flush_interval: 10
|
||||||
|
concurrent: 2
|
||||||
|
conn_max_life_time: 60
|
||||||
17
TSG-21.08/gohangout/start_all.sh
Normal file
17
TSG-21.08/gohangout/start_all.sh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
STARTDIR=$(cd $(dirname $0); pwd)
|
||||||
|
|
||||||
|
#docker模式
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_active_defence_event_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_connection_record_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_proxy_event_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_radius_record_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_radius_onff_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_sys_packet_capture_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_voip_record_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_gtpc_record_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_live_session_record_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_transaction_record_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
nohup $STARTDIR/bin/ghoStart/start_gohangout_k2ck_dos_event_log_tsgv3.sh $1 > /dev/null 2>&1 &
|
||||||
|
$STARTDIR/bin/ghoStart/start_gohangout_k2ck_security_event_log_tsgv3.sh $1
|
||||||
Reference in New Issue
Block a user