> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lwops.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# CMDB 推送 kafka 配置手册

> 一、Kafka 客户端通用配置本章介绍 Kafka 客户端接入及验证所需的通用配置。本章示例命令中的占位符（如 、账号、密码、topic）请按实际环境替换。① 为Kafka客户端创建SASL

# 一、**Kafka 客户端通用配置**

本章介绍 Kafka 客户端接入及验证所需的通用配置。本章示例命令中的占位符（如 、账号、密码、topic）请按实际环境替换。

## ① **为Kafka客户端创建SASL认证文件**

可以根据包目录在 config/kafka\_client\_jaas.conf 文件中配置如下内容。以下例为以 visitor 账号访问为例，**（若是程序访问，如springboot访问，可以不配置）**

KafkaClient \{

org.apache.kafka.common.security.plain.PlainLoginModule required

username="visitor"

password="qaz\@123";

};

## ② **配置 consumer 和 producer**

在config/consumer.properties和config/producer.properties里分别加上如下配置：

security.protocol=SASL\_PLAINTEXT

sasl.mechanism=PLAIN

## ③ **修改启动脚本**

在安装目录下bin/kafka-console-producer.sh和bin/kafka-console-consumer.sh，在文件最上面添加变量

```text theme={null}
export KAFKA_OPTS=" -Djava.security.auth.login.config=/asop/kafka/kafka_2.11-2.1.0/config/kafka_client_jaas.conf"
```

## ④ **分别启动zookeeper和kafka**

nohup /asop/kafka/kafka\_2.11-2.1.0/bin/zookeeper-server-start.sh -daemon /asop/kafka/kafka\_2.11-2.1.0/config/zookeeper.properties

nohup /asop/kafka/kafka\_2.11-2.1.0/bin/kafka-server-start.sh -daemon /asop/kafka/kafka\_2.11-2.1.0/config/server.properties

## ⑤ **查看接收数据**

需要注意每一个消费者需要设置不同的组名或者是组id，不然队列消息只能被消费一次，用命令查询的--group参数后面接的组名g1不能一样

查看命令示例（请替换为实际路径）：

/asop/kafka/kafka\_2.11-2.1.0/bin/kafka-console-consumer.sh --bootstrap-server :9092 --topic test --from-beginning --consumer-property security.protocol=SASL\_PLAINTEXT --consumer-property sasl.mechanism=PLAIN --group g1  # topic 替换为事件订阅里配置的 topic 值

## ⑥ **结果示例**

\{"subject":"规则名称 :部门 -机柜","message":"模型 :部门\n数据违规规则:\n查询路径1：部门 -  (关联)业务系统-(关联)mysql实例-(属于)物理主机-(属于)物理裸设备-(属于)机柜\n查询路径2：部 门 -(属于)负责人-(包含)物理主机-(属于)物理裸设备-(属于)机柜\n对比的终点模型属性：机柜\_机    柜名称\n同一起始实例，相同终点模型字段属性值不一致\n\n执行实例总数:661\n违规实例总数:81\n执行时间:2023-11-21 18:48:42"}

如果用脚本请求，不同的消费者就需要设置不同组id

![CMDB 推送 kafka 配置手册 操作截图 1](https://lwweb.oss-cn-shenzhen.aliyuncs.com/docs/images/yuque/rdfcmu981a9b7inu/image-01.png)

# 二、**事件订阅推送kafka**

## 1. 简要描述

CMDB向“事件订阅”中的kafka系统推送变更资产的数据。（kafka版本: 2.1.0）

## 2. 配置订阅规则

在 CMDB “事件订阅” 中配置，如图(示例)：

## 3. 推送参数

| **参数名**      | **必选** | **类型** | **说明**                                             |
| ------------ | :----: | :----: | -------------------------------------------------- |
| event        |    是   | string | 事件类型。可能值：  create 新建资产；  update 更新资产；  delete 删除资产 |
| id           |    是   | string | 资产id                                               |
| log\_id      |    是   | string | 变更记录id                                             |
| name         |    是   | string | 资产名称                                               |
| creator      |    是   | string | 资产的创建人                                             |
| modifier     |    是   | string | 资产的最后修改人                                           |
| modify\_date |    是   | string | 资产的修改时间                                            |
| create\_date |    是   | string | 资产的创建时间                                            |
| model\_id    |    是   | string | 资产绑定的模型id                                          |
| model\_name  |    是   | string | 资产绑定的模型名称                                          |
| data         |    是   | object | 资产数据                                               |

注: 资产数据格式, 是资产按模型定义已经组建好的实际数据信息

## 4. 推送数据示例

\{

"event": "create",

"id": "RxgLdIkPZaeD1629445803",

"log\_id": "64633add0d31b00caf623614",

"name": "X86服务器1",

"model\_id": "X86ServerBasic",

"model\_name": "X86服务器",

"creator": "Admin",

"create\_date": "2021-08-20 15:50:03",

"modifier": "Admin",

"modify\_date": "2022-09-02 11:55:04",

"data": \{

"系统内置ID": "FRKh1t1629445803",

"配置项编号": "",

"服务器名称": "X86服务器1",

"序列号": "",

"品牌型号": "",

"硬盘信息": \[

\{

"硬盘类型": "固态",

"硬盘容量": 10240,

"硬盘名称": "西部数据固态 "

}],

"WWN号": \[],

"存储空间": "",

"网卡信息": \[],

"HBA卡信息": \[],

"内存信息": \[

\{

"容量": 32,

"频率": 3200,

"内存名称": "金士顿 "        }],

"CPU信息": \[

\{

"CPU名称": "CPU1",

"核数": 16,

"主频": 204800,  "CPU型号": "123"

}],

"起始U位": 1,

"结束U位": 4,

"分组": \[],

"是否监控": false,

"IP地址": "192.168.2.100",

"所属业务": \[],

"占用U数": 4

}}

# 三、**合规违规通知推送**

## 1. **简要描述**

CMDB向kafka系统推送合规性检查发生违规的通知数据。（kafka版本： 2.1.0）

## 2. **配置合规规则**

在 CMDB 系统的 “资产消费” >> “合规性检查” 的规则中配置，如图(示例)：

![CMDB 推送 kafka 配置手册 操作截图 2](https://lwweb.oss-cn-shenzhen.aliyuncs.com/docs/images/yuque/rdfcmu981a9b7inu/image-02.png)

## 3. **推送参数**

| **参数名** | **必选** | **类型** | **说明** |
| :-----: | :----: | :----: | :----: |
| subject |    是   | string |  通知标题  |
| message |    是   | string |  通知内容  |

## 4. **推送数据示例**

\{

"subject": "规则名称 :部门 -机柜",

"message": "模型 :部门\n数据违规规则:\n查询路径1：部门-(关联)业务系统-(关联)mysql实  例 -(属于)物理主机-(属于)物理裸设备-(属于)机柜\n查询路径2：部门-(属于)负责人-(包含)物理主 机 -(属于)物理裸设备-(属于)机柜\n对比的终点模型属性：机柜\_机柜名称\n同一起始实例，相同终点 模型字段属性值不一致\n\n执行实例总数:661\n违规实例总数:81\n执行时间:2023-11-21 18:48:42"

}
