**Galaxy NTC 集成文档**

## 1.安装列表
| 应用安装 | 进程名称 | 依赖 | 备注 |
| ---------------- | ---------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 报表统计服务 | galaxy-stat- service | 1.clickhouse-1(大数据)
2.clickhouse-2(自建)
3. mariadb
4.influxdb 统计链接数 | 离线报表统计程序,包括统计前段infuxdb输出的新建与关闭连接数 |
| 配置日志服务 | galaxy-service | 1.redis 配置线
2.minio 配置
3.clickhouse 日志查询 | 核心应用,接收配置、原始日志查询、统计报表查询 |
| Storm应用 | jar | 数据加载、实时统计 | 拓扑程序,部署到storm集群中 |
| 流量格式转换服务 | galaxy-traffic-service | 1. 配置kafka环境 2.mariadb\| clickhouse环境 | 负责解析总控telgraf出的5分钟流量汇聚结果 |
| 文件同步服务 | galaxy-fsync-service | | 文件搬运工,负责将minio&redis现场文件输出到bigdata平台中(无对接,可不部署) |
| 关键字转URL服务 | galaxy-etl-service | | 不部署 |
| 大屏推送服务 | galaxy-push-service | | 大屏推送服务(若无输出对接,可不部署) |
## 2.初始化脚本
| 数据类型 | 所属组件 | |
| -------------------- | ---------- | ---- |
| kafka topic列表 | kafka | |
| clickhouse表语句 | clickhouse | |
| 界面同步数据字典文件 | mariadb | |
| 服务数据库文件 | mariadb | |
## 3.数据初始化
### kafka 初始化
1. 登录任意一台所属kafka机器,进入如下目录
cd /home/ceiec/kafka_2.11-1.0.0/bin
2. 初始化topic
拷贝附件 kafka-topic.txt 执行即可
### clickhouse初始化
1. 登录clickhouse连接终端 dbeave 建库
CREATE database IF NOT EXISTS k18_galaxy_service ON CLUSTER ck_cluster;
CREATE database IF NOT EXISTS k18_ods ON CLUSTER ck_cluster;
2. 终端工具下执行如下语句
Clickhouse-ntc.txt
### 同步界面数据字典(mariadb)
> 注意:mariadb 需要开启 federated 引擎,终端下执行
install plugin federated soname 'ha_federated.so';
1.统一替换(黑色字体)sql文件引用的数据库源(界面库)
CONNECTION='mysql://**root:111111@192.168.10.204:3306/gwall_dev**/'
2. 终端或命令行下导入 ui-structure.sql 文件
### 综合业务服务数据库初始化(mariadb)
打开mariadb 终端工具,依次执行如下:
1. 导入 galaxy-structure.sql 文件
2. 导入 galaxy-data.sql 文件
## 4.应用组件安装
### galaxy-service 安装
### galaxy-traffic-service安装
1. 将安装galaxy-traffic-service.tar.gz 包拷贝任意目录下
执行./installGalaxyTraffic.sh
2. 修改配置文件 application.properties
* Kafka 配置
```
kafka.consumer.servers=10.4.34.10:9092,10.4.34.11:9092,10.4.34.12:9092,10.4.34.13:9092,10.4.34.14:9092,10.4.34.15:9092,10.4.34.16:9092,10.4.34.17:9092,10.4.34.18:9092,10.4.34.19:9092
kafka.consumer.enable.auto.commit=true
kafka.consumer.session.timeout=6000
kafka.consumer.auto.commit.interval=100
kafka.consumer.auto.offset.reset=latest
kafka.consumer.topic=NTC-NETWORK-TRAFFIC-STAT
kafka.consumer.group.id=CONSUMER-GALAXY-TRAFFIC-SERVICE-2019-07-01
```
* mariadb配置
```
spring.datasource.druid.mariaDB.url=jdbc:mariadb://10.0.4.9:3306/galaxy-service
spring.datasource.druid.mariaDB.username=galaxy
spring.datasource.druid.mariaDB.password=ENC(N80MNMCGSZ9wD5UGRxUb2EzOhlMSZueT)
```
> 注意:password为加密,可使用
>
> java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="数据库的明文密码" password=f8car algorithm=PBEWithMD5AndDES
* clickhouse 配置
```
spring.datasource.druid.clickhouseDB.url=jdbc:clickhouse://10.0.8.241:8010/k18_galaxy_service?socket_timeout=60000
spring.datasource.druid.clickhouseDB.username=default
spring.datasource.druid.clickhouseDB.password=ceiec2018
```
* 存储库切换配置
选择将流量统计结果存储到 mariadb 或 clickhouse
```
db.switch=clickhouseDB
```
3. 重启应用
./galaxy-traffic.sh stop
./galaxy-traffic.sh start
4. 查看应用日志
/home/ceiec/galaxy-traffic-service/logs/galaxy-traffic-service.log
### galaxy-stat-service安装
1. 将安装galaxy-stat-service.tar.gz 包拷贝任意目录下
执行./installGalaxyStat.sh
2. 修改配置文件 application.properties
* mariadb配置
```
multiple.datasource.galaxy-mariaDB.url=jdbc:mariadb://10.0.4.9/galaxy-service
multiple.datasource.galaxy-mariaDB.username=galaxy
multiple.datasource.galaxy-mariaDB.password=ENC(6Bkc8oDrrZ1lxYtGLYOgWBQu0XMtA5Za)
multiple.datasource.galaxy-mariaDB.type=com.alibaba.druid.pool.DruidDataSource
multiple.datasource.galaxy-mariaDB.driver-class-name=org.mariadb.jdbc.Driver
```
> 注意:password为加密,可使用
>
> java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="数据库明文密码" password=EbfYkitulv73I2p0mXI50JMXoaxZTKJ7 algorithm=PBEWithMD5AndDES
* Clickhouse-1 环境
```
multiple.datasource.galaxy-clickhouse.url=jdbc:clickhouse://clickhouse-read-ys.com:80/k18_ods?socket_timeout=60000
multiple.datasource.galaxy-clickhouse.username=wall
multiple.datasource.galaxy-clickhouse.password=k18
```
* clickhouse-2 环境
```
multiple.datasource.galaxy-clickhouse2.url=jdbc:clickhouse://10.0.8.241:8010/k18_galaxy_service?socket_timeout=60000
multiple.datasource.galaxy-clickhouse2.username=default
multiple.datasource.galaxy-clickhouse2.password=ceiec2018
```
* influxdb 环境
> 分两地,若部署一地,地址可相同
```
http.astana.url=10.0.5.19:8086/query?db=ntc_stat
http.alamty.url=10.0.5.15:8086/query?db=ntc_stat
```
* 重启应用
./galaxy-stat.sh stop
./galaxy-stat.sh start
* 查看应用日志
/home/ceiec/galaxy-stat-service/logs/galaxy-stat-service.log
### 实时统计topology部署
1. 配置文件脚本程序统一在/home/ceiec/topology 目录下的子文件夹内(文件夹名称对应的任务大类)
| 文件夹名称 | 功能 | 任务名称 |
| ----------------------| -----------------| ---------------|
| log-stream-address | AAA写Redis | RADIUS-AAA |
| log-stream-completion | 原始日志补全 | 以-FW结尾 |
| log-stream-stat | 配置日志统计 | 以-RC结尾 |
| log-stream-stat/uv/app| APP唯一用户量 | APP-ID-UV-COUNT|
| log-stream-stat/uv/web| Website唯一用户量| WEB-ID-UV-COUNT|
2. log-stream-address
* 修改address_routine.properties配置文件
```
#kafka地址
bootstrap.servers=10.4.34.10:9092,10.4.34.11:9092
#从kafka哪里开始读:earliest/latest
auto.offset.reset=latest
#tick时钟频率
topology.tick.tuple.freq.secs=5
#redis过期时间
expiration.time=604800
```
* 修改kafka_topic.properties配置文件
```
#kafka topic名称
kafka.topic=NTC-COLLECT-RADIUS-LOG
#消费组名
group.id=RADIUS-AAA
#storm任务的worker数
topology.workers=2
#spout的并行度
spout.parallelism=10
#bolt的并行度
format.bolt.parallelism=10
```
* 启动停止
```
/home/ceiec/topology/log-stream-address 目录下
使用./start.sh 启动
使用./stop.sh 停止
```
3. log-stream-completion
```
此程序为原始日志补全程序有两个可选输出
1:输出到第三方kafka。
2:输出到clickhouse中。
```
* influxdb 环境
> 分两地,若部署一地,地址可相同
```
修改 writeflow__config.properties 中的
#influx地址
influx.ip=http://10.0.5.19:8086
#influx.ip=http://10.0.5.16:8086
#influx用户名
influx.username=admin
#influx密码
influx.password=admin
```
* 输出到第三方kafka
```
根据接收的topic功能不同修改的位置不同,修改的文件为writeflow__config.properties
1:接入kafka地址 bootstrap.servers=159.226.16.90:9092,159.226.16.96:9092,159.226.16.98:9092
2:第三方kafka地址分为 原始日志/泛收日志
当向阿斯塔纳第三方写入原始日志则配置文件将注释为 音视频kafka地址 音视频OSS地址 原始 原始OSS地址 10.4段的取消注释,泛收部分全部注释
当向阿拉木图第三方写入原始日志则配置文件将注释为 音视频kafka地址 音视频OSS地址 原始 原始OSS地址 10.3段的取消注释,泛收部分全部注释
当向阿斯塔纳第三方写入泛收日志则配置文件将注释为 泛收 10.4段的取消注释 原始部分全部注释
当向阿斯塔纳第三方写入泛收日志则配置文件将注释为 泛收 10.3段的取消注释 原始部分全部注释
3:启动方式
配置好的配置文件在/home/ceiec/topology/log-stream-completion/config/AstanaFlowWrite|AlmatyFlowWrite/mm|ntc|collect
分别为阿斯塔纳|阿拉木图的音视频|原始日志|泛收日志
启动例如: ./startall config/AstanaFlowWrite/mm/
```
* 输出到Clickhouse中
```
1:修改writeflow__config.properties配置文件
接入kafka地址 bootstrap.servers=159.226.16.90:9092,159.226.16.96:9092,159.226.16.98:9092
修改clickhouse.properties配置文件
根据写入的表名不同分为 原始日志小表 原始日志大表 泛收 通联,以及用户名密码
#原始日志小表
#db.id=10.0.8.5:8001
#分析表和原始日志大表
#db.id=10.0.8.5:8002
#泛收
#db.id=10.0.8.5:8003
#通联
#db.id=10.0.8.6:8003
#用户名
db.user=default
#密码
mdb.password=ceiedc2018
2:启动方式
配置好的配置文件在/home/ceiec/topology/log-stream-completion/config/AstanaClickHouse|AlmatyFlowWrite/big-8002|collect-8003|mm-8001|small-8001
分别为阿斯塔纳|阿拉木图的原始日志大表|泛收|音视频|原始日志小表
启动例如: ./startall config/AstanaClickHouse/big-8002/
```
4. log-stream-stat
* 修改接收kafka地址
realtime_routine.properties中的bootstrap.servers=10.4.34.10:9092,10.4.34.11:9092
* 修改MariaBD配置
```
修改 mariadb.properties 中的
drivers=org.mariadb.jdbc.Driver
mdb.user=galaxy
mdb.password=ceiec2018!
mdb.url=jdbc:mariadb://10.0.4.9:3306/galaxy-service?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true
```
* influxdb 环境
> 分两地,若部署一地,地址可相同
```
修改 realtime_routine.properties 中的
#influx地址
influx.ip=http://10.0.5.19:8086
#influx.ip=http://10.0.5.16:8086
#influx用户名
influx.username=admin
#influx密码
influx.password=admin
```
* 启动停止
```
分为两大类配置文件一种为原始日志一种为音视频,配置文件在/home/ceiec/topology/log-stream-stat/config下
/home/ceiec/topology/log-stream-stat 目录下
使用./start.sh config/AstanaRealCount/ntc/启动所有阿斯塔纳的原始日志统计
使用./stop.sh config/AstanaRealCount/ntc/停止所有阿斯塔纳的原始日志统计
```
5. id-uv-count-app
* 修改realtime_routine.properties配置文件
```
#kafka地址
bootstrap.servers=10.4.34.10:9092,10.4.34.11:9092
#1:阿斯塔纳 2:阿拉木图
region=2
```
* 修改kafka_topic.properties配置文件
```
#kafka broker下的topic名称
kafka.topic=NTC-CONN-RECORD-LOG
#kafka消费group id
group.id=UV-REALTIME-CONN-APP-A
#storm topology workers
topology.workers=2
spout.parallelism=3
format.bolt.parallelism=3
database.bolt.parallelism=3
#1:web, 2:app
group.strategy=2
```
* 修改clickhouse.properties配置文件
```
#数据库连接地址
#db.id=10.0.8.5:8003
#用户名
db.user=default
#密码
mdb.password=ceiedc2018
```
* influxdb 环境
> 分两地,若部署一地,地址可相同
```
修改 realtime_routine.properties 中的
#influx地址
influx.ip=http://10.0.5.19:8086
#influx.ip=http://10.0.5.16:8086
#influx用户名
influx.username=admin
#influx密码
influx.password=admin
```
* 启动停止
```
/home/ceiec/topology/log-stream-stat/uv/app 目录下
使用./start.sh 启动
使用./stop.sh 停止
```
6. id-uv-count-web
* 修改realtime_routine.properties配置文件
```
#kafka地址
bootstrap.servers=10.4.34.10:9092,10.4.34.11:9092
#1:阿斯塔纳 2:阿拉木图
region=2
```
* 修改kafka_topic.properties配置文件
```
#kafka broker下的topic名称
kafka.topic=NTC-CONN-RECORD-LOG
#kafka消费group id
group.id=UV-REALTIME-CONN-WEB-A
#storm topology workers
topology.workers=2
spout.parallelism=3
format.bolt.parallelism=3
database.bolt.parallelism=3
#1:web, 2:app
group.strategy=1
```
* 修改mariadb.properties配置文件
```
drivers=org.mariadb.jdbc.Driver
mdb.user=galaxy
mdb.password=ceiec2018!
mdb.url=jdbc:mariadb://10.0.4.9:3306/galaxy-service?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true
```
* 启动停止
```
/home/ceiec/topology/log-stream-stat/uv/web 目录下
使用./start.sh 启动
使用./stop.sh 停止
```
// todo