Partilhar via


Guia de início rápido: adicionar ativos OPC UA ao cluster do Azure IoT Operations Preview

Importante

Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.

Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Neste início rápido, você adiciona manualmente ativos OPC UA ao cluster do Azure IoT Operations Preview. Esses ativos publicam mensagens no agente do Azure IoT MQ Preview em seu cluster de Operações do Azure IoT. Normalmente, um usuário OT conclui essas etapas.

Um ativo é um dispositivo físico ou entidade lógica que representa um dispositivo, uma máquina, um sistema ou um processo. Por exemplo, um ativo físico pode ser uma bomba, um motor, um tanque ou uma linha de produção. Um ativo lógico que você define pode ter propriedades, transmitir telemetria ou gerar eventos.

Os servidores OPC UA são aplicações de software que comunicam com ativos. As tags OPC UA são pontos de dados que os servidores OPC UA expõem. As tags OPC UA podem fornecer dados históricos ou em tempo real sobre o status, desempenho, qualidade ou condição dos ativos.

Neste início rápido, você usa o portal Azure IoT Operations (visualização) para criar seus ativos. Você também pode usar a CLI do Azure para concluir algumas dessas tarefas.

Pré-requisitos

Guia de início rápido completo : implante o Azure IoT Operations Preview em um cluster Kubernetes habilitado para Arc antes de começar este início rápido.

Para entrar no portal de Operações IoT do Azure (visualização), você precisa de uma conta corporativa ou de estudante no locatário onde implantou as Operações do Azure IoT. Se você estiver usando uma conta da Microsoft (MSA), precisará criar uma ID do Microsoft Entra com pelo menos permissões de colaborador para o grupo de recursos que contém sua instância do Kubernetes - Azure Arc . Para saber mais, consulte Problemas > conhecidos Criar conta Entra.

Que problema vamos resolver?

Os dados que os servidores OPC UA expõem podem ter uma estrutura complexa e podem ser difíceis de entender. O Azure IoT Operations fornece uma maneira de modelar ativos OPC UA como tags, eventos e propriedades. Essa modelagem facilita a compreensão dos dados e o uso deles em processos downstream, como o agente MQ e os pipelines do Azure IoT Data Processor Preview.

Entre no portal de Operações do Azure IoT (visualização)

Para criar pontos de extremidade de ativos, ativos e assinar tags e eventos OPC UA, use o portal Azure IoT Operations (visualização). Navegue até o portal de Operações do Azure IoT (visualização) em seu navegador e entre com suas credenciais de ID do Microsoft Entra.

Importante

Tem de utilizar uma conta escolar ou profissional para iniciar sessão no portal de Operações IoT do Azure (pré-visualização). Para saber mais, consulte Problemas > conhecidos Criar conta Entra.

Selecione o seu site

Depois de iniciar sessão, o portal apresenta uma lista de sites aos quais tem acesso. Cada site é um conjunto de instâncias do Azure IoT Operations onde você pode configurar seus ativos. O administrador de TI é responsável por organizar instâncias em sites e conceder acesso a usuários de OT em sua organização. Como você está trabalhando com uma nova implantação, ainda não há sites. Você pode encontrar o cluster criado no início rápido anterior selecionando Instâncias não atribuídas. No portal, uma instância representa um cluster onde você implantou as Operações do Azure IoT.

Captura de ecrã que mostra o nó de instâncias não atribuídas no portal Azure IoT Operations (pré-visualização).

Selecione sua instância

Selecione a instância em que você implantou as Operações do Azure IoT no início rápido anterior:

Captura de ecrã da lista de instâncias de Operações do Azure IoT.

Gorjeta

Se você não vir nenhuma instância, talvez não esteja no locatário correto do Microsoft Entra ID. Você pode alterar o locatário no menu superior direito do portal.

Adicionar um ponto de extremidade de ativo

Ao implantar as Operações IoT do Azure, você optou por incluir um simulador de PLC OPC integrado. Nesta etapa, você adiciona um ponto de extremidade de ativo que permite que você se conecte ao simulador de PLC OPC.

Para adicionar um ponto de extremidade de ativo:

  1. Selecione Gerenciar pontos de extremidade de ativos e, em seguida, Criar ponto de extremidade de ativos:

    Captura de tela que mostra a página de pontos de extremidade do ativo no portal de Operações do Azure IoT (visualização).

  2. Insira as seguintes informações do ponto final:

    Campo Value
    Nome do ponto de extremidade do ativo opc-ua-connector-0
    URL do servidor OPC UA opc.tcp://opcplc-000000:50000
    Modo de autenticação do usuário Anonymous
    Autenticação de transporte Do not use transport authentication certificate
  3. Para salvar a definição, selecione Criar.

    Essa configuração implanta um novo ponto de extremidade de ativo chamado opc-ua-connector-0 para o cluster. Você pode usar kubectl para exibir os pontos de extremidade do ativo:

    kubectl get assetendpointprofile -n azure-iot-operations
    

Configurar o simulador

Esses guias de início rápido usam o simulador OPC PLC para gerar dados de amostra. Para habilitar o cenário de início rápido, você precisa configurar seu ponto de extremidade de ativo para se conectar sem confiança mútua estabelecida. Esta configuração não é recomendada para ambientes de produção ou pré-produção:

  1. Para configurar o ponto de extremidade do ativo para o cenário de início rápido, execute o seguinte comando:

    kubectl patch AssetEndpointProfile opc-ua-connector-0 -n azure-iot-operations --type=merge -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"opc-ua-connector-0\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
    

    Atenção

    Não use essa configuração em ambientes de produção ou pré-produção. Expor seu cluster à Internet sem autenticação adequada pode levar a acesso não autorizado e até mesmo ataques DDOS.

    Para saber mais, consulte a seção Implantar o simulador de PLC OPC.

  2. Para permitir que as alterações de configuração entrem em vigor imediatamente, primeiro localize o nome do seu aio-opc-supervisor pod usando o seguinte comando:

    kubectl get pods -n azure-iot-operations
    

    O nome do seu pod é parecido com aio-opc-supervisor-956fbb649-k9ppr.

  3. Reinicie o aio-opc-supervisor pod usando um comando semelhante ao exemplo a seguir. Use o nome do aio-opc-supervisor pod da etapa anterior:

    kubectl delete pod aio-opc-supervisor-956fbb649-k9ppr -n azure-iot-operations
    

Depois de definir um ativo, um pod de conector OPC UA o descobre. O pod usa o ponto de extremidade de ativo especificado na definição de ativo para se conectar a um servidor OPC UA. Você pode usar kubectl para exibir o pod de descoberta que foi criado quando você adicionou o ponto de extremidade do ativo. O nome do pod se parece com aio-opc-opc.tcp-1-8f96f76-kvdbt:

kubectl get pods -n azure-iot-operations

Quando o simulador OPC PLC está em execução, os dados fluem do simulador para o conector, para o broker OPC UA e, finalmente, para o broker MQ.

Gerir os seus recursos

Depois de selecionar sua instância no portal de Operações do Azure IoT (visualização), você verá a lista de ativos disponíveis na página Ativos . Se ainda não houver ativos, esta lista está vazia:

Captura de ecrã da lista de ativos vazia das Operações IoT do Azure.

Criar um ativo

Para criar um ativo, selecione Criar ativo.

Insira as seguintes informações de ativos:

Campo Value
Nome do ativo thermostat
Ponto de extremidade de ativos opc-ua-connector-0
Description A simulated thermostat asset

Remova as propriedades personalizadas existentes e adicione as seguintes propriedades personalizadas. Tenha cuidado para usar os nomes de propriedade exatos, como o modelo do Power BI em um início rápido posterior consulta para eles:

Nome da propriedade Detalhe do imóvel
batch 102
cliente Contoso
Equipamentos Caldeira
isSpare verdadeiro
localização Porto

Captura de ecrã da página de detalhes do ativo Azure IoT Operations.

Selecione Avançar para ir para a página Adicionar tags .

Criar tags OPC UA

Adicione duas tags OPC UA na página Adicionar tags . Para adicionar cada etiqueta, selecione Adicionar etiqueta ou CSV e, em seguida, selecione Adicionar etiqueta. Insira os detalhes da tag mostrados na tabela a seguir:

ID do Nó Nome da etiqueta Modo de observabilidade
ns=3; s=FastUInt10 temperatura nenhum
ns=3; s=FastUInt100 Etiqueta 10 nenhum

O modo de Observabilidade é um dos seguintes valores: none, gauge, counter, histogram, ou log.

Você pode substituir o intervalo de amostragem padrão e o tamanho da fila para cada tag.

Captura de ecrã da página de adicionar etiqueta das Operações IoT do Azure.

Selecione Avançar para ir para a página Adicionar eventos e, em seguida, Avançar para ir para a página Revisão .

Rever

Revise os detalhes do ativo e da tag e faça os ajustes necessários antes de selecionar Criar:

Captura de ecrã da página de revisão de ativos de criação de Operações IoT do Azure.

Verificar se os dados estão fluindo

Verifique se os dados estão fluindo para o broker MQTT usando a ferramenta mqttui . Neste exemplo, você executa a ferramenta mqttui dentro do cluster Kubernetes:

  1. Execute o seguinte comando para implantar um pod que inclua as ferramentas mqttui e mosquitto que são úteis para interagir com o broker MQ no cluster:

    kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
    

    O trecho a seguir mostra o arquivo YAML que você aplicou:

    # Important: do not use in production environments
    # Creates a pod with mosquitto-clients and mqttui utilities in your cluster
    apiVersion: v1
    kind: Pod
    metadata:
      name: mqtt-client
      # The namespace must match the IoT MQ BrokerListener's namespace
      # Otherwise use the long hostname: aio-mq-dmqtt-frontend.azure-iot-operations.svc.cluster.local
      namespace: azure-iot-operations
    spec:
      # Use the "mqtt-client" service account which comes with default deployment
      # Otherwise create it with `kubectl create serviceaccount mqtt-client -n azure-iot-operations`
      serviceAccountName: mqtt-client
      containers:
        # Install mosquitto and mqttui utilities on Alpine linux
      - image: alpine
        name: mqtt-client
        command: ["sh", "-c"]
        args: ["apk add mosquitto-clients mqttui && sleep infinity"]
        resources:
          limits:
            cpu: 500m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: mq-sat
          mountPath: /var/run/secrets/tokens
        - name: trust-bundle
          mountPath: /var/run/certs
      volumes:
      - name: mq-sat
        projected:
          sources:
          - serviceAccountToken:
              path: mq-sat
              audience: aio-mq # Must match audience in BrokerAuthentication
              expirationSeconds: 86400
      - name: trust-bundle
        configMap:
          name: aio-ca-trust-bundle-test-only # Default root CA cert
    

    Atenção

    Esta configuração não é segura. Não use essa configuração em um ambiente de produção.

  2. Quando o pod mqtt-client estiver em execução, execute o seguinte comando para criar um ambiente de shell no pod que você criou:

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. No shell no pod mqtt-client , execute o seguinte comando para se conectar ao broker MQ usando a ferramenta mqttui :

    mqttui -b mqtts://aio-mq-dmqtt-frontend:8883 -u '$sat' --password $(cat /var/run/secrets/tokens/mq-sat) --insecure
    

Para verificar se o ativo de termostato adicionado está publicando dados, exiba a telemetria azure-iot-operations/data no tópico:

Captura de tela da exibição do tópico mqttui mostrando a telemetria de temperatura.

Se não houver fluxo de dados, reinicie o aio-opc-opc.tcp-1 pod:

  1. Encontre o nome do seu aio-opc-opc.tcp-1 pod usando o seguinte comando:

    kubectl get pods -n azure-iot-operations
    

    O nome do seu pod é parecido com aio-opc-opc.tcp-1-849dd78866-vhmz6.

  2. Reinicie o aio-opc-opc.tcp-1 pod usando um comando semelhante ao exemplo a seguir. Use o nome do aio-opc-opc.tcp-1 pod da etapa anterior:

    kubectl delete pod aio-opc-opc.tcp-1-849dd78866-vhmz6 -n azure-iot-operations
    

As tags de exemplo que você adicionou no início rápido anterior geram mensagens do seu ativo que se parecem com os seguintes exemplos:

{
    "Timestamp": "2024-03-08T00:54:58.6572007Z",
    "MessageType": "ua-deltaframe",
    "payload": {
      "temperature": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
        "Value": 7109
      },
      "Tag 10": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
        "Value": 7109
      }
    },
    "DataSetWriterName": "thermostat",
    "SequenceNumber": 4660
}

Descubra as fontes de dados OPC UA usando o Azure IoT Akri Preview

Na seção anterior, você viu como adicionar ativos manualmente. Você também pode usar o Azure IoT Akri Preview para descobrir automaticamente fontes de dados OPC UA e criar recursos personalizados de instância Akri que representam os dispositivos descobertos. Atualmente, o Akri não pode detetar e criar ativos que possam ser ingeridos na Visualização do Registro de Dispositivo do Azure.

Quando você implanta as Operações do Azure IoT, a implantação inclui os pods do manipulador de descoberta Akri. Para verificar se esses pods estão em execução, execute o seguinte comando:

kubectl get pods -n azure-iot-operations | grep akri
kubectl get pods -n azure-iot-operations |  Select-String -Pattern "akri"

A saída do comando anterior se parece com o exemplo a seguir:

aio-akri-otel-collector-5c775f745b-g97qv       1/1     Running   3 (4h15m ago)    2d23h
aio-akri-agent-daemonset-mp6v7                 1/1     Running   3 (4h15m ago)    2d23h

No terminal do Codespaces, execute o seguinte comando para aplicar uma nova configuração para o manipulador de descoberta:

kubectl apply -f /workspaces/explore-iot-operations/samples/quickstarts/akri-opcua-asset.yaml

O trecho a seguir mostra o arquivo YAML que você aplicou:

apiVersion: akri.sh/v0
kind: Configuration
metadata:
  name: akri-opcua-asset
  namespace: azure-iot-operations
spec:
  discoveryHandler: 
    name: opcua-asset
    discoveryDetails: "opcuaDiscoveryMethod:\n  - asset:\n      endpointUrl: \"	opc.tcp://opcplc-000000:50000\"\n      useSecurity: false\n      autoAcceptUntrustedCertificates: true\n"
  brokerProperties: {}
  capacity: 1

Para verificar a configuração, execute o seguinte comando para exibir as instâncias do Akri que representam as fontes de dados OPC UA descobertas pelo Akri:

kubectl get akrii -n azure-iot-operations

Pode levar alguns minutos para que a instância apareça.

A saída do comando anterior se parece com o exemplo a seguir.

NAME                      CONFIG             SHARED   NODES                          AGE
akri-opcua-asset-dbdef0   akri-opcua-asset   true     ["k3d-k3s-default-server-0"]   45s

Agora você pode usar esses recursos no namespace do cluster local.

Para confirmar que o Akri se conectou ao OPC UA Broker, copie e cole o nome da instância do Akri da etapa anterior no seguinte comando:

kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json

A saída do comando se parece com o exemplo a seguir. Este trecho de exemplo da saída mostra os valores da instância brokerProperties Akri e confirma que o OPC UA Broker está conectado.

"spec": {

        "brokerProperties": {
            "ApplicationUri": "Boiler #2",
            "AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……

Como resolvemos o problema?

Neste início rápido, você adicionou um ponto de extremidade de ativo e, em seguida, definiu um ativo e tags. Os ativos e tags modelam dados do servidor OPC UA para tornar os dados mais fáceis de usar em um broker MQTT e outros processos downstream. Você usa o ativo de termostato definido no próximo início rápido.

Clean up resources (Limpar recursos)

Se você não usar mais essa implantação, exclua o cluster do Kubernetes onde implantou as Operações do Azure IoT e remova o grupo de recursos do Azure que contém o cluster.

Próximo passo

Guia de início rápido: envie telemetria de ativos para a nuvem usando o conector do data lake para o Azure IoT MQ.