**Galaxy NTC 集成文档** ![NTC 后端应用流程图](ntc后端流程图.jpg) ## 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