技术引领创新,用“芯”构建生态,在这个春暖花开的季节,第二期龙芯生态论坛如约而至,本期将继续围绕龙芯生态建设应用迁移技术,介绍龙芯架构下安恒明御综合日志审计分析平台的迁移适配。

以下内容为活动速记

分享主题:龙芯架构明御综合日志审计分析平台迁移技术

分享嘉宾:陈岳军

安恒信息日志审计产品适配负责人 陈岳军
负责安恒产品在各类平台的迁移适配,具有丰富的产品适配及项目优化管理经验,擅长国产CPU项目的性能调优,推进迁移适配产品融入CI流程,具有丰富的产品安全检测整改经验,并为多家厂商提供产品适配解决方案。

正文如下:

1、项目背景

本次分享的主题的是龙芯架构下安恒明御综合日志审计分析平台迁移技术,接下来将从以下几个方面展开介绍:项目背景及产品架构、迁移适配路径、适配问题及解决方案。

安恒信息一直专注于网络信息安全领域,公司秉承“助力安全中国、助推数字经济”的企业使命,以“诚信正直、成就客户,责任至上,开放创新,以人为本,共同成长”作为企业的价值观,不断提高核心技术创新能力,从公司创立以来,先后为北京奥运会、十八大、十九大等国家重点活动提供安全服务保障,在重大活动中保持零失误,安恒也将是2022年杭州亚运会的官方合作伙伴。

信息技术应用创新是近年来信息技术领域的关注重点,结合近几年的国际形势,我们能够感受到,科学没有国界,但科技是有国界的,掌握信息产业自主核心技术,研发自主CPU及操作系统软硬件基础产品势在必行。下面具体介绍安恒日志审计系统在自主软硬件架构下的适配方案及问题与收获。

首先介绍一下安恒明御综合日志审计分析平台(以下简称安恒日志审计系统)。日志审计产品主要提供事前预警、事后审计的系统安全保障功能,通过对日志数据的全面采集、解析和深度关联分析,可及时发现各类安全威胁及异常行为事件。安恒日志审计系统的业务逻辑主要采用Java实现,部分功能采用Golang实现,以下为安恒日志审计系统的架构图。


从上图可以看到,安恒日志审计系统分为采集器、解析器、数据存储、功能展示四个部分。安恒日志审计系统从企业资产端搜集各类日志,采集器使用到了snmp、Nginx等消息相关的组件,解析和关联引擎是安恒自主研发的Java组件,性能监控采用了wapper组件,存储模块采用了MySQL和BDB,产品的目标是通过一套代码来适配各类自主CPU架构及操作系统。

2、迁移规划

下图展示了安恒日志审计系统的迁移路径,主要包括开发环境、应用组件、配置脚本的适配及业务测试与性能调优。

安恒日志审计系统采用Java开发,首先需要进行JDK的替换;其次产品部分功能采用Golang开发,需要在目标平台龙芯3A4000中进行代码的交叉编译;另外,安恒日志审计系统需要众多组件的支持,需要对相关组件进行适配迁移。迁移工作开始前,对相关组件进行整理并按照迁移工作量进行分类。上图中绿色标明的组件表示迁移难度较低,工作量相对较少;黄色标明的组件MySQL表示可以选择多种迁移方案;橙色标明的组件wapper表示迁移难度高,工作量比较大,需要进行代码重构。

当组件适配完成后,产品的主要功能已基本实现,为了更好地适配目标平台,需要对部分脚本进行调整修改,调整后,即可进行最终的产品及性能调优测试。

下图为安恒日志审计系统在龙芯架构下的适配调研情况表。从表中可以看出,龙芯架构下安恒日志审计系统的主要组件都已成功适配,但需要重点关注的是MySQL及wapper。对于MySQL,可以获取组件源码,在龙芯架构下进行编译,但考虑到开发进度及产品升级等问题,可以采用MariaDB进行替代,后面会详细介绍。

3、适配流程

借助于持续集成CI工具,我们可以实现一套代码适配不同的CPU架构及操作系统。此外,在原有CI流程基础上,增加了灌装环节,代码从dev分支汇入到目标平台的适配分支,经过构建、灌装,最终产出日志审计系统安装包。

作为自动化适配流程中的重要环节,下面着重介绍灌装流程的设计理念。拟在迁移目标平台环境下安装已适配好的组件,不同的迁移平台对应不同的适配环境,但代码来源相同。在灌装环境下,只需一次性安装、配置好适配环境就可以多次使用,后续只需要关注产品代码本身,无需再关注适配环境,提高了软件迁移效率。

4、适配问题及解决方案

下面重点介绍龙芯架构安恒日志审计系统的适配问题及解决方案。回顾迁移适配过程,可以将问题分为三类。

  • 第一类为系统类。本类问题与系统相关,需要具体问题具体分析,按照错误提示寻找解决办法。
  • 第二类为命令类。例如目标平台不能正确执行某个命令,需要寻找新的替代命令来解决本问题;另外脚本执行结果可能不符合预期,则需要修改脚本,调整获取脚本结果的方式来解决问题。
  • 第三类为编译类问题。这类问题又可分为三种:
    第一种问题需要重新编译源码来适配新环境;
    第二种为无源码但可下载到对应平台下的安装包,直接下载安装即可;
    第三种的适配难度较高,功能组件不存在源码或安装包,需要调研是否有替代产品或重新开发。

根据以上不同类别的迁移问题,下面将具体说明问题情况及解决方案。安恒日志审计系统的目标适配环境为龙芯3A4000+统信UOS,迁移前环境为X86+CentOS-7, 产品采用Java+Golang语言开发。
适配前需要进行环境配置,在统信UOS系统中添加并更新apt源,以便下载并安装适配过程中需要的组件源码及安装包。下面介绍具体的适配问题。

问题1:系统类问题-apt-get报错

  • 问题描述:在执行apt-get相关命令时,提示缺少/var/backups/dpkg.status.0
  • 解决方案:按照错误提示,在系统中手动创建相关目录并拷贝缺失的文件。

问题2:系统问题-卸载后系统无法启动

  • 问题描述:卸载日志审计系统后,操作系统无法正常启动。
  • 问题分析:日志审计系统的工作目录为/data,卸载时会删除/data目录及目录内容,而龙芯默认的分区配置包含/data/home、/data/var,则卸载日志审计系统、删除/data目录后,破坏了系统分区配置,导致系统无法启动。
  • 解决方案:修改/etc/fstab文件,调整操作系统分区配置信息,注释默认的分区配置后,问题得到解决。下图为调整后的/etc/fstab文件。

问题3:命令问题-脚本执行失败

  • 问题分析:统信UOS系统中默认使用dash,而日志审计系统中的脚本需要bash执行。相比于bash,dash执行速度更快,但功能没有bash丰富,导致sh脚本执行失败。
  • 解决方案1:在脚本文件中明确写明脚本解释工具为bash(Shebang为bash)。
  • 解决方案2:将系统默认的sh由dash更改为bash。安恒日志审计系统迁移时,采用了本方案,执行命令sudo dpkg-reconfigure dash,根据界面提示选择“否”。

问题4:命令问题-命令回显不同

  • 问题描述:执行命令ifconfig,CentOS-7及统信UOS中的执行结果如下:

不同系统中命令显示的结果不同。该类问题比较隐蔽,因为命令可以正确执行,无错误提示,需要重点观察并单独调试。

问题5:编译问题-Nginx无法执行

  • 解决方案:下载源码包、在目标适配平台上进行编译、生成可执行文件后,该组件可正常使用。

问题6:编译问题-snmp配置页面无法正常使用

  • 解决方案:通信UOS源提供了该组件的安装包,通过命令apt-get -d install snmpd snmp即可进行下载。下载后根据配置要求,调整安装路径,确保
    组件可正常使用。

问题7:MySQL组件的适配

  • 问题描述:MySQL官方未提供MIPS架构的安装包。
  • 解决方案1:采用MariaDB替代MySQL。
  • 解决方案2:使用MySQL源码进行交叉编译。

问题8:wapper编译

  • 问题描述:wapper组件主要用于日志审计系统的性能展示,但wapper官方未提供MIPS架构的安装包。
  • 解决方案:使用Java重新实现该功能。对于没有源码也没有安装包,但重构工作量较大的组件,也可以采用MySQL的处理方式,即寻找对应的替代组件。
    最后来介绍业务测试及性能调优的情况。

下图为安恒日志审计系统迁移到龙芯架构下性能优化前的报告。从报告中可以看到syslog的接收量为35000多条,但因为解析效率低,正常处理的日志约7502条,其余数据被存入队列,队列被填满,无法及时处理的日志信息,被日志审计系统丢弃,从下图可以看到性能优化前累计丢弃的日志约477556条,性能未达预期:

通过dump日志,找到了内存消耗的主要原因在于日志解析及SM4加密。经分析,日志解析内存占用量大的原因为日志匹配失败,据此我们更新了日志解析规则库,提案解析成功率,从而降低了内存消耗。对于SM4加密问题,龙芯3A4000提供CPU级别的硬件加密功能,因此可以将代码中原来使用的cypher库加密的方式切换为CPU加密,采用CPU硬件加密后,安全性更高,内存消耗显著降低,性能大幅提升。性能优化后的报告见下图:

经过优化后,日志信息能够成功正常、完整接收,35000多条syslog信息被全部处理,队列不会出现拥塞,产品性能达到预期。

问答环节:

Q1:龙芯支持1.8以上的 JDK版本吗?
A1:龙芯的官网已经发布了JDK13, 龙芯公司拥有专门、专业的JVM团队,长期致力于JVM研发和维护,具体的版本可以关注龙芯官网的发布情况。

Q2: 我们接下来也准备适配,有没有一些建议可以提供?
A2:对于国产化的适配最好不要作为单独的项目去做,可以作为CI/CD的一部分,一次适配之后,后续的一些改动,都可以通过代码同步来实现持续更新,减少人员投入。

龙芯技术博客:
https://blog.csdn.net/loongnix?spm=1010.2135.3001.5343&type=blog

龙芯技术社区:
https://loongson.cloud.csdn.net/

干货|龙芯架构明御综合日志审计分析平台迁移技术相关推荐

  1. 龙芯架构应用迁移技术分享——搜狗输入法应用迁移

    技术引领创新,用"芯"构建生态,第一期龙芯生态论坛将于2021年3月12日(周五)盛大开讲!龙芯生态论坛作为龙芯生态建设的重要技术交流窗口,将汇聚龙芯资深技术专家及行业生态伙伴精英 ...

  2. 干货|龙芯智龙平台和RT-Thread系统

    技术引领创新,用"芯"构建生态,第三期龙芯生态论坛踏春而来.本次活动恰逢第26届世界读书日,我们将邀请<嵌入式Linux系统设计及应用-基于国产龙芯SoC>图书作者孙冬 ...

  3. python日志审计系统_综合日志审计系统

    原标题:综合日志审计系统 产品简介 中安威士综合日志审计系统(简称VS-LS),该系统 能够通过主被动结合的手段,实时不间断地采集用户网络中各种不同厂商的安全设备.网络设备.主机.操作系统.以及各种应 ...

  4. 基于Kafka-Zookeeper-Nginx-FIlebeat-MySQL的日志清洗分析平台搭建

    一个域名可以解析成多个ip地址,一般来说会轮询方式去解析成各个ip,但是如果其中一个服务器挂了,DNS不会立马将这个ip地址去掉,还是会解析成挂掉的ip,可能会造成访问失败.虽然客户端有重试,但还是会 ...

  5. Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台

    Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台 日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在 ...

  6. 如何在龙芯架构和国产化操作系统平台上运行javacv

    前言 在上一篇中讲到,在全面国产化替换即将到来之时,聊聊如何在国产芯片龙头"龙芯"和国产操作系统平台上运行c/c++.java.nodejs.等编程语言,go/rust等静态编译型 ...

  7. 龙芯OpenHarmony课程 【2】启动分析

    1 启动文件和链接脚本 龙芯开发板的板级代码位于:device\loongson\ls1c300b_hrst 文件夹 其中,启动文件位于 device\loongson\ls1c300b_hrst\s ...

  8. UOS系统龙芯架构deb安装包打包实践

    1.根据UOS打包规范,创建如下目录结构 2.执行dh_make命令生成deb打包相关文件 dh_make --createorig -s 在提示信息后按y,等待命令执行完成 3.在第二步生成的deb ...

  9. Elasticsearch + Logstash + Kibana 搭建日志集中分析平台实践

    为什么80%的码农都做不了架构师?>>>    比较详细的搭建教程:https://segmentfault.com/a/1190000003689999 Elasticsearch ...

  10. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

最新文章

  1. 【算法导论学习笔记】第3章:函数的增长
  2. 【笔记】C++自学笔记系列02:类的组合与类的友元
  3. 线程控制、如何给面试官描述线程不安全的情况?模拟黄牛抢票展现不安全的情况及解决方式、互斥锁加锁解锁
  4. 数据结构和算法———P2 算法概述
  5. vmware 虚拟机三种网络模式: 桥接、 NAT、 仅主机 区别
  6. php两个编辑框一个提交按钮,一个表单中的两个提交按钮
  7. hdu-1173(最短距离)
  8. 如何利用线程堆栈定位问题
  9. 外滩画报:揭秘全球电子垃圾坟墓
  10. everything无法搜索刚插入的硬盘中的文件
  11. docker-sync 加速 Laravel Sail 代码同步
  12. PHP通过推广二维码追溯统计用户来源
  13. 2019 SIGGRAPH paper
  14. 一只鸟就这样耍弄了一个人
  15. 排列组合之插板法及变形
  16. OpenVINO: export failure: libpython3.9.so.1.0: cannot open shared object file: No such file or direc
  17. 电路实验——实验三 叠加原理
  18. Marvell深耕智能家居行业 赞同语音控制将成必然发展趋势
  19. bgp高防服务器,带你了解什么是用UDP协议攻击
  20. 带权并查集【bzoj3362】: [Usaco2004 Feb]Navigation Nightmare 导航噩梦

热门文章

  1. 常按摩七个地方永葆年轻
  2. 【JS】中文繁简转换
  3. 如何绕过mac地址过滤_Maccms V8 后台Getshell #2(绕过过滤)
  4. python远程连接windows_python winrm 连接windows
  5. dell emc isilon环境 Windows共享文件下生成.snapshot无法删除
  6. 精致露营“风”,“吹”进小家电市场
  7. hexo个人博客 next主题添加背景图片(无custom.styl情况)
  8. linux 浮点异常,浮点数学函数异常处理方法
  9. 电商大数据“杀熟”套路有哪些
  10. 2019年ACM大赛:北大清华无缘前十,莫斯科大学第一