扫描规则文件使用示例
系统迁移在进行台账信息和成分信息收集时,支持通过配置扫描规则,识别新增软件。
扫描规则文件使用示例
默认扫描规则配置文件位于二进制目录下sys-mig/resources/sysmig_disk_scan_classifier.json。
- 以默认扫描规则进行系统迁移应用信息收集,以台账信息收集为例。
1
devkit sys-mig -c stmt -d /usr/local -o /home/report
返回信息如下:
[2025-02-12 09:17:01,498] [INFO] Start to execute the command: ./devkit sys-mig -c stmt -cf /usr/local/devkit/sys-mig/resources/sysmig_default.conf -d /usr/local -o /home/report -t /usr/local/devkit/sys-mig/template/stmt_template_default.csv -l 1 [2025-02-12 09:17:01,498] [INFO] Creating file indexing... [2025-02-12 09:17:15,893] [INFO] Parsing... [2025-02-12 09:17:15,893] [INFO] Start Scanning stmt information. [2025-02-12 09:17:15,894] [INFO] Middleware binary start analysis. [2025-02-12 09:17:15,894] [INFO] start scanning middleware binary file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java. [2025-02-12 09:17:15,896] [WARNING] The file /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java cannot be executed or no permission to execute the filepath file. [2025-02-12 09:17:15,896] [INFO] start scanning middleware binary file: /usr/local/nginx/sbin/nginx. [2025-02-12 09:17:16,009] [INFO] start scanning middleware binary file: /usr/local/src/redis-stable/src/redis-server. [2025-02-12 09:17:16,921] [INFO] start scanning middleware binary file: /usr/local/bin/redis-server. [2025-02-12 09:17:19,230] [INFO] Middleware binary end of analysis. [2025-02-12 09:17:19,230] [INFO] Middleware package start analysis. [2025-02-12 09:17:19,230] [INFO] start scanning middleware package file: /usr/local/tomcat/apache-tomcat-8.5.100/lib/catalina.jar. [2025-02-12 09:17:19,296] [INFO] start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/tools/lib/kafka-clients-2.8.2.jar. [2025-02-12 09:17:19,342] [INFO] start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-5.1.8/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar. [2025-02-12 09:17:19,353] [INFO] start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-output-kafka-5.1.7/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar. [2025-02-12 09:17:19,363] [INFO] start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/hdfs/lib/zookeeper-3.8.3.jar. [2025-02-12 09:17:19,379] [INFO] start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/common/lib/zookeeper-3.8.3.jar. [2025-02-12 09:17:19,395] [INFO] start scanning middleware package file: /usr/local/hbase/lib/zookeeper-3.4.10.jar. [2025-02-12 09:17:19,580] [INFO] start scanning middleware package file: /usr/local/zookeeper-3.4.6/zookeeper-3.4.6.jar. [2025-02-12 09:17:20,721] [INFO] start scanning middleware package file: /usr/local/zookeeper-3.4.6/dist-maven/zookeeper-3.4.6.jar. [2025-02-12 09:17:20,765] [INFO] Middleware package end of analysis. csv report is created successfully. the file is located in /home/report/sys-mig_xx.xx.xx.xx_20250212091701/stmt.csv [2025-02-12 09:17:20,783] [INFO] Scanning information successfully completed.
- 查看扫描报告,软件Logstash未被识别。
- 进入二进制目录下,配置扫描规则文件。
1
vi sys-mig/resources/sysmig_disk_scan_classifier.json
新增如下加粗内容:
{ "linux_binary_classifiers": [ { "cli_category": "MIDDLEWARE", "category": 3, "file_glob": "**/logstash-core/lib/logstash/version.rb", "version_pattern": "(?m)(?P<version>[0-9]+\\.[0-9]+\\.[0-9]+)", "package": "logstash", "supplier": "Elastic", "type": "BINARY", "metadata_type": "MIDDLEWARE_WEB_OTHER", "company_type": "开源", "relative_directory_hierarchy": "../../../../" }, { "cli_category": "RUNTIME_JAVA", "category": 3, "file_glob": "**/java", "version_pattern": "(?m)(\\x00java\\x00|\\x00|\\x00-Djava.class.path=%s)(?P<release>[0-9]+[.0-9]*(\\x00)+)?(?P<version>\\d+(\\.\\d)+[^\\x00]+)(\\x00openjdk)?(\\x00java)?\\x00", "version_file": "../release", "package": "JDK", "supplier": "JDK", "type": "BINARY", "metadata_type": "JAVA_RUNTIME_BINARY", "company_type": "开源", "relative_directory_hierarchy": "../" }, ... ], "middleware_jar_classifiers": [ { "cli_category": "MIDDLEWARE", "category": 3, "file_glob": "**/weblogic.jar", "version_pattern": "(?m)Implementation-Version: (?P<version>[0-9]+[.0-9]*)", "version_file": "MANIFEST.MF", "package": "WebLogic", "supplier": "Oracle Corporation", "type": "BINARY", "metadata_type": "MIDDLEWARE_WEB_WEBLOGIC", "company_type": "商业", "relative_directory_hierarchy": "../../../../../" }, ... ], "win_binary_classifiers": [ { "cli_category": "RUNTIME_JAVA", "category": 3, "classify": "java_jdk_binary", "file_glob": "**/java.exe", "version_pattern": "(?m)\\x00openjdk\\x00java\\x00(?P<release>[0-9]+[.0-9]*)\\x00(?P<version>[0-9]+[^\\x00]+)\\x00", "package": "JDK", "supplier": "JDK", "type": "BINARY", "metadata_type": "JAVA_RUNTIME_BINARY_OPENJDK", "company_type": "开源", "relative_directory_hierarchy": "../" }, ... ] }
包含以下类型,参数说明表1所示:
- linux_binary_classifiers:Linux系统下,特征文件为二进制文件、文本文件等,非压缩文件的软件。
- middleware_jar_classifiers:Linux系统下,特征文件为jar包形式,需要解压的软件。
- win_binary_classifiers:Windows系统下,特征文件为二进制文件、文本文件等,非压缩文件的软件。
表1 配置规则说明 参数
参数选项
是否必填
类型
说明
cli_category
APP_JAVA/RUNTIME_JAVA/MIDDLEWARE/DATABASE/HARDWARE/OS
是
string
软件类别,在命令行报告中展示。
- APP_JAVA:Java应用。
- RUNTIME_JAVA:JDK。
- MIDDLEWARE:中间件。
- DATABASE:数据库。
- HARDWARE:硬件。
- OS:操作系统。
category
1/2/3/4
是
int
软件类别,用于Web端源成分采集功能。
- 1:操作系统。
- 2:数据库。
- 3:中间件。
- 4:Java应用。
use_file_regex
true/false
否
boolean
特征文件是否使用正则匹配,默认为false。
- 若为false:则file_glob需要以**/开头,然后填写具体文件路径。
- 若为true:则file_glob需要配置对应的正则表达式。
file_glob
-
是
string
特征文件,用于标识软件和匹配软件版本。
例如:**/nginx
说明:版本匹配优先级从高到低为:file_glob、version_file。
version_pattern
-
是
string
版本。正则表达式,对特征文件进行正则匹配,若无可填空字符串。
version_file
-
否
string
版本文件名,用于匹配版本,middleware_jar_classifiers归类下必填。文件中包含该款软件的版本信息。
package
-
是
string
软件官方名称,例如:Nginx。
supplier
-
是
string
软件厂商名,例如:Nginx, Inc。
type
BINARY
是
string
软件类型,需要配置为BINARY。
metadata_type
DATABASE_OTHER/MIDDLEWARE_WEB_OTHER
是
string
软件归类。
- 数据库填写为DATABASE_OTHER。
- 中间件填写为MIDDLEWARE_WEB_OTHER。
company_type
自有/开源/商业/--
是
string
是否开源。
relative_directory_hierarchy
-
是
string
安装目录。通过file_glob找到的特征文件的相对路径。
例如:安装目录为特征文件上层目录,则填写../。
- 重新执行台账信息收集。
1
devkit sys-mig -c stmt -d /usr/local -o /home/report
返回信息如下:
[2025-02-12 09:20:56,705] [INFO] Start to execute the command: ./devkit sys-mig -c stmt -cf /usr/local/devkit/sys-mig/resources/sysmig_default.conf -d /usr/local -o /home/report -t /usr/local/devkit/sys-mig/template/stmt_template_default.csv -l 1 [2025-02-12 09:20:56,705] [INFO] Creating file indexing... [2025-02-12 09:21:10,633] [INFO] Parsing... [2025-02-12 09:21:10,633] [INFO] Start Scanning stmt information. [2025-02-12 09:21:10,633] [INFO] Middleware binary start analysis. [2025-02-12 09:21:10,634] [INFO] start scanning middleware binary file: /usr/local/logstash-5.5.0/logstash-core/lib/logstash/version.rb. [2025-02-12 09:21:11,748] [INFO] start scanning middleware binary file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java. [2025-02-12 09:21:11,748] [WARNING] The file /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java cannot be executed or no permission to execute the filepath file. [2025-02-12 09:21:11,748] [INFO] start scanning middleware binary file: /usr/local/nginx/sbin/nginx. [2025-02-12 09:21:11,795] [INFO] start scanning middleware binary file: /usr/local/src/redis-stable/src/redis-server. [2025-02-12 09:21:12,558] [INFO] start scanning middleware binary file: /usr/local/bin/redis-server. [2025-02-12 09:21:14,373] [INFO] Middleware binary end of analysis. [2025-02-12 09:21:14,374] [INFO] Middleware package start analysis. [2025-02-12 09:21:14,374] [INFO] start scanning middleware package file: /usr/local/tomcat/apache-tomcat-8.5.100/lib/catalina.jar. [2025-02-12 09:21:14,405] [INFO] start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/tools/lib/kafka-clients-2.8.2.jar. [2025-02-12 09:21:14,438] [INFO] start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-5.1.8/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar. [2025-02-12 09:21:14,448] [INFO] start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-output-kafka-5.1.7/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar. [2025-02-12 09:21:14,456] [INFO] start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/hdfs/lib/zookeeper-3.8.3.jar. [2025-02-12 09:21:14,471] [INFO] start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/common/lib/zookeeper-3.8.3.jar. [2025-02-12 09:21:14,485] [INFO] start scanning middleware package file: /usr/local/hbase/lib/zookeeper-3.4.10.jar. [2025-02-12 09:21:14,663] [INFO] start scanning middleware package file: /usr/local/zookeeper-3.4.6/zookeeper-3.4.6.jar. [2025-02-12 09:21:15,765] [INFO] start scanning middleware package file: /usr/local/zookeeper-3.4.6/dist-maven/zookeeper-3.4.6.jar. [2025-02-12 09:21:15,804] [INFO] Middleware package end of analysis. csv report is created successfully. the file is located in /home/report/sys-mig_xx.xx.xx.xx_20250212092056/stmt.csv [2025-02-12 09:21:15,820] [INFO] Scanning information successfully completed.
- 查看扫描报告,可看到扫描报告中存在Logstash。