提交tsg-olap 24.01版本初始化剧本

This commit is contained in:
qidaijie
2024-02-22 11:00:02 +08:00
parent 7868e90839
commit 0b1e1543be
170 changed files with 13137 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
- name: Set arangodb check variable
set_fact:
pin: "root:{{ arangodb_default_pin }}"
- name: Check if collection exists in ArangoDB
uri:
url: "http://{{ groups.arangodb[0] }}:8529/_db/{{ arangodb_database }}/_api/collection/{{ item }}"
method: GET
headers:
Authorization: Basic {{ pin | b64encode }}
loop: "{{ arangodb_collections }}"

View File

@@ -0,0 +1,21 @@
- name: Creating directory
file:
state: directory
path: '{{ deploy_dir }}/{{ container_name }}/init'
- name: Copying init files
template:
src: "create_database.sh.j2"
dest: "{{ deploy_dir }}/{{ container_name }}/init/create_database.sh"
mode: 0755
force: true
- name: Creating database and collection
shell: 'cd {{ deploy_dir }}/{{ container_name }}/init && sh create_database.sh'
register: response
until: response.rc == 0
retries: 3
delay: 3
failed_when: response.rc != 0
run_once: true

View File

@@ -0,0 +1,3 @@
- include: init.yml
when: operation == 'install'
- include: check.yml

View File

@@ -0,0 +1,54 @@
#!/bin/bash
source /etc/profile
arangodb_host={{ groups.arangodb[0] | default('localhost') }}
username=root
pin="{{ arangodb_default_pin }}"
database="{{ arangodb_database }}"
function create_database() {
# 检查数据库是否存在
sleep 2
check_database=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" http://$arangodb_host:8529/_db/$database/_api/database/current)
if [[ $check_database -eq 200 ]]; then
echo "Database $database already exists."
else
# 创建数据库
local response_code=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" -X POST -H "accept: application/json" -d "{\"name\": \"$database\"}" http://$arangodb_host:8529/_api/database)
if [[ $response_code -eq 201 ]]; then
echo "Database $database created successfully."
else
echo "Failed to create database $database."
exit 1
fi
fi
sleep 2
}
function create_collection() {
local collection_name=$1
local collection_type=$2
sleep 2
# 检查文档是否存在
check_collection=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" http://$arangodb_host:8529/_db/$database/_api/collection/$collection_name)
if [[ $check_collection -eq 200 ]]; then
echo "Collection $collection_name already exists."
else
# 创建文档$collection_name
local response_code=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" -X POST -H 'accept: application/json' -d "{\"name\": \"$collection_name\",\"type\": $collection_type }" http://$arangodb_host:8529/_db/$database/_api/collection?isSystem=false)
if [[ $response_code -eq 201 ]]; then
echo "Collection $collection_name created successfully."
else
echo "Failed to create collection $collection_name."
exit 1
fi
fi
sleep 2
}
# 2: document 3: edges
create_database
create_collection IP 2
create_collection R_LOCATE_FQDN2IP 3

View File

@@ -0,0 +1,9 @@
container_name: arangodb
# 数据库
arangodb_database: 'tsg_galaxy_v3'
# 库表
arangodb_collections:
- IP
- R_LOCATE_FQDN2IP

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
create table IF NOT EXISTS `system`.tables_cluster ON CLUSTER ck_query as `system`.tables ENGINE =Distributed(ck_all,`system`,tables,rand());
create table IF NOT EXISTS `system`.disks_cluster ON CLUSTER ck_query as `system`.disks ENGINE =Distributed(ck_all,`system`,disks,rand());
create table IF NOT EXISTS `system`.parts_cluster ON CLUSTER ck_query as `system`.parts ENGINE =Distributed(ck_all,`system`,parts,rand());
create table IF NOT EXISTS `system`.query_log_cluster ON CLUSTER ck_query as `system`.query_log ENGINE =Distributed(ck_all,`system`,query_log,rand());
CREATE TABLE IF NOT EXISTS `system`.columns_cluster ON CLUSTER ck_query AS `system`.columns ENGINE=Distributed(ck_all,`system`,columns,rand());
CREATE TABLE IF NOT EXISTS `system`.processes_cluster ON CLUSTER ck_query AS `system`.processes ENGINE=Distributed(ck_all,`system`,processes,rand());
alter table system.query_log on cluster ck_cluster modify TTL event_date + INTERVAL 60 DAY;
alter table system.query_log on cluster ck_query modify TTL event_date + INTERVAL 60 DAY;

View File

@@ -0,0 +1,247 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_app_full_path String after common_app_id;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_server_asn;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_server_fqdn String after common_server_asn;
CREATE TABLE IF NOT EXISTS tsg_galaxy_v3.session_record_common_server_domain_local ON CLUSTER ck_cluster(
common_log_id UInt64,
common_recv_time Int64,
common_server_ip String,
common_client_ip String,
common_sled_ip String,
common_entrance_id Int64,
common_subscriber_id String,
common_stream_trace_id UInt64,
common_server_domain String,
http_domain String,
ssl_sni String,
common_schema_type LowCardinality(String),
common_vsys_id Int64 DEFAULT 1,
common_client_port Int64,
common_server_port Int64,
common_app_label LowCardinality(String),
common_direction Nullable(Int64),
common_data_center String,
common_device_group String
)
ENGINE=MergeTree PARTITION BY toYYYYMMDD(toDate(common_recv_time))
ORDER BY (common_server_domain,common_recv_time);
CREATE TABLE IF NOT EXISTS tsg_galaxy_v3.session_record_common_server_domain ON CLUSTER ck_cluster(
common_log_id UInt64,
common_recv_time Int64,
common_server_ip String,
common_client_ip String,
common_sled_ip String,
common_entrance_id Int64,
common_subscriber_id String,
common_stream_trace_id UInt64,
common_server_domain String,
http_domain String,
ssl_sni String,
common_schema_type LowCardinality(String),
common_vsys_id Int64,
common_client_port Int64,
common_server_port Int64,
common_app_label LowCardinality(String),
common_direction Nullable(Int64),
common_data_center String,
common_device_group String
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,session_record_common_server_domain_local,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_v3.session_record_common_server_domain ON CLUSTER ck_query(
common_log_id UInt64,
common_recv_time Int64,
common_server_ip String,
common_client_ip String,
common_sled_ip String,
common_entrance_id Int64,
common_subscriber_id String,
common_stream_trace_id UInt64,
common_server_domain String,
http_domain String,
ssl_sni String,
common_schema_type LowCardinality(String),
common_vsys_id Int64,
common_client_port Int64,
common_server_port Int64,
common_app_label LowCardinality(String),
common_direction Nullable(Int64),
common_data_center String,
common_device_group String
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,session_record_common_server_domain_local,rand());
ALTER table tsg_galaxy_v3.session_record_common_client_ip_local on cluster ck_cluster add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_client_ip on cluster ck_cluster add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_client_ip on cluster ck_query add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_server_ip_local on cluster ck_cluster add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_server_ip on cluster ck_cluster add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_server_ip on cluster ck_query add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_http_domain_local on cluster ck_cluster add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_http_domain on cluster ck_cluster add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_http_domain on cluster ck_query add column IF NOT EXISTS common_device_group String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_client_ip_local on cluster ck_cluster add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_client_ip on cluster ck_cluster add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_client_ip on cluster ck_query add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_server_ip_local on cluster ck_cluster add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_server_ip on cluster ck_cluster add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_server_ip on cluster ck_query add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_http_domain_local on cluster ck_cluster add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_http_domain on cluster ck_cluster add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_http_domain on cluster ck_query add column IF NOT EXISTS common_data_center String after common_direction;
ALTER table tsg_galaxy_v3.session_record_common_client_ip_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_common_client_ip on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_common_client_ip on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_common_server_ip_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_common_server_ip on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_common_server_ip on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_http_domain_local on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_http_domain on cluster ck_cluster add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
ALTER table tsg_galaxy_v3.session_record_http_domain on cluster ck_query add column IF NOT EXISTS common_server_domain String after common_stream_trace_id;
drop view IF EXISTS tsg_galaxy_v3.common_client_ip ON CLUSTER ck_cluster;
drop view IF EXISTS tsg_galaxy_v3.common_http_domain ON CLUSTER ck_cluster;
drop view IF EXISTS tsg_galaxy_v3.common_server_ip ON CLUSTER ck_cluster;
CREATE MATERIALIZED VIEW IF NOT EXISTS tsg_galaxy_v3.common_client_ip ON CLUSTER ck_cluster TO tsg_galaxy_v3.session_record_common_client_ip_local AS SELECT common_log_id, common_recv_time, common_server_ip, common_client_ip, common_sled_ip, common_entrance_id, common_subscriber_id, common_stream_trace_id, common_server_domain, http_domain, ssl_sni, common_schema_type, common_vsys_id, common_client_port, common_server_port, common_app_label, common_direction,common_data_center, common_device_group FROM tsg_galaxy_v3.session_record_local;
CREATE MATERIALIZED VIEW IF NOT EXISTS tsg_galaxy_v3.common_http_domain ON CLUSTER ck_cluster TO tsg_galaxy_v3.session_record_http_domain_local AS SELECT common_log_id, common_recv_time, common_server_ip, common_client_ip, common_sled_ip, common_entrance_id, common_subscriber_id, common_stream_trace_id, common_server_domain, http_domain, ssl_sni, common_schema_type, common_vsys_id, common_client_port, common_server_port, common_app_label, common_direction,common_data_center, common_device_group FROM tsg_galaxy_v3.session_record_local;
CREATE MATERIALIZED VIEW IF NOT EXISTS tsg_galaxy_v3.common_server_ip ON CLUSTER ck_cluster TO tsg_galaxy_v3.session_record_common_server_ip_local AS SELECT common_log_id, common_recv_time, common_server_ip, common_client_ip, common_sled_ip, common_entrance_id, common_subscriber_id, common_stream_trace_id, common_server_domain, http_domain, ssl_sni, common_schema_type, common_vsys_id, common_client_port, common_server_port, common_app_label, common_direction,common_data_center, common_device_group FROM tsg_galaxy_v3.session_record_local;
CREATE MATERIALIZED VIEW IF NOT EXISTS tsg_galaxy_v3.common_server_domain ON CLUSTER ck_cluster TO tsg_galaxy_v3.session_record_common_server_domain_local AS SELECT common_log_id, common_recv_time, common_server_ip, common_client_ip, common_sled_ip, common_entrance_id, common_subscriber_id, common_stream_trace_id, common_server_domain, http_domain, ssl_sni, common_schema_type, common_vsys_id, common_client_port, common_server_port, common_app_label, common_direction,common_data_center, common_device_group FROM tsg_galaxy_v3.session_record_local;
drop table IF EXISTS `system`.query_log_cluster on cluster ck_query;
drop table IF EXISTS `system`.disks_cluster on cluster ck_query;
drop table IF EXISTS `system`.columns_cluster on cluster ck_query;
drop table IF EXISTS `system`.parts_cluster on cluster ck_query;
drop table IF EXISTS `system`.processes_cluster on cluster ck_query;
drop table IF EXISTS `system`.tables_cluster on cluster ck_query;
create table IF NOT EXISTS `system`.tables_cluster ON CLUSTER ck_query as `system`.tables ENGINE =Distributed(ck_all,`system`,tables,rand());
create table IF NOT EXISTS `system`.disks_cluster ON CLUSTER ck_query as `system`.disks ENGINE =Distributed(ck_all,`system`,disks,rand());
create table IF NOT EXISTS `system`.parts_cluster ON CLUSTER ck_query as `system`.parts ENGINE =Distributed(ck_all,`system`,parts,rand());
create table IF NOT EXISTS `system`.query_log_cluster ON CLUSTER ck_query as `system`.query_log ENGINE =Distributed(ck_all,`system`,query_log,rand());
CREATE TABLE IF NOT EXISTS `system`.columns_cluster ON CLUSTER ck_query AS `system`.columns ENGINE=Distributed(ck_all,`system`,columns,rand());
CREATE TABLE IF NOT EXISTS `system`.processes_cluster ON CLUSTER ck_query AS `system`.processes ENGINE=Distributed(ck_all,`system`,processes,rand());
alter table system.query_log on cluster ck_cluster modify TTL event_date + INTERVAL 60 DAY;
alter table system.query_log on cluster ck_query modify TTL event_date + INTERVAL 60 DAY;

View File

@@ -0,0 +1,110 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS http_request_body_key String after common_flags;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS http_request_body_key String after common_flags;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS http_request_body_key String after common_flags;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_flags_identify_info String after common_flags;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_shaping_rule_ids Array(Int64) after common_user_region;

View File

@@ -0,0 +1,47 @@
set distributed_ddl_task_timeout = 180;
alter table system.query_log on cluster ck_cluster modify TTL event_date + INTERVAL 60 DAY;
alter table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64 MATERIALIZED toUnixTimestamp(now()) after common_processing_time;
alter table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;
alter table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_insert_time Int64  after common_processing_time;

View File

@@ -0,0 +1,6 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.dos_event_local on cluster ck_cluster add column IF NOT EXISTS profile_id UInt64 after log_id;
ALTER table tsg_galaxy_v3.dos_event on cluster ck_cluster add column IF NOT EXISTS profile_id UInt64 after log_id;
ALTER table tsg_galaxy_v3.dos_event on cluster ck_query add column IF NOT EXISTS profile_id UInt64 after log_id;

View File

@@ -0,0 +1,11 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS intercept_error String after rdp_cookie,add column IF NOT EXISTS intercept_cert_verify Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_client_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_server_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_client_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_server_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_passthrough_reason String after rdp_cookie,add column IF NOT EXISTS intercept_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_pinning_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS ssl_cert_subject String after rdp_cookie,add column IF NOT EXISTS ssl_cert_issuer String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_con_latency_ms Int64 after rdp_cookie,add column IF NOT EXISTS ssl_cn String after rdp_cookie,add column IF NOT EXISTS ssl_san String after rdp_cookie,add column IF NOT EXISTS ssl_sni String after rdp_cookie,add column IF NOT EXISTS ssl_version String after rdp_cookie;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS intercept_error String after rdp_cookie,add column IF NOT EXISTS intercept_cert_verify Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_client_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_server_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_client_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_server_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_passthrough_reason String after rdp_cookie,add column IF NOT EXISTS intercept_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_pinning_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS ssl_cert_subject String after rdp_cookie,add column IF NOT EXISTS ssl_cert_issuer String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_con_latency_ms Int64 after rdp_cookie,add column IF NOT EXISTS ssl_cn String after rdp_cookie,add column IF NOT EXISTS ssl_san String after rdp_cookie,add column IF NOT EXISTS ssl_sni String after rdp_cookie,add column IF NOT EXISTS ssl_version String after rdp_cookie;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS intercept_error String after rdp_cookie,add column IF NOT EXISTS intercept_cert_verify Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_client_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_server_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_client_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_server_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_passthrough_reason String after rdp_cookie,add column IF NOT EXISTS intercept_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_pinning_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS ssl_cert_subject String after rdp_cookie,add column IF NOT EXISTS ssl_cert_issuer String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_con_latency_ms Int64 after rdp_cookie,add column IF NOT EXISTS ssl_cn String after rdp_cookie,add column IF NOT EXISTS ssl_san String after rdp_cookie,add column IF NOT EXISTS ssl_sni String after rdp_cookie,add column IF NOT EXISTS ssl_version String after rdp_cookie;
ALTER TABLE tsg_galaxy_v3.proxy_event_local on cluster ck_cluster DROP COLUMN IF EXISTS rdp_encryption_method, DROP COLUMN IF EXISTS rdp_encryption_level, DROP COLUMN IF EXISTS rdp_certificate_permanent, DROP COLUMN IF EXISTS rdp_certificate_count, DROP COLUMN IF EXISTS rdp_certificate_type, DROP COLUMN IF EXISTS rdp_requested_color_depth, DROP COLUMN IF EXISTS rdp_desktop_height, DROP COLUMN IF EXISTS rdp_desktop_width, DROP COLUMN IF EXISTS rdp_client_product_id, DROP COLUMN IF EXISTS rdp_client_name, DROP COLUMN IF EXISTS rdp_client_version, DROP COLUMN IF EXISTS rdp_keyboard_layout, DROP COLUMN IF EXISTS rdp_client_channels, DROP COLUMN IF EXISTS rdp_security_protocol, DROP COLUMN IF EXISTS rdp_cookie;
ALTER TABLE tsg_galaxy_v3.proxy_event on cluster ck_cluster DROP COLUMN IF EXISTS rdp_encryption_method, DROP COLUMN IF EXISTS rdp_encryption_level, DROP COLUMN IF EXISTS rdp_certificate_permanent, DROP COLUMN IF EXISTS rdp_certificate_count, DROP COLUMN IF EXISTS rdp_certificate_type, DROP COLUMN IF EXISTS rdp_requested_color_depth, DROP COLUMN IF EXISTS rdp_desktop_height, DROP COLUMN IF EXISTS rdp_desktop_width, DROP COLUMN IF EXISTS rdp_client_product_id, DROP COLUMN IF EXISTS rdp_client_name, DROP COLUMN IF EXISTS rdp_client_version, DROP COLUMN IF EXISTS rdp_keyboard_layout, DROP COLUMN IF EXISTS rdp_client_channels, DROP COLUMN IF EXISTS rdp_security_protocol, DROP COLUMN IF EXISTS rdp_cookie;
ALTER TABLE tsg_galaxy_v3.proxy_event on cluster ck_query DROP COLUMN IF EXISTS rdp_encryption_method, DROP COLUMN IF EXISTS rdp_encryption_level, DROP COLUMN IF EXISTS rdp_certificate_permanent, DROP COLUMN IF EXISTS rdp_certificate_count, DROP COLUMN IF EXISTS rdp_certificate_type, DROP COLUMN IF EXISTS rdp_requested_color_depth, DROP COLUMN IF EXISTS rdp_desktop_height, DROP COLUMN IF EXISTS rdp_desktop_width, DROP COLUMN IF EXISTS rdp_client_product_id, DROP COLUMN IF EXISTS rdp_client_name, DROP COLUMN IF EXISTS rdp_client_version, DROP COLUMN IF EXISTS rdp_keyboard_layout, DROP COLUMN IF EXISTS rdp_client_channels, DROP COLUMN IF EXISTS rdp_security_protocol, DROP COLUMN IF EXISTS rdp_cookie;

View File

@@ -0,0 +1,159 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS intercept_error String after rdp_cookie,add column IF NOT EXISTS intercept_cert_verify Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_client_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_server_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_client_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_server_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_passthrough_reason String after rdp_cookie,add column IF NOT EXISTS intercept_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_pinning_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS ssl_cert_subject String after rdp_cookie,add column IF NOT EXISTS ssl_cert_issuer String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_con_latency_ms Int64 after rdp_cookie,add column IF NOT EXISTS ssl_cn String after rdp_cookie,add column IF NOT EXISTS ssl_san String after rdp_cookie,add column IF NOT EXISTS ssl_sni String after rdp_cookie,add column IF NOT EXISTS ssl_version String after rdp_cookie;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS intercept_error String after rdp_cookie,add column IF NOT EXISTS intercept_cert_verify Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_client_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_server_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_client_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_server_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_passthrough_reason String after rdp_cookie,add column IF NOT EXISTS intercept_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_pinning_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS ssl_cert_subject String after rdp_cookie,add column IF NOT EXISTS ssl_cert_issuer String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_con_latency_ms Int64 after rdp_cookie,add column IF NOT EXISTS ssl_cn String after rdp_cookie,add column IF NOT EXISTS ssl_san String after rdp_cookie,add column IF NOT EXISTS ssl_sni String after rdp_cookie,add column IF NOT EXISTS ssl_version String after rdp_cookie;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS intercept_error String after rdp_cookie,add column IF NOT EXISTS intercept_cert_verify Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_client_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_server_side_version String after rdp_cookie,add column IF NOT EXISTS intercept_client_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_server_side_latency Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_passthrough_reason String after rdp_cookie,add column IF NOT EXISTS intercept_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS intercept_pinning_status Nullable(Int64) after rdp_cookie,add column IF NOT EXISTS ssl_cert_subject String after rdp_cookie,add column IF NOT EXISTS ssl_cert_issuer String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3s_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_hash String after rdp_cookie,add column IF NOT EXISTS ssl_ja3_fingerprint String after rdp_cookie,add column IF NOT EXISTS ssl_con_latency_ms Int64 after rdp_cookie,add column IF NOT EXISTS ssl_cn String after rdp_cookie,add column IF NOT EXISTS ssl_san String after rdp_cookie,add column IF NOT EXISTS ssl_sni String after rdp_cookie,add column IF NOT EXISTS ssl_version String after rdp_cookie;
ALTER TABLE tsg_galaxy_v3.proxy_event_local on cluster ck_cluster DROP COLUMN IF EXISTS rdp_encryption_method, DROP COLUMN IF EXISTS rdp_encryption_level, DROP COLUMN IF EXISTS rdp_certificate_permanent, DROP COLUMN IF EXISTS rdp_certificate_count, DROP COLUMN IF EXISTS rdp_certificate_type, DROP COLUMN IF EXISTS rdp_requested_color_depth, DROP COLUMN IF EXISTS rdp_desktop_height, DROP COLUMN IF EXISTS rdp_desktop_width, DROP COLUMN IF EXISTS rdp_client_product_id, DROP COLUMN IF EXISTS rdp_client_name, DROP COLUMN IF EXISTS rdp_client_version, DROP COLUMN IF EXISTS rdp_keyboard_layout, DROP COLUMN IF EXISTS rdp_client_channels, DROP COLUMN IF EXISTS rdp_security_protocol, DROP COLUMN IF EXISTS rdp_cookie;
ALTER TABLE tsg_galaxy_v3.proxy_event on cluster ck_cluster DROP COLUMN IF EXISTS rdp_encryption_method, DROP COLUMN IF EXISTS rdp_encryption_level, DROP COLUMN IF EXISTS rdp_certificate_permanent, DROP COLUMN IF EXISTS rdp_certificate_count, DROP COLUMN IF EXISTS rdp_certificate_type, DROP COLUMN IF EXISTS rdp_requested_color_depth, DROP COLUMN IF EXISTS rdp_desktop_height, DROP COLUMN IF EXISTS rdp_desktop_width, DROP COLUMN IF EXISTS rdp_client_product_id, DROP COLUMN IF EXISTS rdp_client_name, DROP COLUMN IF EXISTS rdp_client_version, DROP COLUMN IF EXISTS rdp_keyboard_layout, DROP COLUMN IF EXISTS rdp_client_channels, DROP COLUMN IF EXISTS rdp_security_protocol, DROP COLUMN IF EXISTS rdp_cookie;
ALTER TABLE tsg_galaxy_v3.proxy_event on cluster ck_query DROP COLUMN IF EXISTS rdp_encryption_method, DROP COLUMN IF EXISTS rdp_encryption_level, DROP COLUMN IF EXISTS rdp_certificate_permanent, DROP COLUMN IF EXISTS rdp_certificate_count, DROP COLUMN IF EXISTS rdp_certificate_type, DROP COLUMN IF EXISTS rdp_requested_color_depth, DROP COLUMN IF EXISTS rdp_desktop_height, DROP COLUMN IF EXISTS rdp_desktop_width, DROP COLUMN IF EXISTS rdp_client_product_id, DROP COLUMN IF EXISTS rdp_client_name, DROP COLUMN IF EXISTS rdp_client_version, DROP COLUMN IF EXISTS rdp_keyboard_layout, DROP COLUMN IF EXISTS rdp_client_channels, DROP COLUMN IF EXISTS rdp_security_protocol, DROP COLUMN IF EXISTS rdp_cookie;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_out_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_in_dest_mac String after common_server_domain;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_out_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_in_src_mac String after common_phone_number;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_in_src_mac String after common_phone_number;

View File

@@ -0,0 +1,97 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query drop column IF EXISTS voip_calling_account, drop column IF EXISTS voip_called_account, drop column IF EXISTS voip_calling_number, drop column IF EXISTS voip_called_number, drop column IF EXISTS streaming_media_url, drop column IF EXISTS streaming_media_protocol, drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query drop column IF EXISTS http_request_body_key, drop column IF EXISTS http_response_body_key, drop column IF EXISTS http_content_length, drop column IF EXISTS http_content_type;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;

View File

@@ -0,0 +1,158 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.active_defence_event_local on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.active_defence_event on cluster ck_cluster rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.active_defence_event on cluster ck_query rename column IF EXISTS common_egress_link_id TO common_out_link_id;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.active_defence_event_local on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.active_defence_event on cluster ck_cluster rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.active_defence_event on cluster ck_query rename column IF EXISTS common_ingress_link_id TO common_in_link_id;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;

View File

@@ -0,0 +1,131 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS http_status_code Int64 after http_version;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS ssl_ech_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS ssl_esni_flag Int64 after ssl_cert_subject;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_start_timestamp_ms Datetime64(3) after common_end_time;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_end_timestamp_ms Datetime64(3) after common_start_timestamp_ms;

View File

@@ -0,0 +1,76 @@
set distributed_ddl_task_timeout = 180;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_client_os_name String after common_client_port;
ALTER table tsg_galaxy_v3.session_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.session_record on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.session_record on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.interim_session_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.interim_session_record on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.security_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.security_event on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.security_event on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.proxy_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.proxy_event on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.transaction_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.transaction_record on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.radius_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.radius_record on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.gtpc_record on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.voip_record_local on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_cluster add column IF NOT EXISTS common_server_os_name String after common_server_port;
ALTER table tsg_galaxy_v3.voip_record on cluster ck_query add column IF NOT EXISTS common_server_os_name String after common_server_port;

View File

@@ -0,0 +1,24 @@
- name: Setting clickhouse init directory
set_fact:
init_path: '{{ deploy_dir }}/clickhouse/init/'
- name: Creatting clickhouse init directory
file:
path: '{{ init_path }}'
state: directory
- name: Copying Clickhouse create tables sql
copy:
src: 'files/{{ item }}'
dest: '{{ init_path }}/{{ item }}'
force: true
with_items:
- create_ck_table.sql
- system.sql
- name: Creating tables
shell: clickhouse-client -h {{ inventory_hostname }} --port 9001 -m -u default --password {{ clickhouse_default_pin }} --multiquery < {{ init_path }}/{{ item }}
loop:
- create_ck_table.sql
- system.sql
run_once: true

View File

@@ -0,0 +1,5 @@
- include: init.yml
when: inventory_hostname in groups['clickhouse'][:2] and operation == "install"
- include: upgrate.yml
when: inventory_hostname in groups['clickhouse'][:2] and operation == "upgrade"

View File

@@ -0,0 +1,25 @@
- name: Setting clickhouse upgrade directory
set_fact:
upgrade_path: '{{ deploy_dir }}/clickhouse/upgrade/'
- name: Creatting clickhouse upgrade directory
file:
path: '{{ upgrade_path }}'
state: directory
- name: Copying clickhouse upgrade tables sql
copy:
src: 'files/upgrade-sql'
dest: '{{ upgrade_path }}/'
force: true
- name: Copying clickhouse upgrade script
template:
src: 'upgrade-clickhouse-data.sh.j2'
dest: '{{ upgrade_path }}/upgrade-clickhouse-data.sh'
mode: 0075
force: true
- name: Upgrade clickhouse data
shell: cd {{ upgrade_path }} && sh upgrade-clickhouse-data.sh
run_once: true

View File

@@ -0,0 +1,50 @@
#!/bin/bash
source /etc/profile
set -e
# 数据库连接参数
upgrade_dir=${1:-$(pwd)/upgrade-sql}
# 指定当前版本和历史版本
current_version="{{ solution_version }}"
old_version="{{ old_version }}"
# 数据库连接参数
db_hostname="127.0.0.1"
db_username="default"
db_password="galaxy2019"
suffix=".sql"
# 获取更新目录中的所有SQL文件
sql_files=$(find "${upgrade_dir}" -name "*$suffix")
# 标记是否开始执行历史版本的标识
start_execution=false
# 循环处理每个SQL文件
for file in ${sql_files}; do
# 从文件名中提取版本号
filename=$(basename "$file")
version=$(echo "$filename" | grep -oE '[0-9]+(\.[0-9]+)?' | tr -d '.')
current_version="${current_version//./}"
old_version="${old_version//./}"
# 检查是否达到历史版本
if [[ "${version}" -gt "${old_version}" ]]; then
start_execution=true
fi
# 检查是否开始执行历史版本之后的SQL文件
if [[ ${start_execution} = true ]]; then
echo "Executing SQL file: ${file}"
# 执行SQL文件
clickhouse-client -h 127.0.0.1 --port 9001 -m -u "${db_username}" --password "${db_password}" --multiquery <"${file}"
echo "Upgrade ${version} successfully"
fi
# 检查是否达到当前版本
if [[ "${version}" -ge "${current_version}" ]]; then
break
fi
done

View File

@@ -0,0 +1,25 @@
- name: Check if backup directory exists
stat:
path: "{{ backup_path }}"
register: exist_status
- name: Backup directories
block:
- name: Creat backup directory
file:
state: directory
path: "{{ backup_path }}"
- name: Copying directories to backup
copy:
src: "{{ deploy_dir }}/{{ container_name }}/{{ item }}"
dest: "{{ backup_path }}"
remote_src: true
loop: "{{ backup_items }}"
rescue:
- name: Remove backup directory on failure
file:
path: "{{ backup_path }}"
state: absent
when: exist_status.stat.exists == false

View File

@@ -0,0 +1,23 @@
- name: Get druid running tasks
shell: curl -s http://{{ vrrp_instance.default.virtual_ipaddress }}:8089/druid/indexer/v1/supervisor?state=true | jq -r '.[] | select(.state == "RUNNING") | .id'
register: run_task_list
run_once: true
- name: Get init task template
find:
paths: "templates/tasks/"
file_type: file
patterns: "*.json"
register: find_result
delegate_to: 127.0.0.1
run_once: true
- name: Set init task list
set_fact:
init_task_list: "{{ find_result.files | map(attribute='path') | map('basename') | map('regex_replace', '^index_kafka_(.*)\\.json$', '\\1') | list }}"
- name: Verify that the number of running tasks is correct
fail:
msg: "The number of running druid tasks is less than the normal number!"
when: run_task_list.stdout_lines | intersect(init_task_list) |length != (init_task_list|length)
run_once: true

View File

@@ -0,0 +1,115 @@
- name: Setting init directory
set_fact:
init_path: '{{ deploy_dir }}/druid/init/'
topology_path: '{{ deploy_dir }}/druid/topology/'
- name: Remove files and directories
file:
path: "{{ init_path }}"
state: absent
ignore_errors: true
loop:
- "{{ init_path }}"
- "{{ topology_path }}"
- name: Creatting init directory
file:
path: '{{ item }}'
state: directory
loop:
- "{{ init_path }}"
- "{{ topology_path }}"
- "{{ topology_path }}/tasks"
- name: Setting hdfs_ip variable
set_fact:
hdfs_ip: "{{groups.hdfs[0]}}"
- name: Unzipping segments.zip
unarchive:
src: 'files/cluster/segments.zip'
dest: '{{ deploy_dir }}/'
force: true
run_once: true
delegate_to: '{{ hdfs_ip }}'
- name: Copying push segments to hdfs installation path
copy:
src: 'files/cluster/push_segments.sh'
dest: '{{ deploy_dir }}/push_segments.sh'
force: true
mode: 0755
run_once: true
delegate_to: '{{ hdfs_ip }}'
- name: Creating druid directory and putting segments to hdfs
shell: source /etc/profile && hadoop fs -mkdir -p /druid/segments
register: nums_out
run_once: true
delegate_to: '{{ hdfs_ip }}'
ignore_errors: yes
- name: Putting segments to hdfs
shell: source /etc/profile && cd {{ deploy_dir }}/ && sh push_segments.sh
register: nums_out
run_once: true
delegate_to: '{{ hdfs_ip }}'
- name: Copying mysql Client to /usr/bin/
copy:
src: 'files/mysql'
dest: '/usr/bin/'
mode: 0755
force: true
- name: Copying init files to {{ init_path }}
copy:
src: 'files/cluster/'
dest: '{{ deploy_dir }}/druid/init'
force: true
- name: Copying tasks template to {{ topology_path }}
template:
src: "{{ item }}"
dest: "{{ deploy_dir }}/druid/topology/tasks/{{ item | basename | regex_replace('.j2$', '') }}"
mode: "0644"
force: true
with_fileglob: "templates/tasks/*"
- name: Inserting segments to mariadb
shell: 'mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ vrrp_instance.default.virtual_ipaddress }} druid < {{ init_path }}/druid_segments-tsg.sql'
run_once: true
- name: Copying script files
template:
src: '{{ item }}.j2'
dest: '{{ topology_path }}/{{ item }}'
mode: 0755
with_items:
- 'druid_monitor.sh'
- 'supervisor-manager.sh'
- name: Copying monitor template
template:
src: 'run_druid_monitor.j2'
dest: '/etc/cron.d/run_druid_monitor'
mode: 0644
- name: Submitting druid tasks
shell: cd {{ topology_path }} && sh supervisor-manager.sh startall
run_once: true
- name: Deleting {{ deploy_dir }}/push_segments.sh
file:
path: "{{ deploy_dir }}/push_segments.sh"
state: absent
run_once: true
delegate_to: '{{ hdfs_ip }}'
- name: Deleting {{ deploy_dir }}/segments.zip
file:
path: "{{ deploy_dir }}/segments.zip"
state: absent
run_once: true
delegate_to: '{{ hdfs_ip }}'

View File

@@ -0,0 +1,65 @@
- name: Setting init directory
set_fact:
init_path: '{{ deploy_dir }}/druid/init/'
topology_path: '{{ deploy_dir }}/druid/topology/'
- name: Creatting init directory
file:
path: '{{ item }}'
state: directory
loop:
- '{{ init_path }}'
- '{{ topology_path }}'
- '{{ topology_path }}/tasks'
- '{{ deploy_dir }}/druid/var/druid'
- name: Unzipping segments.zip
unarchive:
src: 'files/standalone/segments.zip'
dest: '{{ deploy_dir }}/druid/var/druid/'
force: true
- name: Copying mysql Client to /usr/bin/
copy:
src: 'files/mysql'
dest: '/usr/bin/'
mode: 0755
force: true
- name: Copying init files to {{ init_path }}
copy:
src: 'files/standalone'
dest: '{{ init_path }}/'
force: true
- name: Copying tasks template to {{ topology_path }}
template:
src: "{{ item }}"
dest: "{{ deploy_dir }}/druid/topology/tasks/{{ item | basename | regex_replace('.j2$', '') }}"
mode: "0644"
force: true
with_fileglob: "templates/tasks/*"
- name: Inserting segments to mariadb
shell: 'mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ vrrp_instance.default.virtual_ipaddress }} druid < {{ init_path }}/standalone/druid_segments-tsg.sql'
run_once: true
- name: Copying script files
template:
src: '{{ item }}.j2'
dest: '{{ topology_path }}/{{ item }}'
mode: 0755
with_items:
- "druid_monitor.sh"
- "supervisor-manager.sh"
- name: Copying monitor template
template:
src: 'run_druid_monitor.j2'
dest: '/etc/cron.d/run_druid_monitor'
mode: 0644
- name: Submitting druid tasks
shell: cd {{ topology_path }} && sh supervisor-manager.sh startall
run_once: true

View File

@@ -0,0 +1,21 @@
- block:
- include: uninstall.yml
- include: "{{ playbook_name }}"
vars:
playbook_name: "{{ 'init-cluster.yml' if groups.druid | length > 1 else 'init-standalone.yml' }}"
- include: check.yml
when: inventory_hostname in groups['druid'][:2] and operation == 'install'
- block:
- include: backup.yml
- include: uninstall.yml
- include: "{{ playbook_name }}"
vars:
playbook_name: "{{ 'init-cluster.yml' if groups.druid | length > 1 else 'init-standalone.yml' }}"
- include: check.yml
when: inventory_hostname in groups['druid'][:2] and (operation) == "upgrade"
- block:
- include: uninstall.yml
when: inventory_hostname in groups['druid'][:2] and (operation) == "uninstall"

View File

@@ -0,0 +1,30 @@
- name: Check {{ deploy_dir }}/druid/topology
stat:
path: "{{ deploy_dir }}/druid/topology"
register: directory_stat
- block:
- name: Copying supervisor-manager.sh template
template:
src: 'supervisor-manager.sh.j2'
dest: '{{ deploy_dir }}/druid/topology/supervisor-manager.sh'
mode: 0755
- name: Stop all tasks
shell: cd {{ deploy_dir }}/druid/topology && sh supervisor-manager.sh terminateall
run_once: true
- name: Get tasks status
shell: curl -s http://{{ vrrp_instance.default.virtual_ipaddress }}:8089/druid/indexer/v1/supervisor?state=true | jq 'map(select(.state = "RUNNING" ))' | jq 'length'
register: tasks_count
- name: Check tasks status
debug:
msg: "{{ tasks_count.stdout }} tasks are not stopped"
failed_when: tasks_count.stdout > '0'
- name: Delete {{ deploy_dir }}/druid/topology
file:
path: "{{ deploy_dir }}/druid/topology"
state: absent
when: directory_stat.stat.exists

View File

@@ -0,0 +1,58 @@
#!/bin/bash
druid_ip={{ vrrp_instance.default.virtual_ipaddress }}
druid_port=8089
druid_monitor_prom_file={{ deploy_dir }}/node-exporter/prom/druid_monitor.prom
task_name=`cat tasklist`
#获取supervisor状态信息
function getSupervisorStatus(){
druid_supervisor_healthy_num=`curl -G -d 'state=true' -s $druid_ip:$druid_port/druid/indexer/v1/supervisor | jq '[ .[] | .state] | length'`
echo druid_supervisor_healthy_num $druid_supervisor_healthy_num >> $druid_monitor_prom_file
druid_supervisor_unhealthy_num=`curl -G -d 'state=true' -s $druid_ip:$druid_port/druid/indexer/v1/supervisor | jq '[ .[] | select(.state != "RUNNING")] | length'`
echo druid_supervisor_unhealthy_num $druid_supervisor_unhealthy_num >> $druid_monitor_prom_file
}
#获取Druid 任务状态信息
function getTaskStatus(){
druid_index_running_task_num=`curl -G -d 'type=index_kafka' -s $druid_ip:$druid_port/druid/indexer/v1/runningTasks | jq '. | length'`
echo druid_index_running_task_num $druid_index_running_task_num > $druid_monitor_prom_file
druid_index_waiting_task_num=`curl -G -d 'type=index_kafka' -s $druid_ip:$druid_port/druid/indexer/v1/waitingTasks | jq '. | length'`
echo druid_index_waiting_task_num $druid_index_waiting_task_num >> $druid_monitor_prom_file
druid_index_pending_task_num=`curl -G -d 'type=index_kafka' -s $druid_ip:$druid_port/druid/indexer/v1/pendingTasks | jq '. | length'`
echo druid_index_pending_task_num $druid_index_pending_task_num >> $druid_monitor_prom_file
druid_compact_pending_task_num=`curl -G -d 'type=compact' -s $druid_ip:$druid_port/druid/indexer/v1/pendingTasks | jq '. | length'`
echo druid_compact_pending_task_num $druid_compact_pending_task_num >> $druid_monitor_prom_file
druid_compact_waiting_task_num=`curl -G -d 'type=compact' -s $druid_ip:$druid_port/druid/indexer/v1/waitingTasks | jq '. | length'`
echo druid_compact_waiting_task_num $druid_compact_waiting_task_num >> $druid_monitor_prom_file
}
#校验正在运行的index数量与启动时指定的index数量对比。
#>=指定数值判断为正常 返回0
#反之异常 返回1
function checkIndexStatus(){
druid_task_sum=0
for var in ${task_name[@]};
do
druid_task_num=`cat tasks/${var} | jq .ioConfig.taskCount`
druid_task_sum=`expr $druid_task_num + $druid_task_sum`
done
druid_index_task_healthy_flag=0
if [ $druid_index_running_task_num -lt $druid_task_sum ]
then
druid_index_task_healthy_flag=1
fi
echo druid_index_task_healthy_flag $druid_index_task_healthy_flag >> $druid_monitor_prom_file
}
getTaskStatus
getSupervisorStatus
checkIndexStatus

View File

@@ -0,0 +1,28 @@
#!/bin/bash
base_dir=`dirname $0`
echo $base_dir
#router节点IP
router_ip={{ groups.druid[0] }}
common_task_name=`cat $base_dir/common_task.txt`
common_rule_file="$base_dir/common_data_rule.json"
hot_task_name=`cat $base_dir/hot_task.txt`
hot_rule_file="$base_dir/hot_data_rule.json"
for var in ${common_task_name[@]};
do
curl --retry-delay 3 --retry 3 -X 'POST' -H 'Content-Type:application/json' -d @$common_rule_file http://${router_ip}:8088/druid/coordinator/v1/rules/${var}
echo "'${var}' 任务启动成功"
sleep 2
done
for var in ${hot_task_name[@]};
do
curl --retry-delay 3 --retry 3 -X 'POST' -H 'Content-Type:application/json' -d @$hot_rule_file http://${router_ip}:8088/druid/coordinator/v1/rules/${var}
echo "'${var}' 任务启动成功"
sleep 2
done

View File

@@ -0,0 +1,75 @@
#!/bin/bash
base_dir=`dirname $0`
base_dir="$(cd "$base_dir" && pwd)"
router_ip='{{ vrrp_instance.default.virtual_ipaddress }}'
common_task_name=`cat $base_dir/tasklist`
common_rule_file="$base_dir/common_data_rule.json"
hot_task_name=`cat $base_dir/hot_task.txt`
hot_rule_file="$base_dir/hot_data_rule.json"
case $1 in
resetAll)
for var in ${common_task_name[@]};
do
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/supervisor/${var}/reset
sleep 2
done
for var in ${hot_task_name[@]};
do
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/supervisor/${var}/reset
sleep 2
done
;;
terminateAll)
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/supervisor/terminateAll
;;
shutdownAllTasks)
for var in ${common_task_name[@]};
do
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/datasources/${var}/shutdownAllTasks
sleep 2
done
for var in ${hot_task_name[@]};
do
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/datasources/${var}/shutdownAllTasks
sleep 2
done
;;
reset)
if [ $# -le 1 ]; then
echo "Usage: supervisor-manger reset <dataSource>"
exit 1
fi
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/supervisor/$2/reset
;;
terminate)
if [ $# -le 1 ]; then
echo "Usage: supervisor-manger terminate <dataSource>"
exit 1
fi
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/supervisor/$2/terminate
;;
shutdownTasks)
if [ $# -le 1 ]; then
echo "Usage: supervisor-manger shutdownTasks <dataSource>"
exit 1
fi
curl --retry-delay 3 --retry 3 -X 'POST' http://${router_ip}:8089/druid/indexer/v1/datasources/$2/shutdownAllTasks
;;
*)
echo "Usage: supervisor-manger {resetAll|terminateAll|shutdownAllTasks}"
echo "Usage: supervisor-manger {reset|terminate|shutdownTasks} <dataSource>"
;;
esac

View File

@@ -0,0 +1,3 @@
#Ansible: Check druid up to node_exporter
*/10 * * * * root cd {{ topology_path }} && sh druid_monitor.sh

View File

@@ -0,0 +1,124 @@
#!/bin/bash
source /etc/profile
DRUID_HOST='{{ vrrp_instance.default.virtual_ipaddress }}'
KAFKA_HOST="{% for host in groups['kafka'] %}
{{ host }}:9094{% if not loop.last %},{% endif %}
{% endfor %}"
# 参数1.操作 2.任务文件
OPERATION=$1
TASK_LIST=(
index_kafka_application_protocol_stat.json
index_kafka_monitor_rule_hits.json
index_kafka_object_statistics.json
index_kafka_proxy_rule_hits.json
index_kafka_security_rule_hits.json
index_kafka_service_chaining_rule_hits.json
index_kafka_service_function_status.json
index_kafka_statistics_rule_hits.json
index_kafka_statistics_rule.json
index_kafka_sys_storage_log.json
index_kafka_top_client_ips.json
index_kafka_top_external_ips.json
index_kafka_top_internal_ips.json
index_kafka_top_server_domains.json
index_kafka_top_server_fqdns.json
index_kafka_top_server_ips.json
index_kafka_top_subscribers.json
index_kafka_traffic_general_stat.json
index_kafka_traffic_shaping_rule_hits.json
index_kafka_traffic_top_destination_ip_metrics_log.json
)
if [ $# -lt 1 ]; then
echo "Usage: ./supervisor-manager.sh [startall|resetall|terminateall|shutdownall]"
echo "Usage: ./supervisor-manager.sh [start|reset|terminate|shutdown] <dataSource>"
exit 1
fi
function start_task() {
local task_name=$1
cp ./tasks/${task_name} ./
sed -i 's/kafkabootstrap/'$KAFKA_HOST'/' ${task_name}
curl --retry-delay 3 --retry 3 -X 'POST' -H 'Content-Type:application/json' -d @${task_name} http://$DRUID_HOST:8089/druid/indexer/v1/supervisor
if [ $? -eq "0" ]; then
echo "task:'${task_name}' Start-up success! "
rm -rf ./${task_name}
else
echo "task:'${task_name}' Start-up failure! "
exit 1
fi
}
function reset_task() {
local task_name=$1
task_name="${task_name/index_kafka_/}"
task_name="${task_name/.json/}"
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/supervisor/${task_name}/reset"
sleep 2
}
function terminate_task() {
local task_name=$1
task_name="${task_name/index_kafka_/}"
task_name="${task_name/.json/}"
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/supervisor/${task_name}/terminate"
}
function terminate_all() {
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/supervisor/terminateAll"
}
function shutdown_tasks() {
local task_name=$1
task_name="${task_name/index_kafka_/}"
task_name="${task_name/.json/}"
local task_name=$1
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/datasources/${task_name}/shutdownAllTasks"
sleep 2
}
case $OPERATION in
start)
start_task "$2"
;;
startall)
for task in ${TASK_LIST[@]}; do
start_task "$task"
done
;;
reset)
reset_task "$2"
;;
resetall)
for task in ${TASK_LIST[@]}; do
reset_task "$task"
done
;;
terminate)
terminate_task "$2"
;;
terminateall)
terminate_all
;;
shutdown)
shutdown_tasks "$2"
;;
shutdownall)
for task in ${TASK_LIST[@]}; do
shutdown_tasks "$task"
done
;;
*)
echo "Usage: ./supervisor-manager.sh [startall|resetall|terminateall|shutdownall]"
echo "Usage: ./supervisor-manager.sh [start|reset|terminate|shutdown] <dataSource>"
;;
esac

View File

@@ -0,0 +1,103 @@
#!/bin/bash
source /etc/profile
DRUID_HOST='{{ vrrp_instance.default.virtual_ipaddress }}'
KAFKA_HOST="{% for host in groups['kafka'] %}
{{ host }}:9094{% if not loop.last %},{% endif %}
{% endfor %}"
# 参数1.操作 2.任务文件或目录
OPERATION=$1
filename=$(basename "$file")
TASK_FILE_LIST=$(find "./tasks" -name "*.json")
if [ $# -lt 1 ]; then
echo "Usage: ./supervisor-manager.sh [startall|resetall|terminateall|shutdownall]"
echo "Usage: ./supervisor-manager.sh [start|reset|terminate|shutdown] <./tasks/[task file]>"
exit 1
fi
function start_task() {
local task_file=$1
local task_name=$(basename $task_file)
cp ${task_file} ./
sed -i 's/kafkabootstrap/'$KAFKA_HOST'/' ${task_name}
curl --retry-delay 3 --retry 3 -X 'POST' -H 'Content-Type:application/json' -d @${task_name} http://$DRUID_HOST:8089/druid/indexer/v1/supervisor
if [ $? -eq "0" ]; then
echo "task:'${task_name}' Start-up success! "
rm -rf ./${task_name}
else
echo "task:'${task_name}' Start-up failure! "
exit 1
fi
}
function reset_task() {
local task_name=$(basename $1)
task_name="${task_name/index_kafka_/}"
task_name="${task_name/.json/}"
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/supervisor/${task_name}/reset"
sleep 2
}
function terminate_task() {
local task_name=$(basename $1)
task_name="${task_name/index_kafka_/}"
task_name="${task_name/.json/}"
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/supervisor/${task_name}/terminate"
}
function terminate_all() {
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/supervisor/terminateAll"
}
function shutdown_tasks() {
local task_name=$(basename $1)
task_name="${task_name/index_kafka_/}"
task_name="${task_name/.json/}"
curl --retry-delay 3 --retry 3 -X 'POST' "http://${DRUID_HOST}:8089/druid/indexer/v1/datasources/${task_name}/shutdownAllTasks"
sleep 2
}
case $OPERATION in
start)
start_task "$2"
;;
startall)
for task in ${TASK_FILE_LIST[@]}; do
start_task "$task"
done
;;
reset)
reset_task "$2"
;;
resetall)
for task in ${TASK_FILE_LIST[@]}; do
reset_task "$task"
done
;;
terminate)
terminate_task "$2"
;;
terminateall)
terminate_all
;;
shutdown)
shutdown_tasks "$2"
;;
shutdownall)
for task in ${TASK_FILE_LIST[@]}; do
shutdown_tasks "$task"
done
;;
*)
echo "Usage: ./supervisor-manager.sh [startall|resetall|terminateall|shutdownall]"
echo "Usage: ./supervisor-manager.sh [start|reset|terminate|shutdown] <./tasks/[task file]>"
;;
esac

View File

@@ -0,0 +1,131 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "application_protocol_stat",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
"protocol_stack_id",
"app_name",
{"name": "vsys_id", "type": "long"}
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{"name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id"},
{"name": "data_center", "type": "path", "expr": "$.tags.data_center"},
{"name": "device_group", "type": "path", "expr": "$.tags.device_group"},
{"name": "device_id", "type": "path", "expr": "$.tags.device_id"},
{"name": "protocol_stack_id", "type": "path", "expr": "$.tags.protocol_stack_id"},
{"name": "app_name", "type": "path", "expr": "$.tags.app_name"},
{"name": "sessions", "type": "path", "expr": "$.fields.sessions"},
{"name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes"},
{"name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes"},
{"name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts"},
{"name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts"},
{"name": "c2s_pkts", "type": "path", "expr": "$.fields.c2s_pkts"},
{"name": "s2c_pkts", "type": "path", "expr": "$.fields.s2c_pkts"},
{"name": "c2s_bytes", "type": "path", "expr": "$.fields.c2s_bytes"},
{"name": "s2c_bytes", "type": "path", "expr": "$.fields.s2c_bytes"},
{"name": "c2s_fragments", "type": "path", "expr": "$.fields.c2s_fragments"},
{"name": "s2c_fragments", "type": "path", "expr": "$.fields.s2c_fragments"},
{"name": "c2s_tcp_lost_bytes", "type": "path", "expr": "$.fields.c2s_tcp_lost_bytes"},
{"name": "s2c_tcp_lost_bytes", "type": "path", "expr": "$.fields.s2c_tcp_lost_bytes"},
{"name": "c2s_tcp_ooorder_pkts", "type": "path", "expr": "$.fields.c2s_tcp_ooorder_pkts"},
{"name": "s2c_tcp_ooorder_pkts", "type": "path", "expr": "$.fields.s2c_tcp_ooorder_pkts"},
{"name": "c2s_tcp_retransmitted_pkts", "type": "path", "expr": "$.fields.c2s_tcp_retransmitted_pkts"},
{"name": "s2c_tcp_retransmitted_pkts", "type": "path", "expr": "$.fields.s2c_tcp_retransmitted_pkts"},
{"name": "c2s_tcp_retransmitted_bytes", "type": "path", "expr": "$.fields.c2s_tcp_retransmitted_bytes"},
{"name": "s2c_tcp_retransmitted_bytes", "type": "path", "expr": "$.fields.s2c_tcp_retransmitted_bytes"}
]
}
}
},
"metricsSpec": [
{"type": "longSum", "name": "sessions", "fieldName": "sessions"},
{"type": "longSum", "name": "c2s_pkts", "fieldName": "c2s_pkts"},
{"type": "longSum", "name": "s2c_pkts", "fieldName": "s2c_pkts"},
{"type": "longSum", "name": "c2s_bytes", "fieldName": "c2s_bytes"},
{"type": "longSum", "name": "s2c_bytes", "fieldName": "s2c_bytes"},
{"type": "longSum", "name": "c2s_fragments", "fieldName": "c2s_fragments"},
{"type": "longSum", "name": "s2c_fragments", "fieldName": "s2c_fragments"},
{"type": "longSum", "name": "c2s_tcp_lost_bytes", "fieldName": "c2s_tcp_lost_bytes"},
{"type": "longSum", "name": "s2c_tcp_lost_bytes", "fieldName": "s2c_tcp_lost_bytes"},
{"type": "longSum", "name": "c2s_tcp_ooorder_pkts", "fieldName": "c2s_tcp_ooorder_pkts"},
{"type": "longSum", "name": "s2c_tcp_ooorder_pkts", "fieldName": "s2c_tcp_ooorder_pkts"},
{"type": "longSum", "name": "c2s_tcp_retransmitted_pkts", "fieldName": "c2s_tcp_retransmitted_pkts"},
{"type": "longSum", "name": "s2c_tcp_retransmitted_pkts", "fieldName": "s2c_tcp_retransmitted_pkts"},
{"type": "longSum", "name": "c2s_tcp_retransmitted_bytes", "fieldName": "c2s_tcp_retransmitted_bytes"},
{"type": "longSum", "name": "s2c_tcp_retransmitted_bytes", "fieldName": "s2c_tcp_retransmitted_bytes"},
{"type": "longSum", "name": "in_bytes", "fieldName": "in_bytes"},
{"type": "longSum", "name": "out_bytes", "fieldName": "out_bytes"},
{"type": "longSum", "name": "in_pkts", "fieldName": "in_pkts"},
{"type": "longSum", "name": "out_pkts", "fieldName": "out_pkts"}
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT15S"},
"rollup": true
},
"transformSpec": {
"transforms": [
{"type": "expression", "name": "vsys_id", "expression": "nvl(vsys_id,1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "c2s_pkts", "expression": "nvl(c2s_pkts, 0)"},
{"type": "expression", "name": "s2c_pkts", "expression": "nvl(s2c_pkts, 0)"},
{"type": "expression", "name": "c2s_bytes", "expression": "nvl(c2s_bytes, 0)"},
{"type": "expression", "name": "s2c_bytes", "expression": "nvl(s2c_bytes, 0)"},
{"type": "expression", "name": "c2s_fragments", "expression": "nvl(c2s_fragments, 0)"},
{"type": "expression", "name": "s2c_fragments", "expression": "nvl(s2c_fragments, 0)"},
{"type": "expression", "name": "c2s_tcp_lost_bytes", "expression": "nvl(c2s_tcp_lost_bytes, 0)"},
{"type": "expression", "name": "s2c_tcp_lost_bytes", "expression": "nvl(s2c_tcp_lost_bytes, 0)"},
{"type": "expression", "name": "c2s_tcp_ooorder_pkts", "expression": "nvl(c2s_tcp_ooorder_pkts, 0)"},
{"type": "expression", "name": "s2c_tcp_ooorder_pkts", "expression": "nvl(s2c_tcp_ooorder_pkts, 0)"},
{"type": "expression", "name": "c2s_tcp_retransmitted_pkts", "expression": "nvl(c2s_tcp_retransmitted_pkts, 0)"},
{"type": "expression", "name": "s2c_tcp_retransmitted_pkts", "expression": "nvl(s2c_tcp_retransmitted_pkts, 0)"},
{"type": "expression", "name": "c2s_tcp_retransmitted_bytes", "expression": "nvl(c2s_tcp_retransmitted_bytes, 0)"},
{"type": "expression", "name": "s2c_tcp_retransmitted_bytes", "expression": "nvl(s2c_tcp_retransmitted_bytes, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter": {
"type": "selector",
"dimension": "name",
"value": "application_protocol_stat"
}
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "NETWORK-TRAFFIC-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,83 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "monitor_rule_hits",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
{"name": "rule_id","type": "long"},
{"name": "action","type": "long"}
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "hit_count", "type": "path", "expr": "$.fields.hit_count" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "rule_id", "type": "path", "expr": "$.tags.rule_id" },
{ "name": "action", "type": "path", "expr": "$.tags.action" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "hit_count", "fieldName" : "hit_count" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "hit_count", "expression": "nvl(hit_count, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "monitor_rule_hits" }
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,95 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "object_statistics",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
{"name": "template_id","type": "long"},
{"name": "chart_id","type": "long"},
{"name": "version","type": "long"},
"object_type",
{"name": "object_id","type": "long"},
{"name": "item_id","type": "long"}
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "bytes", "type": "path", "expr": "$.fields.bytes" },
{ "name": "new_in_sessions", "type": "path", "expr": "$.fields.new_in_sessions" },
{ "name": "new_out_sessions", "type": "path", "expr": "$.fields.new_out_sessions" },
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "template_id", "type": "path", "expr": "$.tags.template_id" },
{ "name": "chart_id", "type": "path", "expr": "$.tags.chart_id" },
{ "name": "version", "type": "path", "expr": "$.tags.version" },
{ "name": "object_type", "type": "path", "expr": "$.tags.object_type" },
{ "name": "object_id", "type": "path", "expr": "$.tags.object_id" },
{ "name": "item_id", "type": "path", "expr": "$.tags.item_id" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "bytes", "fieldName" : "bytes" },
{ "type" : "longSum", "name" : "new_in_sessions", "fieldName" : "new_in_sessions" },
{ "type" : "longSum", "name" : "new_out_sessions", "fieldName" : "new_out_sessions" },
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT15S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "bytes", "expression": "nvl(bytes, 0)"},
{"type": "expression", "name": "new_in_sessions", "expression": "nvl(new_in_sessions, 0)"},
{"type": "expression", "name": "new_out_sessions", "expression": "nvl(new_out_sessions, 0)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "object_statistics" }
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "OBJECT-STATISTICS-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,90 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "proxy_rule_hits",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
{ "name": "vsys_id", "type": "long" },
{ "name": "rule_id", "type": "long" },
{ "name": "pinning_status", "type": "string" },
{ "name": "action", "type": "long" },
{ "name": "sub_action", "type": "string" }
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "rule_id", "type": "path", "expr": "$.tags.rule_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "pinning_status", "type": "path", "expr": "$.tags.pinning_status" },
{ "name": "action", "type": "path", "expr": "$.tags.action" },
{ "name": "sub_action", "type": "path", "expr": "$.tags.sub_action" },
{ "name": "hit_count", "type": "path", "expr": "$.fields.hit_count" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "hit_count", "fieldName" : "hit_count" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "hit_count", "expression": "nvl(hit_count, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "proxy_rule_hits" }
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,83 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "security_rule_hits",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
{"name": "rule_id","type": "long"},
{"name": "action","type": "long"}
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "hit_count", "type": "path", "expr": "$.fields.hit_count" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "rule_id", "type": "path", "expr": "$.tags.rule_id" },
{ "name": "action", "type": "path", "expr": "$.tags.action" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "hit_count", "fieldName" : "hit_count" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "hit_count", "expression": "nvl(hit_count, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "security_rule_hits" }
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,84 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "service_chaining_rule_hits",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
{ "name": "vsys_id", "type": "long" },
{ "name": "rule_id", "type": "long" },
{ "name": "sff_profile_id", "type": "long" },
{ "name": "sf_profile_id", "type": "long" }
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "rule_id", "type": "path", "expr": "$.tags.rule_id" },
{ "name": "sff_profile_id", "type": "path", "expr": "$.tags.sff_profile_id" },
{ "name": "sf_profile_id", "type": "path", "expr": "$.tags.sf_profile_id" },
{ "name": "sent_pkts", "type": "path", "expr": "$.fields.sent_pkts" },
{ "name": "sent_bytes", "type": "path", "expr": "$.fields.sent_bytes" },
{ "name": "recv_pkts", "type": "path", "expr": "$.fields.recv_pkts" },
{ "name": "recv_bytes", "type": "path", "expr": "$.fields.recv_bytes" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sent_pkts", "fieldName" : "sent_pkts" },
{ "type" : "longSum", "name" : "sent_bytes", "fieldName" : "sent_bytes" },
{ "type" : "longSum", "name" : "recv_pkts", "fieldName" : "recv_pkts" },
{ "type" : "longSum", "name" : "recv_bytes", "fieldName" : "recv_bytes" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "sent_pkts", "expression": "nvl(sent_pkts, 0)"},
{"type": "expression", "name": "sent_bytes", "expression": "nvl(sent_bytes, 0)"},
{"type": "expression", "name": "recv_pkts", "expression": "nvl(recv_pkts, 0)"},
{"type": "expression", "name": "recv_bytes", "expression": "nvl(recv_bytes, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "service_chaining_rule_hits" }
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,74 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "service_function_status",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
{ "name": "vsys_id", "type": "long" },
{ "name": "sf_profile_id", "type": "long" }
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "sf_profile_id", "type": "path", "expr": "$.tags.sf_profile_id" },
{ "name": "sf_status", "type": "path", "expr": "$.fields.sf_status" },
{ "name": "sf_latency_us", "type": "path", "expr": "$.fields.sf_latency_us" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longMax", "name" : "sf_latency_us", "fieldName" : "sf_latency_us" },
{ "type" : "longMax", "name" : "sf_status", "fieldName" : "sf_status" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "sf_latency_us", "expression": "nvl(sf_latency_us, 0)"},
{"type": "expression", "name": "sf_status", "expression": "nvl(sf_status, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "service_function_status" }
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,367 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "statistics_rule",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
{
"name": "vsys_id",
"type": "long"
},
{
"name": "rule_id",
"type": "long"
},
{
"name": "template_id",
"type": "long"
},
{
"name": "chart_id",
"type": "long"
},
{
"name": "version",
"type": "long"
},
"client_ip_object",
"server_ip_object",
"fqdn_category",
"client_ip",
"server_ip",
"server_fqdn",
"server_domain",
"application"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{
"name": "vsys_id",
"type": "path",
"expr": "$.tags.vsys_id"
},
{
"name": "data_center",
"type": "path",
"expr": "$.tags.data_center"
},
{
"name": "device_group",
"type": "path",
"expr": "$.tags.device_group"
},
{
"name": "device_id",
"type": "path",
"expr": "$.tags.device_id"
},
{
"name": "rule_id",
"type": "path",
"expr": "$.tags.rule_id"
},
{
"name": "template_id",
"type": "path",
"expr": "$.tags.template_id"
},
{
"name": "chart_id",
"type": "path",
"expr": "$.tags.chart_id"
},
{
"name": "version",
"type": "path",
"expr": "$.tags.version"
},
{
"name": "client_ip_object",
"type": "path",
"expr": "$.tags.client_ip_object"
},
{
"name": "server_ip_object",
"type": "path",
"expr": "$.tags.server_ip_object"
},
{
"name": "fqdn_category",
"type": "path",
"expr": "$.tags.fqdn_category"
},
{
"name": "client_ip",
"type": "path",
"expr": "$.tags.client_ip"
},
{
"name": "server_ip",
"type": "path",
"expr": "$.tags.server_ip"
},
{
"name": "server_fqdn",
"type": "path",
"expr": "$.tags.server_fqdn"
},
{
"name": "server_domain",
"type": "path",
"expr": "$.tags.server_domain"
},
{
"name": "application",
"type": "path",
"expr": "$.tags.application"
},
{
"name": "in_bytes",
"type": "path",
"expr": "$.fields.in_bytes"
},
{
"name": "out_bytes",
"type": "path",
"expr": "$.fields.out_bytes"
},
{
"name": "bytes",
"type": "path",
"expr": "$.fields.bytes"
},
{
"name": "new_c2s_flows",
"type": "path",
"expr": "$.fields.new_c2s_flows"
},
{
"name": "new_s2c_flows",
"type": "path",
"expr": "$.fields.new_s2c_flows"
},
{
"name": "new_in_sessions",
"type": "path",
"expr": "$.fields.new_in_sessions"
},
{
"name": "new_out_sessions",
"type": "path",
"expr": "$.fields.new_out_sessions"
},
{
"name": "sessions",
"type": "path",
"expr": "$.fields.sessions"
},
{
"name": "new_unestablished_sessions",
"type": "path",
"expr": "$.fields.new_unestablished_sessions"
},
{
"name": "syn_pkts",
"type": "path",
"expr": "$.fields.syn_pkts"
},
{
"name": "session_identifier_sketch",
"type": "path",
"expr": "$.fields.session_identifier_sketch"
},
{
"name": "client_ip_sketch",
"type": "path",
"expr": "$.fields.client_ip_sketch"
},
{
"name": "server_ip_sketch",
"type": "path",
"expr": "$.fields.server_ip_sketch"
},
{
"name": "in_latency_ms_sketch",
"type": "path",
"expr": "$.fields.in_latency_ms_sketch"
},
{
"name": "out_latency_ms_sketch",
"type": "path",
"expr": "$.fields.out_latency_ms_sketch"
},
{
"name": "latency_ms_sketch",
"type": "path",
"expr": "$.fields.latency_ms_sketch"
}
]
}
}
},
"metricsSpec": [
{
"type": "HLLDSketchMerge",
"name": "session_identifier_sketch",
"fieldName": "session_identifier_sketch"
},
{
"type": "HLLDSketchMerge",
"name": "client_ip_sketch",
"fieldName": "client_ip_sketch"
},{
"type": "HLLDSketchMerge",
"name": "server_ip_sketch",
"fieldName": "server_ip_sketch"
},
{
"type": "HdrHistogramSketchMerge",
"name": "in_latency_ms_sketch",
"fieldName": "in_latency_ms_sketch",
"lowestDiscernibleValue": "1",
"highestTrackableValue": "2",
"numberOfSignificantValueDigits": "3",
"autoResize": "true"
},
{
"type": "HdrHistogramSketchMerge",
"name": "out_latency_ms_sketch",
"fieldName": "out_latency_ms_sketch",
"lowestDiscernibleValue": "1",
"highestTrackableValue": "2",
"numberOfSignificantValueDigits": "3",
"autoResize": "true"
},
{
"type": "HdrHistogramSketchMerge",
"name": "latency_ms_sketch",
"fieldName": "latency_ms_sketch",
"lowestDiscernibleValue": "1",
"highestTrackableValue": "2",
"numberOfSignificantValueDigits": "3",
"autoResize": "true"
},
{
"type": "longSum",
"name": "in_bytes",
"fieldName": "in_bytes"
},
{
"type": "longSum",
"name": "out_bytes",
"fieldName": "out_bytes"
},
{
"type": "longSum",
"name": "bytes",
"fieldName": "bytes"
},
{
"type": "longSum",
"name": "new_c2s_flows",
"fieldName": "new_c2s_flows"
},
{
"type": "longSum",
"name": "new_s2c_flows",
"fieldName": "new_s2c_flows"
},
{
"type": "longSum",
"name": "new_in_sessions",
"fieldName": "new_in_sessions"
},
{
"type": "longSum",
"name": "new_out_sessions",
"fieldName": "new_out_sessions"
},
{
"type": "longSum",
"name": "sessions",
"fieldName": "sessions"
},
{
"type": "longSum",
"name": "new_unestablished_sessions",
"fieldName": "new_unestablished_sessions"
},
{
"type": "longSum",
"name": "syn_pkts",
"fieldName": "syn_pkts"
}
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {
"type": "period",
"period": "PT15S"
},
"rollup": true
},
"transformSpec": {
"transforms": [
{"type": "expression", "name": "vsys_id", "expression": "nvl(vsys_id,1)"},
{"type": "expression", "name": "client_ip_object", "expression": "STRING_TO_ARRAY(client_ip_object,',')"},
{"type": "expression", "name": "server_ip_object", "expression": "STRING_TO_ARRAY(server_ip_object,',')"},
{"type": "expression", "name": "fqdn_category", "expression": "STRING_TO_ARRAY(fqdn_category,',')"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "bytes", "expression": "nvl(bytes, 0)"},
{"type": "expression", "name": "new_c2s_flows", "expression": "nvl(new_c2s_flows, 0)"},
{"type": "expression", "name": "new_s2c_flows", "expression": "nvl(new_s2c_flows, 0)"},
{"type": "expression", "name": "new_in_sessions", "expression": "nvl(new_in_sessions, 0)"},
{"type": "expression", "name": "new_out_sessions", "expression": "nvl(new_out_sessions, 0)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "new_unestablished_sessions", "expression": "nvl(new_unestablished_sessions, 0)"},
{"type": "expression", "name": "syn_pkts", "expression": "nvl(syn_pkts, 0)"}
],
"filter": {
"type": "selector",
"dimension": "name",
"value": "statistics_rule"
}
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"maxRowsInMemory": 400000,
"maxBytesInMemory": -1,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "STATISTICS-RULE-METRIC",
"taskCount": 2,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
},
"context":{
"druid.indexer.runner.javaOpts": "{{ druid.index_kafka_statistics_rule['druid.indexer.runner.javaOpts'] }}"
}
}

View File

@@ -0,0 +1,159 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "statistics_rule_hits",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
{
"name": "vsys_id",
"type": "long"
},
{
"name": "rule_id",
"type": "long"
}
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{
"name": "vsys_id",
"type": "path",
"expr": "$.tags.vsys_id"
},
{
"name": "data_center",
"type": "path",
"expr": "$.tags.data_center"
},
{
"name": "device_group",
"type": "path",
"expr": "$.tags.device_group"
},
{
"name": "device_id",
"type": "path",
"expr": "$.tags.device_id"
},
{
"name": "rule_id",
"type": "path",
"expr": "$.tags.rule_id"
},
{
"name": "in_bytes",
"type": "path",
"expr": "$.fields.in_bytes"
},
{
"name": "out_bytes",
"type": "path",
"expr": "$.fields.out_bytes"
},
{
"name": "hit_count",
"type": "path",
"expr": "$.fields.hit_count"
},
{
"name": "in_pkts",
"type": "path",
"expr": "$.fields.in_pkts"
},
{
"name": "out_pkts",
"type": "path",
"expr": "$.fields.out_pkts"
}
]
}
}
},
"metricsSpec": [
{
"type": "longSum",
"name": "in_bytes",
"fieldName": "in_bytes"
},
{
"type": "longSum",
"name": "out_bytes",
"fieldName": "out_bytes"
},
{
"type": "longSum",
"name": "hit_count",
"fieldName": "hit_count"
},
{
"type": "longSum",
"name": "in_pkts",
"fieldName": "in_pkts"
},
{
"type": "longSum",
"name": "out_pkts",
"fieldName": "out_pkts"
}
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {
"type": "period",
"period": "PT1S"
},
"rollup": true
},
"transformSpec": {
"transforms": [
{"type": "expression", "name": "vsys_id", "expression": "nvl(vsys_id,1)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "hit_count", "expression": "nvl(hit_count, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter": {
"type": "selector",
"dimension": "name",
"value": "statistics_rule_hits"
}
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,52 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "sys_storage_log",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "time",
"format": "posix"
},
"dimensionsSpec": {
"dimensions": [
"log_type",
"data_center",
{ "name": "used_size", "type": "long" },
{ "name": "max_size", "type": "long" },
{ "name": "aggregate_size", "type": "long" },
{ "name": "last_storage", "type": "long" }
]
}
}
},
"metricsSpec" : [
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT5M", "timeZone": "Asia/Hong_Kong"},
"rollup": false
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "SYS-STORAGE",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,104 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_client_ips",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"client_ip",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "client_ip", "type": "path", "expr": "$.tags.client_ip" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"packets_top_client_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_client_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_client_ip"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_external_ips",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"external_ip",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "external_ip", "type": "path", "expr": "$.tags.external_ip" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_external_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_external_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"packets_top_external_ip"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_internal_ips",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"internal_ip",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "internal_ip", "type": "path", "expr": "$.tags.internal_ip" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_internal_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_internal_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"packets_top_internal_ip"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_server_domains",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"domain",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "domain", "type": "path", "expr": "$.tags.domain" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"packets_top_server_domain"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_server_domain"
},
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_server_domain"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_server_fqdns",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"fqdn",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "fqdn", "type": "path", "expr": "$.tags.fqdn" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_server_fqdn"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_server_fqdn"
},
{
"type":"selector",
"dimension":"name",
"value":"packets_top_server_fqdn"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_server_ips",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"server_ip",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "server_ip", "type": "path", "expr": "$.tags.server_ip" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_server_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_server_ip"
},
{
"type":"selector",
"dimension":"name",
"value":"packets_top_server_ip"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "top_subscribers",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
"subscriber_id",
"metric"
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "subscriber_id", "type": "path", "expr": "$.tags.subscriber_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "name", "type": "path", "expr": "$.name" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "sessions", "fieldName" : "sessions" },
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1M"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "metric", "expression": "array_ordinal(string_to_array(name,'_'),1)"},
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"}
],
"filter":{
"type":"or","fields":[
{
"type":"selector",
"dimension":"name",
"value":"sessions_top_subscriber_id"
},
{
"type":"selector",
"dimension":"name",
"value":"bytes_top_subscriber_id"
},
{
"type":"selector",
"dimension":"name",
"value":"packets_top_subscriber_id"
}
]
}
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,105 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "traffic_general_stat",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
"device_id",
"device_group",
"data_center",
{ "name": "vsys_id", "type": "long" }
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "sessions", "type": "path", "expr": "$.fields.sessions" },
{ "name": "active_sessions", "type": "path", "expr": "$.fields.active_sessions" },
{ "name": "closed_sessions", "type": "path", "expr": "$.fields.closed_sessions" },
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "asymmetric_c2s_flows", "type": "path", "expr": "$.fields.asymmetric_c2s_flows" },
{ "name": "asymmetric_s2c_flows", "type": "path", "expr": "$.fields.asymmetric_s2c_flows" },
{ "name": "tcp_syn_pkts", "type": "path", "expr": "$.fields.tcp_syn_pkts" },
{ "name": "tcp_ack_pkts", "type": "path", "expr": "$.fields.tcp_ack_pkts" },
{ "name": "tcp_fin_pkts", "type": "path", "expr": "$.fields.tcp_fin_pkts" },
{ "name": "tcp_rst_pkts", "type": "path", "expr": "$.fields.tcp_rst_pkts" }
]
}
}
},
"metricsSpec":[
{ "type":"longSum", "name":"sessions", "fieldName":"sessions" },
{ "type":"longMax", "name":"active_sessions", "fieldName":"active_sessions" },
{ "type":"longSum", "name":"closed_sessions", "fieldName":"closed_sessions" },
{ "type":"longSum", "name":"in_bytes", "fieldName":"in_bytes" },
{ "type":"longSum", "name":"out_bytes", "fieldName":"out_bytes" },
{ "type":"longSum", "name":"in_pkts", "fieldName":"in_pkts" },
{ "type":"longSum", "name":"out_pkts", "fieldName":"out_pkts" },
{ "type":"longSum", "name":"asymmetric_c2s_flows", "fieldName":"asymmetric_c2s_flows" },
{ "type":"longSum", "name":"asymmetric_s2c_flows", "fieldName":"asymmetric_s2c_flows" },
{ "type":"longSum", "name":"tcp_syn_pkts", "fieldName":"tcp_syn_pkts" },
{ "type":"longSum", "name":"tcp_ack_pkts", "fieldName":"tcp_ack_pkts" },
{ "type":"longSum", "name":"tcp_fin_pkts", "fieldName":"tcp_fin_pkts" },
{ "type":"longSum", "name":"tcp_rst_pkts", "fieldName":"tcp_rst_pkts" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "sessions", "expression": "nvl(sessions, 0)"},
{"type": "expression", "name": "active_sessions", "expression": "nvl(active_sessions, 0)"},
{"type": "expression", "name": "closed_sessions", "expression": "nvl(closed_sessions, 0)"},
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"},
{"type": "expression", "name": "asymmetric_c2s_flows", "expression": "nvl(asymmetric_c2s_flows, 0)"},
{"type": "expression", "name": "asymmetric_s2c_flows", "expression": "nvl(asymmetric_s2c_flows, 0)"},
{"type": "expression", "name": "tcp_syn_pkts", "expression": "nvl(tcp_syn_pkts, 0)"},
{"type": "expression", "name": "tcp_ack_pkts", "expression": "nvl(tcp_ack_pkts, 0)"},
{"type": "expression", "name": "tcp_fin_pkts", "expression": "nvl(tcp_fin_pkts, 0)"},
{"type": "expression", "name": "tcp_rst_pkts", "expression": "nvl(tcp_rst_pkts, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "traffic_general_stat" }
}
},
"tuningConfig": {
"type": "kafka",
"maxRowsPerSegment": 5000000,
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "NETWORK-TRAFFIC-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,101 @@
{
"type": "kafka",
"dataSchema": {
"dataSource": "traffic_shaping_rule_hits",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp_ms",
"format": "millis"
},
"dimensionsSpec": {
"dimensions": [
{"name": "vsys_id","type": "long"},
"device_id",
"device_group",
"data_center",
{"name": "rule_id","type": "long"},
{"name": "profile_id","type": "long"},
{"name": "priority","type": "long"}
]
},
"flattenSpec": {
"useFieldDiscovery": true,
"fields": [
{ "name": "in_bytes", "type": "path", "expr": "$.fields.in_bytes" },
{ "name": "out_bytes", "type": "path", "expr": "$.fields.out_bytes" },
{ "name": "in_pkts", "type": "path", "expr": "$.fields.in_pkts" },
{ "name": "out_pkts", "type": "path", "expr": "$.fields.out_pkts" },
{ "name": "in_drop_pkts", "type": "path", "expr": "$.fields.in_drop_pkts" },
{ "name": "out_drop_pkts", "type": "path", "expr": "$.fields.out_drop_pkts" },
{ "name": "in_max_latency_us", "type": "path", "expr": "$.fields.in_max_latency_us" },
{ "name": "out_max_latency_us", "type": "path", "expr": "$.fields.out_max_latency_us" },
{ "name": "in_queue_len", "type": "path", "expr": "$.fields.in_queue_len" },
{ "name": "out_queue_len", "type": "path", "expr": "$.fields.out_queue_len" },
{ "name": "vsys_id", "type": "path", "expr": "$.tags.vsys_id" },
{ "name": "data_center", "type": "path", "expr": "$.tags.data_center" },
{ "name": "device_group", "type": "path", "expr": "$.tags.device_group" },
{ "name": "device_id", "type": "path", "expr": "$.tags.device_id" },
{ "name": "rule_id", "type": "path", "expr": "$.tags.rule_id" },
{ "name": "profile_id", "type": "path", "expr": "$.tags.profile_id" },
{ "name": "priority", "type": "path", "expr": "$.tags.priority" }
]
}
}
},
"metricsSpec" : [
{ "type" : "longSum", "name" : "in_bytes", "fieldName" : "in_bytes" },
{ "type" : "longSum", "name" : "out_bytes", "fieldName" : "out_bytes" },
{ "type" : "longSum", "name" : "in_pkts", "fieldName" : "in_pkts" },
{ "type" : "longSum", "name" : "out_pkts", "fieldName" : "out_pkts" },
{ "type" : "longSum", "name" : "in_drop_pkts", "fieldName" : "in_drop_pkts" },
{ "type" : "longSum", "name" : "out_drop_pkts", "fieldName" : "out_drop_pkts" },
{ "type" : "longMax", "name" : "in_max_latency_us", "fieldName" : "in_max_latency_us" },
{ "type" : "longMax", "name" : "out_max_latency_us", "fieldName" : "out_max_latency_us" },
{ "type" : "longMax", "name" : "in_queue_len", "fieldName" : "in_queue_len" },
{ "type" : "longMax", "name" : "out_queue_len", "fieldName" : "out_queue_len" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT1S"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression", "name": "in_bytes", "expression": "nvl(in_bytes, 0)"},
{"type": "expression", "name": "out_bytes", "expression": "nvl(out_bytes, 0)"},
{"type": "expression", "name": "in_pkts", "expression": "nvl(in_pkts, 0)"},
{"type": "expression", "name": "out_pkts", "expression": "nvl(out_pkts, 0)"},
{"type": "expression", "name": "in_drop_pkts", "expression": "nvl(in_drop_pkts, 0)"},
{"type": "expression", "name": "out_drop_pkts", "expression": "nvl(out_drop_pkts, 0)"},
{"type": "expression", "name": "in_max_latency_us", "expression": "nvl(in_max_latency_us, 0)"},
{"type": "expression", "name": "out_max_latency_us", "expression": "nvl(out_max_latency_us, 0)"},
{"type": "expression", "name": "in_queue_len", "expression": "nvl(in_queue_len, 0)"},
{"type": "expression", "name": "out_queue_len", "expression": "nvl(out_queue_len, 0)"}
],
"filter": { "type": "selector", "dimension": "name", "value": "traffic_shaping_rule_hits" }
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "POLICY-RULE-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,61 @@
{
"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": [
"destination_ip",
"attack_type",
{ "name": "vsys_id", "type": "long" },
{ "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" }
],
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "DAY",
"queryGranularity": {"type": "period", "period": "PT10M", "timeZone": "Asia/Hong_Kong"},
"rollup": true
},
"transformSpec" :{
"transforms":[
{"type": "expression","name": "vsys_id","expression": "nvl(vsys_id,1)"},
{"type": "expression", "name": "session_rate", "expression": "nvl(session_rate, 0)"},
{"type": "expression", "name": "packet_rate", "expression": "nvl(packet_rate, 0)"},
{"type": "expression", "name": "bit_rate", "expression": "nvl(bit_rate, 0)"}
]
}
},
"tuningConfig": {
"type": "kafka",
"resetOffsetAutomatically": true,
"reportParseExceptions": false
},
"ioConfig": {
"topic": "TRAFFIC-TOP-DESTINATION-IP-METRIC",
"taskCount": 1,
"replicas": 1,
"taskDuration": "PT1H",
"completionTimeout": "PT30M",
"consumerProperties": {
"bootstrap.servers": "kafkabootstrap",
"sasl.mechanism": "PLAIN",
"security.protocol": "SASL_PLAINTEXT",
"sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"admin\" password=\"galaxy2019\";"
}
}
}

View File

@@ -0,0 +1,11 @@
container_name: druid
backup_path: "{{ deploy_dir }}/backup/tsg-olap/{{ old_version }}/{{ container_name }}"
backup_items:
- conf
- docker-compose.yml
- init
- monitor
- topology

View File

@@ -0,0 +1,28 @@
- name: Create buckets
uri:
url: "http://{{ vrrp_instance.oss.virtual_ipaddress }}:9098/hos/{{ item }}"
method: PUT
headers:
token: "{{ hos_token }}"
return_content: yes
retries: 3
delay: 3
loop: "{{ init_buckets }}"
run_once: true
- name: Check if buckets exist
uri:
url: "http://{{ vrrp_instance.oss.virtual_ipaddress }}:9098/hos/"
method: GET
headers:
token: "{{ hos_token }}"
return_content: yes
register: bucket_info
retries: 3
delay: 3
- name: Check create bucket result
fail:
msg: "{{ item }} was not created successfully. Please retry."
when: "'{{ item }}' not in bucket_info.content"
loop: "{{ init_buckets }}"

View File

@@ -0,0 +1,5 @@
- include: init.yml
when: operation == 'install'
- include: upgrade.yml
when: operation == 'upgrade'

View File

@@ -0,0 +1,6 @@
init_buckets:
- troubleshooting_file_bucket
- assessment_file_bucket
- knowledge_base_bucket
- traffic_file_bucket
- report_snapshot_bucket

View File

@@ -0,0 +1,41 @@
- name: Stop Container
docker_container:
name: '{{ image_name }}'
state: absent
force_kill: true
- name: Remove Image
docker_image:
name: '{{ image_name }}'
tag: '{{ image_tag }}'
state: absent
force_absent: true
- name: Copy Image
copy:
src: 'files/{{ image_name }}-{{ image_tag }}.tar'
dest: '{{ deploy_dir }}/{{ container_name }}'
force: yes
- name: Unarchive Image
unarchive:
src: 'files/{{ image_name }}-{{ image_tag }}.tar.gz'
dest: '{{ deploy_dir }}/{{ container_name }}'
force: yes
- name: Load Image
docker_image:
name: '{{ image_name }}'
tag: '{{ image_tag }}'
load_path: '{{ deploy_dir }}/{{ container_name }}/{{ image_name }}-{{ image_tag }}.tar'
source: load
force_tag: yes
force_source: yes
timeout: 300
- name: Start Container
docker_compose:
project_src: '{{ deploy_dir }}/{{ container_name }}'
- name: Start Nginx
shell: 'docker restart galaxy-gateway-nginx'

View File

@@ -0,0 +1,51 @@
- name: Check if admin backup directory exists
stat:
path: "{{ backup_path }}/{{ admin_container_name }}"
register: exist_status
- name: Backup directories
block:
- name: Creat backup directory
file:
state: directory
path: "{{ backup_path }}/{{ admin_container_name }}"
- name: Copying directories to backup
copy:
src: "{{ deploy_dir }}/{{ admin_container_name }}/{{ item }}"
dest: "{{ backup_path }}/{{ admin_container_name }}/"
remote_src: true
loop: "{{ backup_items }}"
rescue:
- name: Remove backup directory on failure
file:
path: "{{ backup_path }}/{{ admin_container_name }}"
state: absent
when: exist_status.stat.exists == false
- name: Check if executor backup directory exists
stat:
path: "{{ backup_path }}/{{ executor_container_name }}"
register: exist_status
- name: Backup directories
block:
- name: Creat backup directory
file:
state: directory
path: "{{ backup_path }}/{{ executor_container_name }}"
- name: Copying directories to backup
copy:
src: "{{ deploy_dir }}/{{ executor_container_name }}/{{ item }}"
dest: "{{ backup_path }}/{{ executor_container_name }}/"
remote_src: true
loop: "{{ backup_items }}"
rescue:
- name: Remove backup directory on failure
file:
path: "{{ backup_path }}/{{ executor_container_name }}"
state: absent
when: exist_status.stat.exists == false

View File

@@ -0,0 +1,12 @@
- name: Check the health status of galaxy-job-admin
uri:
url: http://{{ vrrp_instance.default.virtual_ipaddress }}:8181/xxl-job-admin/login
method: POST
body_format: form-urlencoded
body:
userName: admin
pin: galaxy_2019
- name: Check that the galaxy-job-admin is accessible
uri:
url: "http://{{ vrrp_instance.default.virtual_ipaddress }}:8181/xxl-job-admin/testCase/logPolicyTest"

View File

@@ -0,0 +1,52 @@
- name: Set container_name
set_fact:
container_name: "{{ admin_container_name }}"
image_name: "{{ admin_image_name }}"
image_tag: "{{ admin_image_tag }}"
- name: Creating directory
file:
state: directory
path: '{{ deploy_dir }}/{{ container_name }}/config'
- name: Copying image to {{ deploy_dir }}/{{ container_name }}/
copy:
src: '{{ software_packages_dir }}/{{ image_name }}-{{ image_tag }}.tar'
dest: '{{ deploy_dir }}/{{ container_name }}/'
force: true
notify:
- Load Image
- Start Container
- name: Copying {{ container_name }} config
template:
src: "admin/{{ item }}.j2"
dest: '{{ deploy_dir }}/{{ container_name }}/config/{{ item }}'
force: yes
loop:
- application.properties
- logback.xml
notify:
- Start Container
- name: Copying {{ container_name }} docker-compose.yml
template:
src: "admin/docker-compose.yml.j2"
dest: '{{ deploy_dir }}/{{ container_name }}/docker-compose.yml'
force: yes
notify:
- Start Container
- name: Copying {{ container_name }} nginx config
template:
src: "admin/{{ container_name }}.conf.j2"
dest: '{{ deploy_dir }}/galaxy-gateway-nginx/conf/includes/{{ container_name }}.conf'
force: yes
notify:
- Start Nginx
delegate_to: "{{ item }}"
run_once: true
loop: "{{ groups.loadbalancer[:2] }}"
- meta: flush_handlers

View File

@@ -0,0 +1,45 @@
- name: Setting variable name
set_fact:
container_name: "{{ executor_container_name }}"
image_name: "{{ executor_image_name }}"
image_tag: "{{ executor_image_tag }}"
- name: Creating {{ container_name }} directory
file:
state: directory
path: '{{ deploy_dir }}/{{ container_name }}/{{ item }}'
loop:
- "init"
- "config"
- name: Copying image to {{ deploy_dir }}/{{ container_name }}/
copy:
src: '{{ software_packages_dir }}/{{ image_name }}-{{ image_tag }}.tar'
dest: '{{ deploy_dir }}/{{ container_name }}/'
force: true
notify:
- Load Image
- Start Container
- name: Copying {{ container_name }} config
template:
src: "executor/{{ item }}.j2"
dest: '{{ deploy_dir }}/{{ container_name }}/config/{{ item }}'
force: yes
loop:
- application.properties
- logback.xml
notify:
- Start Container
- name: Copying {{ container_name }} docker-compose.yml
template:
src: "executor/docker-compose.yml.j2"
dest: '{{ deploy_dir }}/{{ container_name }}/docker-compose.yml'
force: yes
notify:
- Start Container
- meta: flush_handlers

View File

@@ -0,0 +1,53 @@
- name: Creating directory
file:
state: directory
path: '{{ deploy_dir }}/{{ item }}/init'
loop:
- 'galaxy-job-admin'
- 'galaxy-job-executor'
- name: Copying admin init files
template:
src: "{{ item.src }}"
dest: "{{ deploy_dir }}/{{ admin_container_name }}/init/{{ item.dest }}"
mode: "{{ item.mode }}"
force: true
loop:
- { src: "push_config.sh.j2", dest: "push_config.sh", mode: "0755" }
- { src: "admin/xxl_job.sql.j2", dest: "xxl_job.sql", mode: "0644" }
- { src: 'admin/create_mariadb_tables.sh.j2', dest: 'create_mariadb_tables.sh', mode: "0755" }
- { src: "admin/galaxy-job-admin.properties.j2", dest: "galaxy-job-admin.properties", mode: "0644" }
- name: Copying mysql Client to /usr/bin/
copy:
src: 'files/mysql'
dest: '/usr/bin/'
mode: 0755
force: true
- name: Creating table and init jobs
shell: cd {{ deploy_dir }}/{{ admin_container_name }}/init && sh create_mariadb_tables.sh
run_once: true
when: operation == 'install'
- name: Copying executor init files
template:
src: "{{ item.src }}"
dest: "{{ deploy_dir }}/{{ executor_container_name }}/init/{{ item.dest }}"
mode: "{{ item.mode }}"
force: true
loop:
- { src: "push_config.sh.j2", dest: "push_config.sh", mode: "0755" }
- { src: "executor/galaxy-job-executor.properties.j2", dest: "galaxy-job-executor.properties", mode: "0644" }
- name: Pushing Galaxy-job-service admin config
shell: 'cd {{ deploy_dir }}/{{ item.src }}/init && sh push_config.sh {{ item.conf }}'
register: post_result
until: post_result.stdout == '1'
retries: 3
delay: 3
failed_when: post_result.stdout != '1'
loop:
- { src: "{{ admin_container_name }}" , conf: "galaxy-job-admin.properties" }
- { src: "{{ executor_container_name }}" , conf: "galaxy-job-executor.properties" }
run_once: true

View File

@@ -0,0 +1,22 @@
- block:
- include: uninstall-admin.yml
- include: uninstall-executor.yml
- include: init.yml
- include: deploy-admin.yml
- include: deploy-executor.yml
when: operation == 'install'
- block:
- include: check.yml
- include: backup.yml
- include: init.yml
- include: upgrade.yml
- include: deploy-executor.yml
- include: check.yml
when: operation == 'upgrade'
- block:
- include: uninstall-admin.yml
- include: uninstall-executor.yml
when: operation == 'uninstall'

View File

@@ -0,0 +1,18 @@
- name: Stopping and removing {{ admin_container_name }} container
docker_container:
name: '{{ admin_container_name }}'
state: absent
force_kill: true
- name: Removing old {{ admin_image_name }} image
docker_image:
name: '{{ admin_image_name }}'
tag: '{{ admin_image_tag }}'
state: absent
force_absent: true
- name: Ansible delete old {{ deploy_dir }}/{{ admin_container_name }}
file:
path: '{{ deploy_dir }}/{{ admin_container_name }}'
state: absent

View File

@@ -0,0 +1,18 @@
- name: Stopping and removing {{ executor_container_name }} container
docker_container:
name: '{{ executor_container_name }}'
state: absent
force_kill: true
- name: Removing old {{ executor_image_name }} image
docker_image:
name: '{{ executor_image_name }}'
tag: '{{ executor_image_tag }}'
state: absent
force_absent: true
- name: Ansible delete old {{ deploy_dir }}/{{ executor_container_name }}
file:
path: '{{ deploy_dir }}/{{ executor_container_name }}'
state: absent

View File

@@ -0,0 +1,54 @@
- name: Creating config tmp directory
file:
state: directory
path: "/tmp/{{ item }}"
loop:
- "{{ admin_container_name }}"
- "{{ executor_container_name }}"
- name: Creating upgrade directory
file:
state: directory
path: "{{ deploy_dir }}/{{ executor_container_name }}/upgrade/upgrade-sql"
- name: Fetching config files
fetch:
src: "{{ deploy_dir }}/{{ item.name }}/{{ item.config }}"
dest: "/tmp/{{ item.name }}/{{ item.config }}"
flat: yes
loop:
- { name: "{{ admin_container_name }}", config: 'docker-compose.yml' }
- { name: "{{ executor_container_name }}", config: 'docker-compose.yml' }
- name: Loading variable by admin docker-compose.yml
include_vars:
file: "/tmp/{{ admin_container_name }}/docker-compose.yml"
name: admin_docker_config
- name: Loading variable by executor docker-compose.yml
include_vars:
file: "/tmp/{{ executor_container_name }}/docker-compose.yml"
name: executor_docker_config
- name: Set variable
set_fact:
galaxy_job_service:
admin_java_opts: "{{ admin_docker_config['services']['galaxy-job-admin']['environment']['JAVA_OPTS'] }}"
executor_java_opts: "{{ executor_docker_config['services']['galaxy-job-executor']['environment']['JAVA_OPTS'] }}"
- name: Copying upgrade sql file
copy:
src: 'files/upgrade-sql'
dest: '{{ deploy_dir }}/{{ executor_container_name }}/upgrade/'
force: true
- name: Copying upgrade-mariadb-data.sh template
template:
src: "upgrade-mariadb-data.sh.j2"
dest: "{{ deploy_dir }}/{{ executor_container_name }}/upgrade/upgrade-mariadb-data.sh"
mode: 0755
force: true
- name: Upgrade mariadb data
shell: cd {{ deploy_dir }}/{{ executor_container_name }}/upgrade && sh upgrade-mariadb-data.sh
run_once: true

View File

@@ -0,0 +1,23 @@
#配置集的配置格式
nacos.config.type=properties
#配置中心地址
nacos.config.server-addr={{ vrrp_instance.default.virtual_ipaddress }}:8848
#命名空间
nacos.config.namespace={{ config_namespace }}
#数据集ID
nacos.config.data-id=galaxy-job-admin.properties
#开启自动刷新
nacos.config.auto-refresh=true
#配置对应的分组
nacos.config.group=Galaxy
#Nacos认证用户
nacos.config.username=nacos
#Nacos认证密码
nacos.config.password=nacos
#开启配置预加载功能
nacos.config.bootstrap.enable=true
#开启Nacos支持日志级别的加载时机
nacos.config.bootstrap.log-enable=true
## log config
logging.config=./config/logback.xml

View File

@@ -0,0 +1,6 @@
#!/bin/bash
mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ vrrp_instance.default.virtual_ipaddress }} -e "create database if not exists {{ mariadb_job_database }} default character set utf8mb4 collate utf8mb4_general_ci;"
mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ vrrp_instance.default.virtual_ipaddress }} {{ mariadb_job_database }} < {{ deploy_dir }}/{{ admin_container_name }}/init/xxl_job.sql

View File

@@ -0,0 +1,15 @@
version: '3'
services:
galaxy-job-admin:
image: {{ image_name }}:{{ image_tag }}
container_name: galaxy-job-admin
environment:
JAVA_OPTS: "{{ galaxy_job_service.admin_java_opts }}"
ports:
- "8181:8181"
volumes:
- "{{ deploy_dir }}/{{ container_name }}/logs:/logs"
- "{{ deploy_dir }}/{{ container_name }}/data:/data"
- "{{ deploy_dir }}/{{ container_name }}/config:/home/tsg/galaxy/galaxy-job/galaxy-job-admin/config"
restart: always
network_mode: "host"

View File

@@ -0,0 +1,16 @@
upstream jobAdmin {
{% for host in groups['galaxy_job_service'][:2] %}
server {{ host }}:8184;
{% endfor %}
}
server {
listen 8181;
server_name localhost;
location / {
proxy_pass http://jobAdmin;
}
}

View File

@@ -0,0 +1,73 @@
### web
server.port=8184
server.servlet.context-path=/xxl-job-admin
spring.application.name=galaxy-job-admin
### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false
management.endpoints.web.exposure.include=*
#详细的应用健康信息 prometheus
management.endpoint.health.show-details=always
management.endpoint.metrics.enabled=true
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.metrics.tags.application=${spring.application.name}
management.metrics.tags.module=${spring.application.name}
### resources
spring.mvc.servlet.load-on-startup=0
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/
### freemarker
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########
### mybatis
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://{{ vrrp_instance.default.virtual_ipaddress }}:3306/{{ mariadb_job_database }}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC
spring.datasource.username=ENC(63aTpwv2vH0vPikW+3Jjig==)
spring.datasource.password=ENC(LDEb2OekU7iZWiFw6pUYBSozVKP27r1y)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### datasource-pool
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=100
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
### xxl-job, email
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
### xxl-job, access token
xxl.job.accessToken=
### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
xxl.job.i18n=zh_CN
## xxl-job, triggerpool max size
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100
### xxl-job, log retention days
xxl.job.logretentiondays=30

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--每100M压缩日志文件-->
<property name="LOG_SIZE" value="100MB"/>
<!--日志文件路径-->
<property name="LOG_PATH" value="/logs"/>
<!--日志文件名称-->
<property name="LOG_FILE_NAME" value="galaxy-job-admin"/>
<!--日志打印等级-->
<property name="LOG_LEVEL" value="error"/>
<!--日志最大的历史30天 -->
<property name="LOG_DAYS" value="30"/>
<!--日志打印格式-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ssZ,UTC} [%thread] %-5level %logger -%msg%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ALL</level>
</filter>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_PATH}/history/${LOG_FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<maxHistory>${LOG_DAYS}</maxHistory>
<maxFileSize>${LOG_SIZE}</maxFileSize>
</rollingPolicy>
</appender>
<root level="${LOG_LEVEL}">
<appender-ref ref="ALL"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>

View File

@@ -0,0 +1,195 @@
/*
Navicat MySQL Data Transfer
Target Server Type : MYSQL
Target Server Version : 50505
File Encoding : 65001
Date: 2021-09-23 14:05:11
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `xxl_job_group`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_group`;
CREATE TABLE `xxl_job_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_name` varchar(64) NOT NULL COMMENT '执行器AppName',
`title` varchar(64) NOT NULL COMMENT '执行器名称',
`address_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '执行器地址类型0=自动注册、1=手动录入',
`address_list` varchar(512) DEFAULT NULL COMMENT '执行器地址列表,多地址逗号分隔',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Table structure for `xxl_job_lock`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_lock`;
CREATE TABLE `xxl_job_lock` (
`lock_name` varchar(50) NOT NULL COMMENT '锁名称',
PRIMARY KEY (`lock_name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of xxl_job_lock
-- ----------------------------
INSERT INTO `xxl_job_lock` VALUES ('schedule_lock');
-- ----------------------------
-- Table structure for `xxl_job_log`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_log`;
CREATE TABLE `xxl_job_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`job_group` int(11) NOT NULL COMMENT '执行器主键ID',
`job_id` int(11) NOT NULL COMMENT '任务主键ID',
`executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',
`executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
`executor_param` varchar(4000) DEFAULT '' COMMENT '执行器任务参数',
`executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '执行器任务分片参数,格式如 1/2',
`executor_fail_retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '失败重试次数',
`trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',
`trigger_code` int(11) NOT NULL COMMENT '调度-结果',
`trigger_msg` text DEFAULT NULL COMMENT '调度-日志',
`handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
`handle_code` int(11) NOT NULL COMMENT '执行-状态',
`handle_msg` text DEFAULT NULL COMMENT '执行-日志',
`alarm_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '告警状态0-默认、1-无需告警、2-告警成功、3-告警失败',
PRIMARY KEY (`id`) USING BTREE,
KEY `I_trigger_time` (`trigger_time`) USING BTREE,
KEY `I_handle_code` (`handle_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2077229 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of xxl_job_log
-- ----------------------------
-- ----------------------------
-- Table structure for `xxl_job_logglue`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_logglue`;
CREATE TABLE `xxl_job_logglue` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job_id` int(11) NOT NULL COMMENT '任务主键ID',
`glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型',
`glue_source` mediumtext DEFAULT NULL COMMENT 'GLUE源代码',
`glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注',
`add_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of xxl_job_logglue
-- ----------------------------
-- ----------------------------
-- Table structure for `xxl_job_log_report`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_log_report`;
CREATE TABLE `xxl_job_log_report` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`trigger_day` datetime DEFAULT NULL COMMENT '调度-时间',
`running_count` int(11) NOT NULL DEFAULT 0 COMMENT '运行中-日志数量',
`suc_count` int(11) NOT NULL DEFAULT 0 COMMENT '执行成功-日志数量',
`fail_count` int(11) NOT NULL DEFAULT 0 COMMENT '执行失败-日志数量',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=786 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of xxl_job_log_report
-- ----------------------------
-- ----------------------------
-- Table structure for `xxl_job_registry`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_registry`;
CREATE TABLE `xxl_job_registry` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`registry_group` varchar(50) NOT NULL,
`registry_key` varchar(255) NOT NULL,
`registry_value` varchar(255) NOT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=276 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Table structure for `xxl_job_user`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_user`;
CREATE TABLE `xxl_job_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '账号',
`password` varchar(50) NOT NULL COMMENT '密码',
`role` tinyint(4) NOT NULL COMMENT '角色0-普通用户、1-管理员',
`permission` varchar(255) DEFAULT NULL COMMENT '权限执行器ID列表多个逗号分割',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `i_username` (`username`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of xxl_job_user
-- ----------------------------
INSERT INTO `xxl_job_user` VALUES ('1', 'admin', 'fea191a3fdd9f68503f9fa0e8d0293ab', '1', null);
INSERT INTO `xxl_job_user` VALUES ('2', 'query', '95497ea23bf8d27d86526717578e366f', '0', '3');
-- ----------------------------
-- Table structure for `xxl_job_info`
-- ----------------------------
DROP TABLE IF EXISTS `xxl_job_info`;
CREATE TABLE `xxl_job_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job_group` int(11) NOT NULL COMMENT '执行器主键ID',
`job_cron` varchar(128) NOT NULL COMMENT '任务执行CRON',
`job_desc` varchar(255) NOT NULL,
`add_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`author` varchar(64) DEFAULT NULL COMMENT '作者',
`alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件',
`executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略',
`executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
`executor_param` varchar(4000) DEFAULT '' COMMENT '执行器任务参数',
`executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略',
`executor_timeout` int(11) NOT NULL DEFAULT 0 COMMENT '任务执行超时时间,单位秒',
`executor_fail_retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '失败重试次数',
`glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型',
`glue_source` mediumtext DEFAULT NULL COMMENT 'GLUE源代码',
`glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注',
`glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间',
`child_jobid` varchar(255) DEFAULT NULL COMMENT '子任务ID多个逗号分隔',
`trigger_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '调度状态0-停止1-运行',
`trigger_last_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上次调度时间',
`trigger_next_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '下次调度时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=88 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of xxl_job_group
-- ----------------------------
INSERT INTO `xxl_job_group` VALUES (1, 'galaxy-executor', 'GDP', 1, '{{ job_executor_servers }}');
INSERT INTO `xxl_job_group` VALUES (2, 'galaxy-executor', 'TSG_OLAP', 1, '{{ job_executor_servers }}');
-- ----------------------------
-- Records of xxl_job_info
-- ----------------------------
INSERT INTO `xxl_job_info` VALUES (58, 1, '0 0 0 1/1 * ? ', 'set_druid_table_ttl', '2020-07-30 10:34:34', '2023-12-23 11:39:23', 'zhq', '', 'FAILOVER', 'deleteReportAndMetricsDataJobHandler', '{\"defaultMaxDays\":365,\"maxDays\":365}', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-07-30 10:34:34', '', 1, 1704326400000, 1704412800000);
INSERT INTO `xxl_job_info` VALUES (59, 1, '0 0 0 1 * ?', 'clear_druid_table', '2020-07-30 11:32:08', '2022-04-12 02:38:39', 'zhq', '', 'FAILOVER', 'deleteAllReportAndMetricsDataJobHandler', '{\"maxDays\":88,\"defaultMaxDays\":365}', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-07-30 11:32:08', '', 0, 0, 0);
INSERT INTO `xxl_job_info` VALUES (62, 1, '0 0 0 1/1 * ? ', 'set_hos_bucket_ttl', '2020-07-30 11:59:30', '2023-12-23 11:39:23', 'zhq', '', 'FAILOVER', 'deleteFilesJobHandler', '{\"defaultMaxDays\":30,\"maxDays\":365}', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-07-30 11:59:30', '', 1, 1704326400000, 1704412800000);
INSERT INTO `xxl_job_info` VALUES (63, 1, '0 0 0 1 * ?', 'clear_hos_file', '2020-07-30 11:59:43', '2023-10-26 10:43:46', 'zhq', '', 'FAILOVER', 'deleteAllFilesJobHandler', '{\"defaultMaxDays\":30,\"maxDays\":30}', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-07-30 11:59:43', '', 0, 0, 0);
INSERT INTO `xxl_job_info` VALUES (64, 1, '0 0 0 1 * ?', 'clear_clickhouse_table', '2020-07-30 13:47:25', '2022-04-12 02:38:39', 'zhq', '', 'FAILOVER', 'deleteAllTrafficDataJobHandler', '{\"maxDays\":77,\"defaultMaxDays\":30}', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-07-30 13:47:25', '', 0, 0, 0);
INSERT INTO `xxl_job_info` VALUES (65, 1, '0 0 0 1/1 * ? ', 'set_clickhouse_table_ttl', '2020-07-30 13:47:38', '2023-12-23 11:39:23', 'zhq', '', 'FAILOVER', 'deleteTrafficDataJobHandler', '{\"defaultMaxDays\":30,\"maxDays\":30}', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-07-30 13:47:38', '', 1, 1704326400000, 1704412800000);
INSERT INTO `xxl_job_info` VALUES (29, 2, '0 0 4 * * ?', 'get_clickhoue_storage_daily_usage', '2020-03-26 10:58:09', '2021-09-09 11:54:53', 'zhq', '', 'FAILOVER', 'getStorageQuotaJobHandler', '{\"topic\":\"SYS-STORAGE\",\"ckDayGrowth\":\"true\"}', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-03-26 10:58:09', '', 1, 1704254400000, 1704340800000);
INSERT INTO `xxl_job_info` VALUES (36, 2, '0 0/5 * * * ?', 'get_database_storage_quota', '2020-04-07 21:41:20', '2021-09-09 11:54:44', 'zhq', '', 'FAILOVER', 'getStorageQuotaJobHandler', '{\"topic\":\"SYS-STORAGE\",\"ckDayGrowth\":\"false\"}', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2020-04-07 21:41:20', '', 1, 1704338100000, 1704338400000);
INSERT INTO `xxl_job_info` VALUES (86, 2, '0 0 1 * * ?', 'run_druid_segment_compaction', '2021-07-21 14:13:57', '2023-12-12 02:21:05', 'xpf', '', 'FAILOVER', 'druidCompactSegmentJobHandler', '[\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_server_fqdns\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_server_domains\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_client_ips\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_server_ips\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_external_ips\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_internal_ips\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"top_subscribers\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"security_rule_hits\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"monitor_rule_hits\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"proxy_rule_hits\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"application_protocol_stat\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"traffic_general_stat\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"traffic_top_destination_ip_metrics_log\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"service_chaining_rule_hits\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"service_function_status\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"statistics_rule_hits\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"traffic_shaping_rule_hits\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"object_statistics\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"statistics_rule\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\",\r\n \"maxRowsInMemory\": 500000,\r\n \"maxBytesInMemory\": -1\r\n },\r\n \"context\":{\r\n \"druid.indexer.runner.javaOptsArray\": [\"-Xms4g\", \"-Xmx4g\", \"-XX:MaxDirectMemorySize=2g\"]\r\n }\r\n },\r\n {\r\n \"type\": \"compact\",\r\n \"dataSource\": \"sys_storage_log\",\r\n \"tuningConfig\": {\r\n \"type\": \"index_parallel\"\r\n }\r\n }\r\n]', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2021-07-21 14:13:57', '', 1, 1704330000000, 1704416400000);
INSERT INTO `xxl_job_info` VALUES (101, 2, '0 0 0 1/7 * ?', 'run_web_sketch_assessment', '2022-01-27 17:40:42', '2022-02-23 13:34:51', 'galaxy', '', 'FAILOVER', 'httpToStoreJobHandler', '[{\r\n \"url\": \"http://{{ vrrp_instance.default.virtual_ipaddress }}:9999/sql/?option=long_term&resultId=1&query=SELECT server_domain AS name, arrayStringConcat(groupUniqArray(decoded_as),\',\') AS protocol, count(*) AS sessions FROM tsg_galaxy_v3.session_record WHERE recv_time >= toStartOfDay(now()- INTERVAL 7 DAY) AND recv_time < toStartOfDay(now()) AND notEmpty(server_domain) GROUP BY name ORDER BY sessions DESC LIMIT 500000;\",\r\n \"method\": \"get\",\r\n \"requestBody\": {},\r\n \"resultKey\": \"data\",\r\n \"store\": \"all\"\r\n}, {\r\n \"url\": \"http://{{ vrrp_instance.default.virtual_ipaddress }}:9999/sql/?option=long_term&resultId=1&query=SELECT server_domain AS name, arrayStringConcat(groupUniqArray(decoded_as),\',\') AS protocol, count(*) AS sessions FROM tsg_galaxy_v3.session_record WHERE recv_time >= toStartOfDay(now()- INTERVAL 7 DAY) AND recv_time < toStartOfDay(now()) AND notEmpty(server_domain) AND empty(fqdn_category_list) GROUP BY name ORDER BY sessions DESC LIMIT 500000;\",\r\n \"method\": \"get\",\r\n \"requestBody\": {},\r\n \"resultKey\": \"data\",\r\n \"store\": \"uncategorized\"\r\n}]', 'COVER_EARLY', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2022-01-27 17:40:42', '', 1, 1704067200000, 1704672000000);
INSERT INTO `xxl_job_info` VALUES (141, 2, '0 0 2 * * ?', 'set_clickhouse_table_and_field_ttl', '2022-06-07 07:42:38', '2022-06-08 09:28:19', 'wk', '', 'FIRST', 'changeCkTtlJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2022-06-07 07:42:38', '', 1, 1704333600000, 1704420000000);
INSERT INTO `xxl_job_info` VALUES (143, 2, '0 0 0/1 * * ?', 'run_ip_learning', '2022-11-09 10:29:20', '2023-12-26 04:01:24', 'galaxy', '', 'FIRST', '', '', 'SERIAL_EXECUTION', 0, 0, 'GLUE_SHELL', '#!/bin/bash\nsh -c \'cd /opt/schedule-service/iplearning/ && ./start.sh\'', '0001', '2023-12-26 04:01:24', '', 1, 1704337200000, 1704340800000);
INSERT INTO `xxl_job_info` VALUES (145, 2, '0 0 1 * * ?', 'run_dos_baseline', '2022-11-10 06:15:27', '2023-11-13 05:37:41', 'galaxy', '', 'FIRST', '', '', 'SERIAL_EXECUTION', 0, 0, 'GLUE_SHELL', '#!/bin/bash\nsh -c \'cd /opt/schedule-service/dos-baseline && ./start.sh\'', '0000', '2023-11-13 05:37:41', '', 1, 1704330000000, 1704416400000);
INSERT INTO `xxl_job_info` VALUES (155, 2, '0 0 16 1/7 * ?', 'run_geoip_to_mmdb', '2022-12-02 06:56:18', '2023-12-21 09:44:44', 'galaxy', '', 'FAILOVER', 'ipLocateLibraryJobHandler', '{\r\n \"command\": \"docker run --rm --network=host -v {{ deploy_dir }}/schedule-service/mmdb:/mmdb --name perl-mmdb perl:v3.1 sh -c \'cd /mmdb && perl mmdb-perl.pl\' \",\r\n \"path\": \"/opt/schedule-service/mmdb\",\r\n \"knowledgeBaseServer\": \"http://{{ vrrp_instance.default.virtual_ipaddress }}:9999/v1/knowledge_base\",\r\n \"knowledgeBaseList\": [{\"name\": \"ip_builtin\",\"builtin\":1 ,\"kb_id\": \"64af7077-eb9b-4b8f-80cf-2ceebc89bea9\" },\r\n {\"name\": \"ip_user_defined\",\"builtin\":0 ,\"kb_id\": \"004390bc-3135-4a6f-a492-3662ecb9e289\" }]\r\n}', 'DISCARD_LATER', 0, 0, 'BEAN', '#!/bin/bash\nsh -c \'cd /opt/schedule-service/dos-baseline && ./start.sh\'', 'GLUE代码初始化', '2022-12-02 06:56:18', '', 0, 0, 0);
INSERT INTO `xxl_job_info` VALUES (158, 2, '0 0 1 * * ?', 'run_druid_segement_granularity_compact', '2023-02-20 05:59:59', '2023-05-11 03:39:14', 'galaxy', '', 'FAILOVER', 'druidMergeHistoryDataJobHandler', '[\r\n {\r\n \"dataSource\": \"service_function_status\",\r\n \"internalOrNumOfHistory\": \"1\",\r\n \"queryGranularity\": \"PT5M\",\r\n \"segmentGranularity\": \"DAY\"\r\n },\r\n {\r\n \"dataSource\": \"service_chaining_rule_hits\",\r\n \"internalOrNumOfHistory\": \"1\",\r\n \"queryGranularity\": \"PT5M\",\r\n \"segmentGranularity\": \"DAY\"\r\n },\r\n {\r\n \"dataSource\": \"traffic_shaping_rule_hits\",\r\n \"internalOrNumOfHistory\": \"1\",\r\n \"queryGranularity\": \"PT5M\",\r\n \"segmentGranularity\": \"DAY\"\r\n }\r\n]', 'DISCARD_LATER', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2023-02-20 05:59:59', '', 1, 1704330000000, 1704416400000);

View File

@@ -0,0 +1,23 @@
#配置集的配置格式
nacos.config.type=properties
#配置中心地址
nacos.config.server-addr={{ vrrp_instance.default.virtual_ipaddress }}:8848
#命名空间
nacos.config.namespace={{ config_namespace }}
#数据集ID
nacos.config.data-id=galaxy-job-executor.properties
#开启自动刷新
nacos.config.auto-refresh=true
#配置对应的分组
nacos.config.group=Galaxy
#Nacos认证用户
nacos.config.username=nacos
#Nacos认证密码
nacos.config.password=nacos
#开启配置预加载功能
nacos.config.bootstrap.enable=true
#开启Nacos支持日志级别的加载时机
nacos.config.bootstrap.log-enable=true
### log config
logging.config=./config/logback.xml

View File

@@ -0,0 +1,19 @@
version: '3'
services:
galaxy-job-executor:
image: {{ image_name }}:{{ image_tag }}
container_name: galaxy-job-executor
environment:
JAVA_OPTS: "{{ galaxy_job_service.executor_java_opts }}"
ports:
- "8182:8182"
volumes:
- "{{ deploy_dir }}/{{ container_name }}/logs:/logs"
- "{{ deploy_dir }}/{{ container_name }}/data:/data"
- "{{ deploy_dir }}/{{ container_name }}/config:/home/tsg/galaxy/galaxy-job/galaxy-job-executor/config"
- "{{ deploy_dir }}/schedule-service:/opt/schedule-service"
- "/var/run/docker.sock:/var/run/docker.sock"
- "/usr/bin/docker:/usr/bin/docker"
restart: always
network_mode: "host"

View File

@@ -0,0 +1,65 @@
################################静态参数配置(修改后需要重启项目)################################
### web port
server.port = 8185
spring.application.name=galaxy-job-executor
### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false
management.endpoints.web.exposure.include=*
#详细的应用健康信息
management.endpoint.health.show-details=always
management.endpoint.metrics.enabled=true
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.metrics.tags.application=${spring.application.name}
zookeeper.server={{ zookeeper_servers }}
################################动态参数配置(修改后不需要重启项目)################################
##存储配额文件服务器
storge.files.hos-server={{ data_center_name }}|{{ vrrp_instance.oss.virtual_ipaddress }}:9098
storge.files.token={{ hos_token }}
##存储配额查询druid
storge.analytic.server={{ data_center_name }}|{{ vrrp_instance.default.virtual_ipaddress }}:8089
##存储配额查询clickhouse
storge.traffic.server={{ data_center_name }}|{{ vrrp_instance.default.virtual_ipaddress }}:8124
storge.traffic.datasource=tsg_galaxy_v3
storge.traffic.username=ENC(CNpgJlarVTNItkyW6DAQWA==)
storge.traffic.password=ENC(LDEb2OekU7iZWiFw6pUYBSozVKP27r1y)
#删除ttl
storge.traffic.system.parts=system.parts
#存储配额查询
storge.traffic.system.partsclusters=system.parts_cluster
storge.traffic.system.disks=system.disks_cluster
storge.traffic.system.tables=system.tables_cluster
storge.traffic.system.clusters=system.clusters
#删除ttl白名单,多个逗号分隔
storge.files.delete.exclusion=default,assessment_hos_bucket,knowledge_base_hos_bucket
storge.analytic.delete.exclusion=traffic_general_stat
storge.taffic.delete.exclusion=assessment_event_local
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses={{ job_admin_servers }}
### xxl-job, access token
xxl.job.accessToken=
### xxl-job executor registry-address: default use address to registry , otherwise use ip:po
xxl.job.executor.appname=galaxy-executor
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
xxl.job.executor.port=8886
### xxl-job executor log-path
xxl.job.executor.logpath=/data/logs/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30
## http pool config
### max connection number
http.pool.max.connection=500
http.pool.request.timeout=120000
http.pool.response.timeout=300000
http.pool.max.per.route=300
http.pool.connect.timeout=10000
##指定kafka server的地址集群配多个中间逗号隔开
spring.kafka.bootstrap-servers={{ kafka_sink_servers }}
spring.kafka.ssl.enable=true
spring.kafka.ssl.username=ENC(RYN0it9o1vYynI1xlmX/Gw==)
spring.kafka.ssl.pin=ENC(vlb4F5Y3ff0Am/3MMPdIpYjZq8wcGNMd)

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--每100M压缩日志文件-->
<property name="LOG_SIZE" value="100MB"/>
<!--日志文件路径-->
<property name="LOG_PATH" value="/logs"/>
<!--日志文件名称-->
<property name="LOG_FILE_NAME" value="galaxy-job-executor"/>
<!--日志打印等级-->
<property name="LOG_LEVEL" value="error"/>
<!--日志最大的历史30天 -->
<property name="LOG_DAYS" value="30"/>
<!--日志打印格式-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ssZ,UTC} [%thread] %-5level %logger -%msg%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ALL</level>
</filter>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_PATH}/history/${LOG_FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<maxHistory>${LOG_DAYS}</maxHistory>
<maxFileSize>${LOG_SIZE}</maxFileSize>
</rollingPolicy>
</appender>
<root level="${LOG_LEVEL}">
<appender-ref ref="ALL"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>

View File

@@ -0,0 +1,52 @@
#!/bin/bash
config_path_root=$1
nacos_server={{ vrrp_instance.default.virtual_ipaddress }}
tenant="{{ config_namespace }}"
app_name="galaxy-job-service"
shell_result=1
# 推送配置
function push() {
local config_file=$1
local data_id="${config_file##*/}"
local suffix="${config_file##*.}"
[ $suffix == "sql" ] && suffix="text"
[ $suffix == "yml" ] && suffix="yaml"
local nacos_push_url="http://$nacos_server:8848/nacos/v1/cs/configs?username=nacos&password=nacos&tenant=$tenant&group=Galaxy"
local result=$(curl --retry-delay 3 --retry 3 -sw '%{http_code}' -o /dev/null --request POST "$nacos_push_url&dataId=$data_id&appName=$app_name&type=$suffix" --data-urlencode content@"$config_file")
if [[ $result -eq '200' ]]; then
sleep 2
check=$(curl -sw '%{http_code}' -o /dev/null -X GET "$nacos_push_url&dataId=$data_id")
#echo "$check $data_id"
if [[ $check -ne '200' ]]; then
shell_result=0
fi
fi
}
# 获取本地文件
function pushConfig() {
for config_path in $(readlink -f $config_path_root); do
if [ -d $config_path ]; then
for file in $(ls $config_path); do
config_path_file=$config_path/$file
if [ -f $config_path_file ]; then
push $config_path_file
fi
done
fi
if [ -f $config_path ]; then
push $config_path
fi
done
}
pushConfig
echo $shell_result

View File

@@ -0,0 +1,50 @@
#!/bin/bash
set -e
# 数据库连接参数
upgrade_dir=${1:-`pwd`/upgrade-sql}
# 指定当前版本和历史版本
current_version="{{ solution_version }}"
old_version="{{ old_version }}"
# 数据库连接参数
db_hostname="{{ vrrp_instance.default.virtual_ipaddress }}"
db_name="xxl_job"
db_username="root"
db_password="{{ mariadb_default_pin }}"
suffix=".sql"
# 获取更新目录中的所有SQL文件
sql_files=$(find "${upgrade_dir}" -name "*$suffix")
# 标记是否开始执行历史版本的标识
start_execution=false
# 循环处理每个SQL文件
for file in ${sql_files}; do
# 从文件名中提取版本号
filename=$(basename "$file")
version=$(echo "$filename" | grep -oE '[0-9]+(\.[0-9]+)?' | tr -d '.')
current_version="${current_version//./}"
old_version="${old_version//./}"
# 检查是否达到历史版本
if [[ "${version}" -gt "${old_version}" ]]; then
start_execution=true
fi
# 检查是否开始执行历史版本之后的SQL文件
if [[ ${start_execution} = true ]]; then
echo "Executing SQL file: ${file}"
# 执行SQL文件
mysql -u "${db_username}" -p"${db_password}" -h "${db_hostname}" "${db_name}" < "${file}"
echo "Upgrade ${version} successfully"
fi
# 检查是否达到当前版本
if [[ "${version}" -ge "${current_version}" ]]; then
break
fi
done

View File

@@ -0,0 +1,26 @@
software_packages_dir: "{{ role_path }}/../software-packages"
admin_image_name: galaxy-job-admin
executor_image_name: galaxy-job-executor
admin_image_tag: v1.3.220308
executor_image_tag: v1.3.231220
admin_container_name: galaxy-job-admin
executor_container_name: galaxy-job-executor
mariadb_job_database: xxl_job
job_executor_servers: "{% for host in groups['galaxy_job_service'] %}http://{{ host }}:8886/{% if not loop.last %},{% endif %}{% endfor %}"
job_admin_servers: "{% for host in groups['galaxy_job_service'] %}http://{{ host }}:8184/xxl-job-admin{% if not loop.last %},{% endif %}{% endfor %}"
kafka_sink_servers: "{% for host in groups['kafka'] %}{{ host }}:9094{% if not loop.last %},{% endif %}{% endfor %}"
zookeeper_servers: "{% for host in groups['zookeeper'] %}{{ host }}:2181{% if not loop.last %},{% endif %}{% endfor %}"
backup_path: "{{ deploy_dir }}/backup/tsg-olap/{{ old_version }}/"
backup_items:
- config
- docker-compose.yml
- init

View File

@@ -0,0 +1,42 @@
- name: Stop Container
docker_container:
name: '{{ image_name }}'
state: absent
force_kill: true
- name: Remove Image
docker_image:
name: '{{ image_name }}'
tag: '{{ image_tag }}'
state: absent
force_absent: true
- name: Copy Image
copy:
src: 'files/{{ image_name }}-{{ image_tag }}.tar'
dest: '{{ deploy_dir }}/{{ container_name }}'
force: yes
- name: Unarchive Image
unarchive:
src: 'files/{{ image_name }}-{{ image_tag }}.tar.gz'
dest: '{{ deploy_dir }}/{{ container_name }}'
force: yes
- name: Load Image
docker_image:
name: '{{ image_name }}'
tag: '{{ image_tag }}'
load_path: '{{ deploy_dir }}/{{ container_name }}/{{ image_name }}-{{ image_tag }}.tar'
source: load
force_tag: yes
force_source: yes
timeout: 300
- name: Start Container
docker_compose:
project_src: '{{ deploy_dir }}/{{ container_name }}'
- name: Start Nginx
shell: 'docker restart galaxy-gateway-nginx'

View File

@@ -0,0 +1,25 @@
- name: Check if backup directory exists
stat:
path: "{{ backup_path }}"
register: exist_status
- name: Backup directories
block:
- name: Creat backup directory
file:
state: directory
path: "{{ backup_path }}"
- name: Copying directories to backup
copy:
src: "{{ deploy_dir }}/{{ container_name }}/{{ item }}"
dest: "{{ backup_path }}"
remote_src: true
loop: "{{ backup_items }}"
rescue:
- name: Remove backup directory on failure
file:
path: "{{ backup_path }}"
state: absent
when: exist_status.stat.exists == false

View File

@@ -0,0 +1,24 @@
- name: Wait for galaxy-qgw-service port 8183 to become available
wait_for:
host: "{{ inventory_hostname }}"
port: 8183
state: started
timeout: 120
- name: Request component status
uri:
url: "http://{{ inventory_hostname }}:8183/v1/monitor/component_status"
body_format: "json"
status_code: [200,503]
register: response_health
- name: Checking component status
debug:
msg: "{{ response_health.json.components | dict2items | json_query(query) }}"
vars:
query: "[?value.status == 'DOWN']"
failed_when: response_health.json.status == "DOWN"
- name: Checking metadata
uri:
url: "http://{{ inventory_hostname }}:8183/v1/troubleshooting/sanity?test=schema_consistency"

View File

@@ -0,0 +1,47 @@
- name: Creating config directory
file:
state: directory
path: "{{ deploy_dir }}/{{ container_name }}/config"
- name: Copying config template
template:
src: "{{ item.src }}"
dest: "{{ deploy_dir }}/{{ container_name }}/{{ item.dest }}"
force: yes
loop:
- {src: 'docker-compose.yml.j2', dest: 'docker-compose.yml'}
- {src: 'application.yml.j2', dest: 'config/application.yml'}
- {src: 'hazelcast.yaml.j2', dest: 'config/hazelcast.yaml'}
notify:
- Start Container
- name: Copying config files
copy:
src: "files/config/"
dest: "{{ deploy_dir }}/{{ container_name }}/config/"
force: yes
notify:
- Start Container
- name: Copying image to {{ deploy_dir }}/{{ container_name }}/{{ image_name }}-{{ image_tag }}.tar
copy:
src: '{{ software_packages_dir }}/{{ image_name }}-{{ image_tag }}.tar'
dest: '{{ deploy_dir }}/{{ container_name }}/'
force: true
notify:
- Load Image
- Start Container
- name: Copying nginx config and restart nginx
template:
src: "{{ container_name }}.conf.j2"
dest: "{{ deploy_dir }}/galaxy-gateway-nginx/conf/includes/{{ container_name }}.conf"
force: yes
notify:
- Start Nginx
delegate_to: "{{ item }}"
run_once: true
loop: "{{ groups.loadbalancer[:2] }}"
- meta: flush_handlers

View File

@@ -0,0 +1,60 @@
- name: Check if directory exists
stat:
path: "{{ deploy_dir }}/{{ container_name }}/init"
register: directory_stat
ignore_errors: true
- name: Remove files and directories
file:
path: "{{ deploy_dir }}/{{ container_name }}/init"
state: absent
when: directory_stat.stat.exists
- name: Creating init directory
file:
state: directory
path: "{{ deploy_dir }}/{{ container_name }}/init"
- name: Copying {{ container_name }} init template
template:
src: "{{ item.src }}.j2"
dest: "{{ deploy_dir }}/{{ container_name }}/init/{{ item.src }}"
mode: "{{ item.mode }}"
force: true
with_items:
- { src: "push_config.sh", mode: "0755" }
- { src: "galaxy-qgw-service.yml", mode: "0644" }
- { src: "create_mariadb_tables.sh", mode: "0755" }
- name: Pushing config to nacos
shell: 'cd {{ deploy_dir }}/{{ item.src }}/init && sh push_config.sh {{ item.conf }}'
register: post_result
until: post_result.stdout == '1'
retries: 3
delay: 3
failed_when: post_result.stdout != '1'
loop:
- { src: "{{ container_name }}" , conf: "galaxy-qgw-service.yml" }
run_once: true
- name: Copying init files
copy:
src: "files/{{ item }}"
dest: "{{ deploy_dir }}/{{ container_name }}/init/"
force: yes
loop:
- 'data'
- 'schema'
- 'schema-upgrade-v3.1.jar'
- name: Create database
shell: cd "{{ deploy_dir }}/{{ container_name }}/init"&& source /etc/profile && sh create_mariadb_tables.sh
run_once: true
- name: Push schema to nacos
shell: cd "{{ deploy_dir }}/{{ container_name }}/init"&& source /etc/profile && java -jar schema-upgrade-v3.1.jar schema/ {{ vrrp_instance.default.virtual_ipaddress }} {{ config_namespace }}
run_once: true
- name: Push schema to nacos
shell: cd "{{ deploy_dir }}/{{ container_name }}/init"&& source /etc/profile && sh push_config.sh galaxy-qgw-service.yml
run_once: true

View File

@@ -0,0 +1,17 @@
- block:
- include: uninstall.yml
- include: init.yml
- include: deploy.yml
- include: check.yml
when: operation == 'install'
- block:
- include: check.yml
- include: backup.yml
- include: upgrade.yml
- include: check.yml
when: operation == 'upgrade'
- block:
- include: uninstall.yml
when: operation == 'uninstall'

View File

@@ -0,0 +1,18 @@
- name: Stopping and removing {{ container_name }} container
docker_container:
name: '{{ container_name }}'
state: absent
force_kill: true
- name: Removing old {{ image_name }} image
docker_image:
name: '{{ image_name }}'
tag: '{{ image_tag }}'
state: absent
force_absent: true
- name: Ansible delete old {{ deploy_dir }}/{{ container_name }}
file:
path: '{{ deploy_dir }}/{{ container_name }}'
state: absent

View File

@@ -0,0 +1,95 @@
- name: Check if directory exists
stat:
path: "{{ deploy_dir }}/{{ container_name }}/init"
register: directory_stat
ignore_errors: true
- name: Remove files and directories
file:
path: "{{ deploy_dir }}/{{ container_name }}/init"
state: absent
when: directory_stat.stat.exists
- name: Creating init directory
file:
state: directory
path: "{{ deploy_dir }}/{{ container_name }}/init"
- name: Copying {{ container_name }} init template
template:
src: "{{ item.src }}"
dest: "{{ deploy_dir }}/{{ container_name }}/init/{{ item.dest }}"
mode: 0755
force: true
with_items:
- { src: "push_config.sh.j2", dest: "push_config.sh" }
- { src: "create_mariadb_tables.sh.j2", dest: "create_mariadb_tables.sh" }
- { src: "merge-config.sh.j2", dest: "merge-config.sh" }
- { src: 'keys.txt', dest: 'keys.txt'}
- name: Copying init files
copy:
src: "files/{{ item }}"
dest: "{{ deploy_dir }}/{{ container_name }}/init/"
force: yes
loop:
- 'data'
- 'schema'
- 'schema-upgrade-v3.1.jar'
- name: Copying config files
copy:
src: "files/config/"
dest: "{{ deploy_dir }}/{{ container_name }}/config/"
force: yes
notify:
- Start Container
- name: Copying config template
template:
src: "{{ item.src }}"
dest: "{{ deploy_dir }}/{{ container_name }}/{{ item.dest }}"
force: yes
loop:
- {src: 'docker-compose.yml.j2', dest: 'init/docker-compose.yml.j2'}
- {src: "galaxy-qgw-service.yml.j2", dest: "init/galaxy-qgw-service.yml.j2"}
- {src: 'application.yml.j2', dest: 'config/application.yml'}
- {src: 'hazelcast.yaml.j2', dest: 'config/hazelcast.yaml'}
notify:
- Start Container
- name: Merge online config
shell: cd {{ deploy_dir }}/{{ container_name }}/init && sh merge-config.sh galaxy-qgw-service.yml galaxy-qgw-service.yml.j2 nacos
- name: Merge online docker-compose.yml
shell: cd {{ deploy_dir }}/{{ container_name }}/init && sh merge-config.sh {{ deploy_dir }}/{{ container_name }}/docker-compose.yml docker-compose.yml.j2
- name: Create database
shell: cd {{ deploy_dir }}/{{ container_name }}/init && source /etc/profile && sh create_mariadb_tables.sh
run_once: true
- name: Push schema to nacos
shell: cd {{ deploy_dir }}/{{ container_name }}/init && source /etc/profile && java -jar schema-upgrade-v3.1.jar schema/ {{ vrrp_instance.default.virtual_ipaddress }} {{ config_namespace }}
run_once: true
- name: Push config to nacos
shell: 'cd {{ deploy_dir }}/{{ item.src }}/init && source /etc/profile && sh push_config.sh {{ item.conf }}'
register: post_result
until: post_result.stdout == '1'
retries: 3
delay: 3
failed_when: post_result.stdout != '1'
loop:
- { src: "{{ container_name }}" , conf: "galaxy-qgw-service.yml" }
run_once: true
- name: Copying image to {{ deploy_dir }}/{{ container_name }}/{{ image_name }}-{{ image_tag }}.tar
copy:
src: '{{ software_packages_dir }}/{{ image_name }}-{{ image_tag }}.tar'
dest: '{{ deploy_dir }}/{{ container_name }}/'
force: true
notify:
- Load Image
- Start Container
- meta: flush_handlers

View File

@@ -0,0 +1,22 @@
nacos:
config:
type: yaml #配置集的配置格式
server-addr: {{ vrrp_instance.default.virtual_ipaddress }}:8848 #配置中心地址
namespace: {{ config_namespace }} #命名空间
data-id: galaxy-qgw-service.yml # 数据集ID
auto-refresh: true #开启自动刷新
group: Galaxy #配置对应的分组
username: nacos #Nacos认证用户
password: nacos
bootstrap:
enable: true #开启配置预加载功能
log:
enable: true #开启Nacos支持日志级别的加载时机
spring:
servlet:
multipart:
max-file-size: 5368709120
max-request-size: 5368709120
logging:
config: ./config/log4j2.xml

View File

@@ -0,0 +1,4 @@
#!/bin/bash
mysql -uroot -p{{ mariadb_default_pin }} -P3306 -h{{ inventory_hostname }} -e "create database if not exists {{ mariadb_common_database }} default character set utf8mb4 collate utf8mb4_general_ci;"

View File

@@ -0,0 +1,14 @@
version: "3"
services:
galaxy-qgw-service:
image: {{ image_name }}:{{ image_tag }}
environment:
JAVA_OPTS: "{{ galaxy_qgw_service.java_opts }}"
container_name: {{ container_name }}
ports:
- "8183:8183"
volumes:
- "{{ deploy_dir }}/{{ container_name }}/logs:/home/tsg/galaxy/galaxy-qgw-service/logs"
- "{{ deploy_dir }}/{{ container_name }}/config:/home/tsg/galaxy/galaxy-qgw-service/config"
restart: always
network_mode: "host"

View File

@@ -0,0 +1,24 @@
upstream qgwService {
{% for host in groups['galaxy_qgw_service'] %}
server {{ host }}:8183;
{% endfor %}
}
server {
listen 9999;
server_name localhost;
location / {
proxy_pass http://qgwService; #请求转发到查询引擎集群
proxy_http_version 1.1; #指定使用http1.1版本
proxy_read_timeout 21600; #等待后端服务响应的最大时长
gzip on; #开启压缩
gzip_comp_level 6; #压缩级别
gzip_min_length 1k; #启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_types application/json; #压缩文件类型
gzip_vary on; #是否传输gzip压缩标志
}
}

View File

@@ -0,0 +1,175 @@
##############静态参数配置(修改后需要重启项目)##############
## 服务配置
server:
port: 8183
## 监控参数
management:
metrics:
tags:
application: ${project.name}
endpoint:
health:
show-details: always
shutdown:
enabled: true
health:
redis:
enabled: false
db:
enabled: false
endpoints:
web:
exposure:
include: '*'
exclude: env,auditevents,beans,conditions,info
base-path: /v1/monitor
path-mapping:
health: /component_status
#MySql configuration
spring:
sleuth:
enabled: true
traceId128: true
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{{ vrrp_instance.default.virtual_ipaddress }}:3306/tsg_olap?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC&failOverReadOnly=false&connectTimeout=10000&socketTimeout=30000
username: ENC(63aTpwv2vH0vPikW+3Jjig==)
password: ENC(LDEb2OekU7iZWiFw6pUYBSozVKP27r1y)
flyway:
enabled: true # 是否开启
encoding: UTF-8 # 编码
sql-migration-prefix: V # 脚本文件的前缀默认为V
sql-migration-separator: __ # 双下划线
baseline-on-migrate: true # 连接数据库中存在表时设置为true
check-location: false
locations: filesystem:./config/flyway # 脚本路径
clean-disabled: true # flyway 的 clean 命令会删除指定 schema 下的所有 table, 生产务必禁掉。这个默认值是 false 理论上作为默认配置是不科学的
validate-on-migrate: true # 执行迁移时是否自动调用验证 当你的 版本不符合逻辑 比如 你先执行了 DML 而没有 对应的DDL 会抛出异常
placeholder-replacement: false # 不做取值替换 默认替换为 ${} 初始化sql中有sql语句存在freemarker替换所以禁用此项
## Hbase configuration
hbase:
zookeeperQuorum: {{ zookeeper_noport }}
zookeeperZnodeParent: /hbase
rpcTimeout: 60000
report:
dbname: tsg_galaxy
tableName: saved_query_result
columnFamily: response
columnName: result
##############动态参数配置(修改后不需要重启项目)##############
## 项目参数
project:
name: galaxy-qgw-service-nacos
description: 统一数据查询网关
version: 1.1
groupId: com.mesalab
artifactId: galaxy-qgw-service
basedir:
corePackage: com.mesalab.common
servicePackage: com.mesalab.qgw
author:
name: darnell
url:
email:
## ClickhHouse configuration
clickhouse:
url: http://{{ vrrp_instance.default.virtual_ipaddress }}:8123
dbname: tsg_galaxy_v3
enableApproximateOptimizer: true
realTimeAccount:
username: ENC(hYFEuRJJWd93TZg5VbK/o3OXUmxI/irv)
pin: ENC(qUA355VopKSx6kwwwXZwqWWEYSu76Slz)
socketTimeOut: 120000
longTermAccount:
username: ENC(z3gVlaa7Q4IMDqtUgvhwoJzKAkH1Uznc)
pin: ENC(LDEb2OekU7iZWiFw6pUYBSozVKP27r1y)
socketTimeOut: 21700000
## Druid configuration
druid:
url: {{ vrrp_instance.default.virtual_ipaddress }}:8089/druid/v2/sql
dbname: druid
socketTimeOut: 120000
## xxl-job-admin configuration
xxl-job-admin:
url: http://{{ vrrp_instance.default.virtual_ipaddress }}:8181/xxl-job-admin
userName: ENC(v8NKKlLWitI7vGhuGYorRQ==)
pin: ENC(xTCafSByYA6SyvhUJ6vrh2VSXuZAVK/O)
## ArangoDB configuration
arango:
server: http://{{ groups.arangodb[0] }}:8529
database: tsg_galaxy_v3
username: ENC(63aTpwv2vH0vPikW+3Jjig==)
pin: ENC(PBdMaxfC3u+HMzjjij2tyuJWeooSuZNW)
jwturl: ${arango.server}/_db/${arango.database}/_open/auth
queryurl: ${arango.server}/_db/${arango.database}/_api/cursor
maxrows: 10000
socketTimeOut: 300000
## hos cfg
hos:
uri: http://{{ vrrp_instance.oss.virtual_ipaddress }}:9098/hos
bucket: knowledge_base_bucket
token: {{ hos_token }}
multiUploadStartSize: 5368709120
multiUploadPartSize: 10485760
## Engine、Service configuration
engine:
maxCacheNum: 1048575
defaultResultNum: 100000
sampleDataPeriod: 1800
service:
entity:
activeClientIP: 10000
topServerIP:
TCPBySession: 100000
TCPByUniqClientIP: 100000
UDPBySession: 100000
UDPByUniqClientIP: 40000
topSNI:
defaultSize: 30000
dataset: 2000000
gtpc:
defaultSize: 100000
## knowledge value 格式 name:版本
knowledge:
corn: 0 0 */1 * * ?
ipLocation:
userDefined: 004390bc-3135-4a6f-a492-3662ecb9e289_latest
builtIn: 64af7077-eb9b-4b8f-80cf-2ceebc89bea9_latest
asn: f9f6bc91-2142-4673-8249-e097c00fe1ea_latest
## http pool config
http:
pool:
connect:
timeout: 30000
max:
connection: 500
per:
route: 200
request:
timeout: 30000
response:
timeout: 120000
## job cfg
job:
timeSlicing:
enabled: true
interval: 1800 #单位: Second
longPolling:
enabled: true
interactive:
timeout: 10000
response:
timeout: 3000
execution:
timeout: 300000
pool:
corePoolSize: 20
maxPoolSize: 30
queueCapacity: 10
## task cfg
task:
pool:
corePoolSize: 8
maxPoolSize: 16
queueCapacity: 1000

View File

@@ -0,0 +1,16 @@
hazelcast:
cluster-name: qgw-cluster
network:
join:
multicast:
enabled: false
tcp-ip:
enabled: true
member-list:
{% for host in groups['galaxy_qgw_service'] %}
- {{ host }}
{% endfor %}
map:
adHocCache:
time-to-live-seconds: 120

View File

@@ -0,0 +1 @@
services.galaxy-qgw-service.environment.JAVA_OPTS

View File

@@ -0,0 +1,83 @@
#!/bin/bash
set -e
host="{{ vrrp_instance.default.virtual_ipaddress }}"
tenant="{{ config_namespace }}"
group_id="Galaxy"
app_name=""
username="nacos"
password="nacos"
online_file=$1
output_file=$1
template_file=$2
online_file=$1
output_file=$1
template_file=$2
[[ -z $1 || -z $2 ]] && echo "Missing input file !" && exit 1
function format_file {
local file="$1"
echo "format "$file
if [ -f "$file" ]; then
cat "$file" | tr -d "\r" >"$file"_new
mv "$file"_new $file
fi
}
function download_nacos_config() {
local data_id=$online_file
config_url="http://$host:8848/nacos/v1/cs/configs?dataId=$data_id&group=$group_id&appName=$app_name&username=$username&password=$password&tenant=$tenant"
online_file=nacos-"$data_id"
curl -s -o $online_file $config_url
format_file $online_file
}
function merge_yml_config() {
grep -v '^$' keys.txt | while IFS= read -r key; do
# 使用yq命令读取YAML文件中的键值
value=$(yq eval ".${key}" "$online_file")
if [[ -n $value && "$value" != "null" ]]; then
yq eval ".${key} = \"${value}\"" -i $template_file
echo "upgrade "$(yq eval ".${key}" $template_file)
fi
done
rm -r "$online_file"
mv $template_file $output_file
echo -e "\033[32mmerge success\033[0m"
}
function merge_properties_config() {
grep -v '^$' keys.txt | while IFS= read -r key; do
value=$(grep -E "^[[:blank:]]*${key}[[:blank:]]*=" "$online_file" | cut -d'=' -f1 --complement)
if [[ -n $value && "$value" != "null" ]]; then
sed -i "s/^[[:blank:]]*${key}[[:blank:]]*=\(.*\)$/${key}=$value/" $template_file
echo "upgrade "$(grep -E "^[[:blank:]]*${key}[[:blank:]]*=" "$template_file")
fi
done
rm -r "$online_file"
mv $template_file $output_file
echo -e "\033[32mmerge success\033[0m"
}
[[ $3 == 'nacos' ]] && download_nacos_config
suffix="${online_file##*.}"
case $suffix in
yaml | yml)
merge_yml_config
;;
properties)
merge_properties_config
;;
esac

View File

@@ -0,0 +1,52 @@
#!/bin/bash
config_path_root=$1
nacos_server={{ vrrp_instance.default.virtual_ipaddress }}
tenant="{{ config_namespace }}"
app_name="{{ container_name }}"
shell_result=1
# 推送配置
function push() {
local config_file=$1
local data_id="${config_file##*/}"
local suffix="${config_file##*.}"
[ $suffix == "sql" ] && suffix="text"
[ $suffix == "yml" ] && suffix="yaml"
local nacos_push_url="http://$nacos_server:8848/nacos/v1/cs/configs?username=nacos&password=nacos&tenant=$tenant&group=Galaxy"
local result=$(curl --retry-delay 3 --retry 3 -sw '%{http_code}' -o /dev/null --request POST "$nacos_push_url&dataId=$data_id&appName=$app_name&type=$suffix" --data-urlencode content@"$config_file")
if [[ $result -eq '200' ]]; then
sleep 2
check=$(curl -sw '%{http_code}' -o /dev/null -X GET "$nacos_push_url&dataId=$data_id")
#echo "$check $data_id"
if [[ $check -ne '200' ]]; then
shell_result=0
fi
fi
}
# 获取本地文件
function pushConfig() {
for config_path in $(readlink -f $config_path_root); do
if [ -d $config_path ]; then
for file in $(ls $config_path); do
config_path_file=$config_path/$file
if [ -f $config_path_file ]; then
push $config_path_file
fi
done
fi
if [ -f $config_path ]; then
push $config_path
fi
done
}
pushConfig
echo $shell_result

View File

@@ -0,0 +1,87 @@
#!/bin/bash
COMMON_PATH={{ deploy_dir }}/{{ qgw_soft_home_path }}
function push_knowledge_file(){
FILE_NAME=$1
FILE_PATH=$2
TYPE=$3
FORMAT=$4
curl_result=$(curl -s --retry-delay 3 --retry 3 --location --request POST 'http://{{ vrrp_instance.default.virtual_ipaddress }}:9999/knowledge_base/v1' --form 'file=@"'$FILE_PATH'/'$FILE_NAME'.'$FORMAT'"' --form 'name='$FILE_NAME'' --form 'format='$FORMAT'' --form 'type='$TYPE'' | jq '.status')
if [[ $curl_result -ne '200' ]];then
echo 0
echo "The $FILE_NAME.$FORMAT upload to the knowledge base failed."
exit 1
fi
}
function push_knowledge_csv(){
ID=$1
NAME=$2
TYPE=$3
curl_result=$(curl -s --location --request POST 'http://{{ vrrp_instance.default.virtual_ipaddress }}:9999/knowledge_base/v1' \
--form 'file=@"./data/'$NAME'.csv"' --form 'name='$NAME'' --form 'format=csv' --form 'type='$TYPE'' --form 'id='$ID'' | jq '.status')
if [[ $curl_result -ne '200' ]];then
echo 0
echo "The $FILE_NAME.$FORMAT upload to the knowledge base failed."
exit 1
fi
}
function push_knowledge_mmdb(){
ID=$1
NAME=$2
TYPE=$3
curl_result=$(curl -s --location --request POST 'http://{{ vrrp_instance.default.virtual_ipaddress }}:9999/knowledge_base/v1' \
--form 'file=@"./data/'$TYPE'.mmdb"' --form 'name='$NAME'' --form 'format=mmdb' --form 'type='$TYPE'' --form 'id='$ID'' | jq '.status')
if [[ $curl_result -ne '200' ]];then
echo 0
echo "The $FILE_NAME.$FORMAT upload to the knowledge base failed."
exit 1
fi
}
function pushConfig(){
{% if project == "tsg" %}
push_knowledge_file asn_v4 $COMMON_PATH/data asn mmdb
push_knowledge_file asn_v6 $COMMON_PATH/data asn mmdb
push_knowledge_file ip_v4_built_in $COMMON_PATH/data ip_location mmdb
push_knowledge_file ip_v4_user_defined $COMMON_PATH/data ip_location mmdb
push_knowledge_file ip_v6_built_in $COMMON_PATH/data ip_location mmdb
push_knowledge_file ip_v6_user_defined $COMMON_PATH/data ip_location mmdb
{% endif %}
{% if project == "cn" %}
push_knowledge_csv 3 cn_dns_server_info_built_in cn_dns_server_info_built_in
push_knowledge_csv 4 cn_fqdn_icp_built_in cn_fqdn_icp_built_in
push_knowledge_csv 5 cn_fqdn_category_built_in cn_fqdn_category_built_in
push_knowledge_csv 6 cn_fqdn_who_is_built_in cn_fqdn_who_is_built_in
push_knowledge_csv 7 cn_ioc_malware cn_ioc_malware
push_knowledge_csv 8 cn_ioc_darkweb cn_ioc_darkweb
push_knowledge_csv 9 cn_app_category_built_in cn_app_category_built_in
push_knowledge_csv 10 cn_psiphon3_ip cn_psiphon3_ip
push_knowledge_csv 11 cn_idc_renter_built_in cn_idc_renter_built_in
push_knowledge_csv 12 cn_internal_ip_built_in cn_internal_ip_built_in
push_knowledge_csv 13 cn_link_direction_built_in cn_link_direction_built_in
push_knowledge_mmdb 16266e3e2aff061d cn_ip_location_built_in cn_ipv4_location_built_in
push_knowledge_mmdb f8e1f4021a069b7d cn_ip_location_built_in cn_ipv6_location_built_in
push_knowledge_mmdb 15a614c6f12f1ad5 cn_ip_asn_built_in cn_ipv4_asn_built_in
push_knowledge_mmdb f4b2ed071a57b35c cn_ip_asn_built_in cn_ipv6_asn_built_in
{% endif %}
}
pushConfig
echo 1

Some files were not shown because too many files have changed in this diff Show More