升级到v5.7.0之后的操作

创建时间:2024-04-17 最近修改时间:2024-04-17

#1. 升级到v5.7.0之后的操作

  • 5.7.0提升了MySQL的安全等级,使用MySQL8默认密码策略,使用更复杂的MySQL密码

    • 升级后pillar内的mysql密码将被替换,使用mt deepflow.reconfig刷新各个进程配置文件的密码
    • 将root用户的密码修改为pillar内的密码,参考“部署扩容-组件配置文件-开源组件密码配置-MySQL修改密码”章节
  • 5.7.0进程日志的记录直接使用 es client 写入es。在 /etc/web/ 路径寻找 .rpmnew 文件,如果存在,复制 elasticsearch 节点数据更新到对应的配置文件中,并配置正确的 host-list、port、user_name、user_password 后重启以下服务。

systemctl restart fauths
systemctl restart fuser
systemctl restart df-web-service
systemctl restart web-tools
1
2
3
4

警告

如果进程的配置文件 .yaml 中没有elasticsearch节点信息,进程会使用如下默认配置来和es服务通信。如果系统调整过es的配置,建议按照上文更新yaml文件,并重启服务。

host-list:['127.0.0.1']
port:20042
user_name:None
user_password:None
1
2
3
4

#2. 升级到v5.7.1之后的操作

#2.1 配置ClickHouse

  • 若5.7.0时数据存储双副本,5.7.1也要存储双副本
    • 需要确保zookeeper状态正常, 否则不支持双副本
      • 查看zookeeper状态, 执行echo ruok|nc 127.0.0.1 2181看是否返回imok(若不支持nc可执行yum install nc -y --disablerepo=* --enablerepo=deepflow安装)
    • 需要保证该区域master节点个数至少3个,数据节点(tsdb)个数至少2个
      • mt saltstack.list查看roles中分别包含mastertsdb的节点个数
    • 配置mt saltstack.config clickhouse_0_tiers=$path1 clickhouse_1_tiers=$path2, 必需配置2个路径
    • 并且配置/usr/local/deepflow/saltstack/pillar/droplet.sls文件的metrics_replica_enabledtrue
  • 若5.7.1存储只须单副本
    • 配置mt saltstack.config clickhouse_0_tiers=$path1, 只需配置1个路径即可
  • 配置完成后执行如下命令:
salt -N tsdb state.apply tsdb.stop
salt -N tsdb state.apply clickhouse.install
salt -N tsdb state.apply clickhouse.config
salt -N tsdb state.apply clickhouse.start
salt -N tsdb state.apply tsdb.config
salt -N tsdb state.apply tsdb.start
salt -N tsdb state.apply telegraf.config
salt -N tsdb state.apply telegraf.stop
salt -N tsdb state.apply telegraf.start
1
2
3
4
5
6
7
8
9

#2.2 全景图数据源配置更新

  • 进入系统->数据节点->全景图存储配置页面
  • 对于全景图原始数据源(1s,1m)若修改过默认保留时长, 升级后需要重新设置下保留时长
  • 对于自定义数据源, 需要删除再重建, 名字需保持一致,否则影响数据迁移
    • 注意: 5.7.1版本只支持基于1s,1m的原始数据源创建自定义数据源。
    • 若存在自定义数据源基于数据源1h创建,需要修改为基于1m的数据源创建。
  • 对于流量日志的保留时长,如果570修改过默认值(3天),也需要重新设置下

#2.3 采集器组配置更新

  • 检查容器-V/容器-P类型采集器配置的同步资源信息是否为开启;如果是开启,则需要置为关闭

#2.4 流量日志默认限速改变

  • 5.7.0流量日志默认写入限速是1k条/秒, 5.7.1增大为50k条/秒
  • 若流量日志写入达到最大值,每天的写入数据将占用超过500G磁盘空间
  • 请评估流量日志的写入增多对磁盘容量和磁盘IO的影响, 并作出相应调整, 如:
    • 扩容磁盘
    • 调整流量日志的保留时间: 登录管理平台, 进入系统->数据节点->全景图存储配置->数据源列表->流量日志->操作进行修改
    • 调整流量日志写入限速: 参考功能介绍->全景图->流量搜索->功能规格->4.5. 流日志写入限速

#2.5 5.7.0到5.7.1数据迁移

#2.5.1 预处理和说明

  • 确保升级后基本业务正常
  • 确保全景图数据源配置更新步骤已完成
  • 不支持全景图秒级数据的迁移
  • 不支持流量日志数据的迁移

#2.5.2 数据迁移操作

  1. 迁移工具说明

    • 升级后,默认数据节点已部署迁移工具
    • 可执行文件路径: /usr/bin/influxdb-migrate
    • 配置文件路径: /etc/influxdb_migrate.yaml
      • 迁移速率设置: limit-write-rate 默认限制100000条每秒, 可根据实际情况调整.
    • 迁移日志: /var/log/influxdb_migrate.log
  2. 登录所有数据节点

  3. 分钟级数据迁移配置

    • 默认配置如下,将自动迁移所有分钟级数据。

      migrates-1m:
      - dbs:                   # 迁移的数据库列表. 流统计: 包含vtap_flow,vtap_flow_edge,vtap_flow_port,vtap_flow_edge_port 子数据库
        - vtap_flow
        - vtap_flow_edge
        - vtap_flow_port
        - vtap_flow_edge_port
        time-range: ""         # 迁移数据的时间范围, 如只迁移最近1天的数据: "time > now()-1d and time < now()", 默认: "", 表示迁移所有数据
      - dbs:                   # 包统计: 包含vtap_packet,vtap_packet_edge 子数据库
        - vtap_packet
        - vtap_packet_edge
        time-range: ""
      - dbs:                   # 广域网: 包含vtap_wan,vtap_wan_port 子数据库
        - vtap_wan
        - vtap_wan_port
        time-range: ""
      - dbs:
        - vtap_acl
        time-range: ""
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
    
    
    1
  4. 自定义数据源数据迁移配置

    • 默认为空, 不迁移自定义数据源数据, 需要根据实际情况具体配置。
    • 如果小时/天的数据基于分钟的数据聚合而成, 则在分钟数据迁移的时间范围内,小时/天的数据无须再迁移。
      • 例如: 分钟迁移的时长是最近7天,则小时/天数据的迁移的时长time-range应设置为"time < now()-7d"
    • 如果天的数据基于小时的数据聚合而成, 则在小时数据迁移的时间范围内,天的数据无须再迁移。
      • 例如: 小时迁移的时长是最近30天,则天迁移的时长time-range应设置为"time < now()-30d"
    # 配置示例:
    migrates-1h1d:
    # `dbs`配置说明:
    #   - 流统计: 包含vtap_flow, vtap_flow_edge, vtap_flow_port, vtap_flow_edge_port 子数据库
    #   - 包统计: 包含vtap_packet, vtap_packet_edge 子数据库
    #   - 广域网: 包含vtap_wan, vtap_wan_port 子数据库
    - dbs:                # 例如: 迁移`流统计`名称为`1h`的按`小时`聚合的自定义数据源
      - vtap_flow
      - vtap_flow_port
      - vtap_flow_edge
      - vtap_flow_edge_port
      rp: 1h              # 数据源名称: web界面显示的名称(实际底层存储会使用rp_1h)
      ck-table: 1h        # 一般和rp相同, 除非要迁移后改名
      unsummable: avg     # 非累加聚合的值, 只支持: avg, max, min
      interval: 1h        # 聚合的时间粒度, 只支持: 1h, 1d
      time-range: "time < now()-7d"     # 迁移7天前的数据, # 迁移数据的时间范围, 如只迁移最近1天的数据: "time > now()-1d and time < now()", 默认:"", 表示迁移所有数据
    - dbs:                # 例如: 迁移`流统计`名称为`1d`的按`天`聚合的自定义数据源
      - vtap_flow
      - vtap_flow_port
      - vtap_flow_edge
      - vtap_flow_edge_port
      rp: 1d
      ck-table: 1d
      unsummable: avg
      interval: 1d
      time-range: "time < now()-30d" # 迁移30天前的数据
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
  5. 迁移执行

    influxdb-migrate
    # 若迁移数据量大, 可使用后台执行
    # nohup influxdb-migrate > influxdb-mig.log 2>&1 &
    
    1
    2
    3
  6. 迁移后操作

    • 验证迁移后,可以正确查询到历史数据信息
    • 若数据节点不同时为控制器,停止influxdb服务,清理influxdb数据
      systemctl stop influxdb
      yum remove influxdb -y --disablerepo=* --enablerepo=deepflow
      # 找到influxdb的存储目录
      cat /etc/influxdb/influxdb.conf |grep "TSM storage" -A2
      # 删除目录数据
      
      
      1
      2
      3
      4
      5
      6

#3. 升级到v5.7.2之后的操作

#3.1 设置ClickHouse系统日志保留时长为30天

  • 设置数据节点ClickHouse实例0的系统日志保留时长,执行:
    salt -N tsdb cmd.run "clickhouse-client -q 'ALTER TABLE system.query_log MODIFY TTL event_date + INTERVAL 30 DAY '"
    salt -N tsdb cmd.run "clickhouse-client -q 'ALTER TABLE system.trace_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client -q 'ALTER TABLE system.query_thread_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client -q 'ALTER TABLE system.metric_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client -q 'ALTER TABLE system.asynchronous_metric_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    
    1
    2
    3
    4
    5
  • 设置数据节点ClickHouse实例1的系统日志保留时长(如果不存在实例1,则无须执行),执行:
    salt -N tsdb cmd.run "clickhouse-client --port 9001 -q 'ALTER TABLE system.query_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client --port 9001 -q 'ALTER TABLE system.trace_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client --port 9001 -q 'ALTER TABLE system.query_thread_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client --port 9001 -q 'ALTER TABLE system.metric_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    salt -N tsdb cmd.run "clickhouse-client --port 9001 -q 'ALTER TABLE system.asynchronous_metric_log MODIFY TTL event_date + INTERVAL 30 DAY'"
    
    1
    2
    3
    4
    5

#3.2 Influxdb停止监听20049端口

  • 停止监听20049端口,执行:
    salt -N controller state.sls influxdb.config
    salt -N controller state.sls influxdb.stop
    salt -N controller state.sls influxdb.start
    
    1
    2
    3

#3.3 视图升级

  • 对视图中告警策略进行升级
  • 需要修改主控制器上 /var/www/lcweb/public/app_config_user.jsVIEW_UPDATEtrue
  • 到视图页面,点击右上视图升级按钮,即可把当前视图内所有的告警策略升级
  • 重复所有需要升级的视图页面