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.
Selecione sua instância
Selecione a instância em que você implantou as Operações do Azure IoT no início rápido anterior:
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:
Selecione Gerenciar pontos de extremidade de ativos e, em seguida, Criar ponto de extremidade de ativos:
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
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 usarkubectl
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:
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.
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
.Reinicie o
aio-opc-supervisor
pod usando um comando semelhante ao exemplo a seguir. Use o nome doaio-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:
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 |
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.
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:
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:
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.
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
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:
Se não houver fluxo de dados, reinicie o aio-opc-opc.tcp-1
pod:
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
.Reinicie o
aio-opc-opc.tcp-1
pod usando um comando semelhante ao exemplo a seguir. Use o nome doaio-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.