Instalando o Apache Kafka para IBM Maximo Manage
Apache Kafka fornece um buffer para mensagens que são enviadas para e recebidas de interfaces externas. Apache Kafka não será necessário se o software IBM® Maximo® Manage não fizer interface com sistemas externos.
O que fazer a seguir
Configure os parâmetros do Apache Kafka Suite. Para obter mais informações, consulte Instalando Apache Kafka.
Instalando usando o console da web Red Hat OpenShift Container Platform
Procedimento
- No Red Hat OpenShift® Container Platform, no menu de navegação lateral, clique em Início > Projetos e, em seguida, clique em Criar Projeto. Insira o nome kafkae clique em Criar para provisionar o novo namespace para Kafka.
- Na barra de navegação global. Clique no ícone Importar YAML
. Insira o YAML a seguir--- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: "kafka" namespace: "kafka" spec: targetNamespaces: - "kafka" --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: amq-streams namespace: "kafka" spec: channel: amq-streams-1.8.x installPlanApproval: Automatic name: amq-streams source: redhat-operators sourceNamespace: openshift-marketplaceDica: para Maximo Application Suite no AWS (BYOL) versão 8.7, mudeamq-streams-1.8.xparaamq-streams-1.7.xpara corresponder à versão dos fluxos do AMQ que estão instalados no namespace do BAS.. - Clique em Criar para criar o grupo de operador e os recursos de assinatura no espaço de nomes kafka .
- No menu de navegação lateral, clique em Operadores > Operadores instalados. Procure AMQ Streams e verifique se o status do operador está configurado como Bem-sucedido.
- Na barra de navegação global clique no ícone Importar YAML . Insira o código YAML a seguir.
--- apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: "maskafka" namespace: "kafka" spec: # ------------------------------------------------------- kafka: version: 2.7.0 replicas: 3 resources: requests: memory: 4Gi cpu: "1" limits: memory: 4Gi cpu: "2" jvmOptions: -Xms: 3072m -Xmx: 3072m config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: "2.7" log.retention.hours: 24 log.retention.bytes: 1073741824 log.segment.bytes: 268435456 log.cleaner.enable: true log.cleanup.policy: delete auto.create.topics.enable: false storage: type: jbod volumes: - id: 0 type: persistent-claim class: "ocs-storagecluster-ceph-rbd" size: 100Gi deleteClaim: true authorization: type: simple listeners: - name: tls port: 9094 type: route tls: true authentication: type: scram-sha-512 # ------------------------------------------------------- zookeeper: replicas: 3 resources: requests: memory: 1Gi cpu: "0.5" limits: memory: 1Gi cpu: "1" jvmOptions: -Xms: 768m -Xmx: 768m storage: type: persistent-claim class: "ocs-storagecluster-ceph-rbd" size: 10Gi deleteClaim: true # ------------------------------------------------------- entityOperator: userOperator: {} topicOperator: {}Modifique a classe de armazenamento especificada
ocs-storagecluster-ceph-rbdpara usar uma classe de armazenamento suportada para seu cluster.. - Clique em Criar para criar o cluster Kafka .
- No menu de navegação lateral, clique em Cargas de trabalho > StatefulSets e alterne para o projeto kafka Você vê dois statefulsets: maskafka-kafka, que são os brokers Kafka e maskafka-zookeeper, que o Kafka ZooKeepers. Selecione cada statefulset e verifique se cada um tem três pods que estão no estado Pronto.
- Na barra de navegação global clique no ícone Importar YAML . Insira o YAML a seguir
--- apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaUser metadata: name: "maskafkauser" labels: strimzi.io/cluster: "maskafka" namespace: "kafka" spec: authentication: type: scram-sha-512 authorization: type: simple acls: - host: '*' operation: All resource: name: '*' patternType: literal type: topic - host: '*' operation: All resource: name: '*' patternType: literal type: group - host: '*' operation: All resource: name: '*' patternType: literal type: cluster - host: '*' operation: All resource: name: '*' patternType: literal type: transactionalId - Clique em Criar para criar um usuário do Kafka , que é usado pelo Maximo Application Suite para autenticar conexões com o Kafka.
- No menu de navegação lateral, clique em Cargas de trabalho > Segredos e mude para o projeto kafka . Verifique se o operador de entidade do usuário criou o segredo maskafkauser .
- No menu de navegação lateral, clique em Rede > Rotas e alterne para o projeto kafka . Verifique se a rota maskafka-kafka-tls-bootstrap foi criada.
- Obtenha as informações Kafka .
- Para obter o host e a porta Kafka , insira o código a seguir:
oc get Kafka.kafka.strimzi.io maskafka -o jsonpath="{.status.listeners[0].addresses[0]}"Saída de amostra{"host":"maskafka-kafka-tls-bootstrap-kafka.apps.cluster1.example-cluster.com","port":443} - Obtenha o certificado de autoridade de certificação Kafka .
oc get Kafka.kafka.strimzi.io maskafka -o jsonpath="{.status.listeners[0].certificates[0]}"Saída de amostra-----BEGIN CERTIFICATE----- MIIFLTCCAxWgAwIBAgIUTExUl2XrdIPy6vZAtk9toGh2jbEwDQYJKoZIhvcNAQEN BQAwLTETMBEGA1UECgwKaW8uc3RyaW16aTEWMBQGA1UEAwwNY2x1c3Rlci1jYSB2 MDAeFw0yMjA1MTEyMTAyMzFaFw0yMzA1MTEyMTAyMzFaMC0xEzARBgNVBAoMCmlv LnN0cmltemkxFjAUBgNVBAMMDWNsdXN0ZXItY2EgdjAwggIiMA0GCSqGSIb3DQEB AQUAA4ICDwAwggIKAoICAQDh6bYIudhZQ1/rR9IgSb7pzqTvtRiNOvzmnZPdtVtT q7lNLytPqpR6uuCIrhpuR0CPb++Rvjp2QrWgXr5VWBktT1MLk8WzDfX3+qxd5xC8 B00EKneBZkhohxBdb0co8ipxDpQAFTy+SeXhuROd5vwLEuh3OJeZMEUfTcNfUbvo J/IHUIGeDmhK//DumQE79z3vfLc2EcQgenMo0VoBy4ooQ2o4B7Y3plXHuStvtn6h lam30rSA+p3nKskrMDDpNKadHtmCrwI/rZZBFYb7DTdUpi69NeW3TEMRXGG3dMdk YYTdKN0zkB5BTvRx5FC6GX+cz/Uq3SnxlSmWB1DT+2nlnlwzVAgbNdsW4HiDUIdI FBJyQDqWTH9e7aUv3RzlrT4c995YBTfh1Jdvq5mzneMf6lab7iZoW1hGYQLRRC5y v8iTycwHd7EEGf/tjGrJ/s5nWPgGv/DEOg95/UvTRz9dZUWRwHCFANd0LaFW/HdF qkhuiVZOKNXqfr7zxnCw/F+0408+vcR43HKUTwId7vql+F+EgjT69U5pDF4sh6ep SgLTHoCGd/bekq5HHkrylCOty+ZU9EEWp4fQD+wN3RzGxJ080AA3RjkqsXmHbd5e aXlnhDB68mWpoHFuJ6YciNBBXlC/2HhDeR7PiMD9Zj0/7A3UHZj4hHXcSQoCnSW7 mwIDAQABo0UwQzAdBgNVHQ4EFgQU6yQKlZ+FEJyMkjsPxhmHERps1vgwEgYDVR0T AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIB AEfcrS4I2xsbTuULMtHlOGLgv7Mo+aJ8Os+vCE+MvSMVrsSvslVnigzE6aSvi7Ys TTpstmAhIfOcEEqldRa5GcG6Az6NWlbskZXfftojWtjnZevkuRnn/xICdizX+mj4 A3WL/GOVpTAWVUa5+lUh1AzFWhBw5kDvMxHyQhmpegt98ptxNpj5n9cHSWwJpjXl boNil+Y5kA4raWGa6gEOE0lwmLyS5pjOWCTCTD2MvldNakYPMqObVPE4DNia4qal huxOyxdr51KNBc7yVgQ1Fa7ZD+rF1a6aa6GwvwAKYNoxd7VW7fmZBSckpuWer9+R YCVvgE2a4vLnc5zLFwOfhjqaZSiIx0PMEmkHx1ZTriVg0GVZ8beU+I9BxUQsJyJU S4z9UaHexmYu/YRAQXKODw1xhqqR6oW2+CXYrtUvzN6kamFh8jN3AKf4PKA+TmjL maW0M7FVp+0Erne59hBcZhKG0QYx4AkjCwKclRwDBxXcBTcmXduDFeGzLub0napJ Uczo2zURQ7L6qPew9Guh0O1dnGp+kgi8T8kt/DniMvQBWDK3GvFi0A5mVjLQqMHQ HvAPzshx7Si1O45hepGK4fxQMcwAHw6c1V3j10R8RHh7bckld5mJ5Nh/BjZhk/LK N5Klfwoek0QSVAXQfnX1YtJfrHfz5+TYx0NnYTcgX6fE -----END CERTIFICATE-----
- Obter o nome do usuário e senha do Kafka .
oc extract secret/maskafkauser -n kafka --keys=sasl.jaas.config --to=- - Obtenha o mecanismo Simple Authentication and Security Layer (SASL).
oc get Kafka.kafka.strimzi.io maskafka -n kafka -o jsonpath='{.spec.kafka.listeners[0].authentication}' | jq -r .Saída de amostra:{ "type": "scram-sha-512" }Nota: o mecanismo SASL é SCRAM-SHA-512.
- Para obter o host e a porta Kafka , insira o código a seguir:
Instalando usando a interface da linha de comandos (CLI) do Red Hat OpenShift
Procedimento
- No host bastion, crie o arquivo YAML kafka-sub.yaml, que contém o namespace,
OperatorGroupeSubscriptionrecursos que são usados para instalar o Kafka:--- apiVersion: v1 kind: Namespace metadata: name: "kafka" --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: "kafka" namespace: "kafka" spec: targetNamespaces: - "kafka" --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: amq-streams namespace: "kafka" spec: channel: amq-streams-1.8.x installPlanApproval: Automatic name: amq-streams source: redhat-operators sourceNamespace: openshift-marketplaceDica: para Maximo Application Suite no AWS (BYOL) versão 8.7, mudeamq-streams-1.8.xparaamq-streams-1.7.xpara corresponder à versão dos fluxos do AMQ que estão instalados no namespace do BAS.. - Aplique o arquivo kafka-sub.yaml no cluster do Red Hat OpenShift Container Platform :
oc apply -f kafka-sub.yaml - Verifique se o operador AMQ Streams foi implementado com sucesso:
oc get csv -n kafka -l operators.coreos.com/amq-streams.kafkaSaída de amostraNAME DISPLAY VERSION REPLACES PHASE amqstreams.v1.8.4 Red Hat Integration-AMQ Streams 1.8.4 amqstreams.v1.8.3 Bem-sucedido
- No host bastion, crie o arquivo YAML kafka-cluster.yaml, que contém o recurso Kafka que descreve a configuração do cluster Kafka :
--- apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: "maskafka" namespace: "kafka" spec: # ------------------------------------------------------- kafka: version: 2.7.0 replicas: 3 resources: requests: memory: 4Gi cpu: "1" limits: memory: 4Gi cpu: "2" jvmOptions: -Xms: 3072m -Xmx: 3072m config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: "2.7" log.retention.hours: 24 log.retention.bytes: 1073741824 log.segment.bytes: 268435456 log.cleaner.enable: true log.cleanup.policy: delete auto.create.topics.enable: false storage: type: jbod volumes: - id: 0 type: persistent-claim class: "ocs-storagecluster-ceph-rbd" size: 100Gi deleteClaim: true authorization: type: simple listeners: - name: tls port: 9094 type: route tls: true authentication: type: scram-sha-512 # ------------------------------------------------------- zookeeper: replicas: 3 resources: requests: memory: 1Gi cpu: "0.5" limits: memory: 1Gi cpu: "1" jvmOptions: -Xms: 768m -Xmx: 768m storage: type: persistent-claim class: "ocs-storagecluster-ceph-rbd" size: 10Gi deleteClaim: true # ------------------------------------------------------- entityOperator: userOperator: {} topicOperator: {}Certifique-se de que você modifique a classe de armazenamento especificada
ocs-storagecluster-ceph-rbdpara usar uma classe de armazenamento suportada para o seu cluster. - Aplique o arquivo kafka-cluster.yaml ao cluster do Red Hat OpenShift :
oc apply -f kafka-cluster.yaml - Verifique se o cluster Kafka foi implementado com sucesso. O CR do Kafka está no estado Pronto
O CR Kafka especificado no comando a seguir é completo com seu nome do grupo de API kafkas.kafka.strimzi.io para evitar ambiguidade com o CR Kafka fornecido pelo kafkas.ibmevents.ibm.com.
oc get kafkas.kafka.strimzi.io -n kafkaSaída de amostraNOME DESEJADO KAFKA RÉPLICAS DESEJADAS ZK RÉPLICAS READY ADVERTAS maskafka 3 3 True
- No host bastion, crie o arquivo YAML kafka-user.yaml. O arquivo contém o recurso KafkaUser que descreve a configuração do usuário Kafka que é usado pelo Maximo Application Suite para autenticar conexões com o Kafka:
--- apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaUser metadata: name: "maskafkauser" labels: strimzi.io/cluster: "maskafka" namespace: "kafka" spec: authentication: type: scram-sha-512 authorization: type: simple acls: - host: '*' operation: All resource: name: '*' patternType: literal type: topic - host: '*' operation: All resource: name: '*' patternType: literal type: group - host: '*' operation: All resource: name: '*' patternType: literal type: cluster - host: '*' operation: All resource: name: '*' patternType: literal type: transactionalId - Aplique o arquivo kafka-user.yaml ao cluster do Red Hat OpenShift :
oc apply -f kafka-user.yaml - Verifique se o operador da entidade do usuário foi criado o segredo maskafkauser .
oc get secret maskafkauser -n kafkaSaída de amostraPágina NOME TIPO DATA maskafkauser Opaque 2 2m14s
- Obtenha as informações Kafka .
- Obtenha o Kafka host e a porta.
oc get Kafka.kafka.strimzi.io maskafka -o jsonpath="{.status.listeners[0].addresses[0]}"Saída de amostra:{"host":"maskafka-kafka-tls-bootstrap-kafka.apps.cluster1.example-cluster.com","port":443} - Obtenha o certificado de autoridade de certificação Kafka .
oc get Kafka.kafka.strimzi.io maskafka -o jsonpath="{.status.listeners[0].certificates[0]}"Saída de amostra:-----BEGIN CERTIFICATE----- MIIFLTCCAxWgAwIBAgIUTExUl2XrdIPy6vZAtk9toGh2jbEwDQYJKoZIhvcNAQEN BQAwLTETMBEGA1UECgwKaW8uc3RyaW16aTEWMBQGA1UEAwwNY2x1c3Rlci1jYSB2 MDAeFw0yMjA1MTEyMTAyMzFaFw0yMzA1MTEyMTAyMzFaMC0xEzARBgNVBAoMCmlv LnN0cmltemkxFjAUBgNVBAMMDWNsdXN0ZXItY2EgdjAwggIiMA0GCSqGSIb3DQEB AQUAA4ICDwAwggIKAoICAQDh6bYIudhZQ1/rR9IgSb7pzqTvtRiNOvzmnZPdtVtT q7lNLytPqpR6uuCIrhpuR0CPb++Rvjp2QrWgXr5VWBktT1MLk8WzDfX3+qxd5xC8 B00EKneBZkhohxBdb0co8ipxDpQAFTy+SeXhuROd5vwLEuh3OJeZMEUfTcNfUbvo J/IHUIGeDmhK//DumQE79z3vfLc2EcQgenMo0VoBy4ooQ2o4B7Y3plXHuStvtn6h lam30rSA+p3nKskrMDDpNKadHtmCrwI/rZZBFYb7DTdUpi69NeW3TEMRXGG3dMdk YYTdKN0zkB5BTvRx5FC6GX+cz/Uq3SnxlSmWB1DT+2nlnlwzVAgbNdsW4HiDUIdI FBJyQDqWTH9e7aUv3RzlrT4c995YBTfh1Jdvq5mzneMf6lab7iZoW1hGYQLRRC5y v8iTycwHd7EEGf/tjGrJ/s5nWPgGv/DEOg95/UvTRz9dZUWRwHCFANd0LaFW/HdF qkhuiVZOKNXqfr7zxnCw/F+0408+vcR43HKUTwId7vql+F+EgjT69U5pDF4sh6ep SgLTHoCGd/bekq5HHkrylCOty+ZU9EEWp4fQD+wN3RzGxJ080AA3RjkqsXmHbd5e aXlnhDB68mWpoHFuJ6YciNBBXlC/2HhDeR7PiMD9Zj0/7A3UHZj4hHXcSQoCnSW7 mwIDAQABo0UwQzAdBgNVHQ4EFgQU6yQKlZ+FEJyMkjsPxhmHERps1vgwEgYDVR0T AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIB AEfcrS4I2xsbTuULMtHlOGLgv7Mo+aJ8Os+vCE+MvSMVrsSvslVnigzE6aSvi7Ys TTpstmAhIfOcEEqldRa5GcG6Az6NWlbskZXfftojWtjnZevkuRnn/xICdizX+mj4 A3WL/GOVpTAWVUa5+lUh1AzFWhBw5kDvMxHyQhmpegt98ptxNpj5n9cHSWwJpjXl boNil+Y5kA4raWGa6gEOE0lwmLyS5pjOWCTCTD2MvldNakYPMqObVPE4DNia4qal huxOyxdr51KNBc7yVgQ1Fa7ZD+rF1a6aa6GwvwAKYNoxd7VW7fmZBSckpuWer9+R YCVvgE2a4vLnc5zLFwOfhjqaZSiIx0PMEmkHx1ZTriVg0GVZ8beU+I9BxUQsJyJU S4z9UaHexmYu/YRAQXKODw1xhqqR6oW2+CXYrtUvzN6kamFh8jN3AKf4PKA+TmjL maW0M7FVp+0Erne59hBcZhKG0QYx4AkjCwKclRwDBxXcBTcmXduDFeGzLub0napJ Uczo2zURQ7L6qPew9Guh0O1dnGp+kgi8T8kt/DniMvQBWDK3GvFi0A5mVjLQqMHQ HvAPzshx7Si1O45hepGK4fxQMcwAHw6c1V3j10R8RHh7bckld5mJ5Nh/BjZhk/LK N5Klfwoek0QSVAXQfnX1YtJfrHfz5+TYx0NnYTcgX6fE -----END CERTIFICATE----- - Obter o nome do usuário e senha do Kafka
oc extract secret/maskafkauser -n kafka --keys=sasl.jaas.config --to=- - Obtenha o mecanismo SASL.
oc get Kafka.kafka.strimzi.io maskafka -n kafka -o jsonpath='{.spec.kafka.listeners[0].authentication}' | jq -r .Saída de amostra:{ "type": "scram-sha-512" }Nota: o Mecanismo SASL é SCRAM-SHA-512.
- Obtenha o Kafka host e a porta.