Giter Site home page Giter Site logo

azure-samples / iot-edge-for-iiot Goto Github PK

View Code? Open in Web Editor NEW
47.0 23.0 48.0 16.62 MB

Learn how to use a hierarchy of Azure IoT Edge devices in a manufacturing environment to extract data from industrial assets and upload it to the Cloud while meeting the strict requirements of the Purdue network model.

License: MIT License

Shell 76.00% Python 1.14% Dockerfile 1.12% JavaScript 11.28% TSQL 10.45%

iot-edge-for-iiot's Introduction

page_type languages products description
sample
bash
azure-iot-edge
azure-iot-hub
azure-sql-edge
This sample shows how to simulate an industrial environment and use a hierarchy of IoT Edge devices to extract data from industrial assets, visualize it offline and upload it to the Cloud.

Azure IoT Edge for Industrial IoT

3 parts - 90 mins

This sample shows how to simulate an industrial environment and use a hierarchy of IoT Edge devices to extract data from industrial assets, visualize it offline and upload it to the Cloud.

Manufacturing networks are often organized in hierarchical layers following the Purdue network model (included in the ISA 95 and ISA 99 standards). In these networks, only the top layer has connectivity to the cloud and the lower layers in the hierarchy can only communicate with adjacent north and south layers.

In a first part, we'll simulate in Azure a Purdue network, industrial assets and a hierarchy of IoT Edge gateways to acquire industrial data and upload it to the cloud securely without compromising the security of the network.

Simulated Purdue Network with a hierarchy of IoT Edge devices

In a second part, we'll remotely deploy workloads to IoT Edge devices in order to 1/collect data from industrial assets over OPC UA with OPC Publisher, 2/store this data in a local SQL Edge database and 3/visualize this data locally even when offline. We'll build these workloads using a CI/CD pipeline with Azure DevOps.

Offline dashboard to monitor IIOT assets

In a third part, we'll remotely monitor the health of all our IoT Edge devices independently from the network location.

Device Details Dashboard

Video

Check out this video to see this demo in action and understand how it was built:

Nested IoT Edge video

Get started

  1. Simulate an Purdue network, industial assets and a hierarchy of IoT Edge devices (30 mins)
  2. Deploy workloads to collect, store and visualize data from industrial assets (30 mins)
  3. Monitor your IoT Edge devices from the cloud (30 mins)





Contributing

The project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

iot-edge-for-iiot's People

Contributors

emmanuel-bv avatar kgremban avatar nyanzebra avatar onderyildirim avatar toddysm avatar varunpuranik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iot-edge-for-iiot's Issues

Install script fails to parse json topLayerBaseDeploymentItProxy.json

Script seemed to run successfully all the way to the pushing of base deployment and then this error message:

===========================================================
== Pushing base deployment to all IoT Edge devices ==

sed: -e expression #1, char 103: unknown option to `s'
L5-edge...
Failed to parse json from file: '/home/justin/iot-edge-for-iiot/scripts/./edgeDeployments/topLayerBaseDeploymentItProxy.json' for argument 'content' with exception:
Expecting value: line 1 column 1 (char 0)
L4-edge...
L3-edge...
done

Iot edge devices runtime status showing error

After deploying the simulation script successfully, I have found the IoT Edge devices/modules not going to running status.
Could you please clarify whether how to solve this or is there anything I have missed any steps?

Certificate has expired or is not yet valid. NotTimeValid: certificate has expired

Hi,

We have performed the setup from the script but are not able to get the OPC UA publisher working. We get a certificate issues.

Logs OPC Publisher
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Connecting state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: SendHelloMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: SendHelloMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessAcknowledgeMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessAcknowledgeMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Opening state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #0 created. CreatedAt = 10:35:59.582 . Lifetime = 3600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Opening state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #0 created. CreatedAt = 10:35:59.582 . Lifetime = 3600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessOpenSecureChannelResponse() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Security Policy: http://opcfoundation.org/UA/SecurityPolicy#None 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Sender Certificate: (none) 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Security) SECURE CHANNEL CREATED [.NetStandard ClientChannel UA-TCP 1.4.367.42] [ID=2730] Connected To: opc.tcp://10.16.3.4:54845/OPCUA/Site1 [None/None/Binary] 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #1 activated. CreatedAt = 10:35:59.582 . Lifetime = 600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2730 in Open state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessOpenSecureChannelResponse() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Security Policy: http://opcfoundation.org/UA/SecurityPolicy#None 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Sender Certificate: (none) 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Security) SECURE CHANNEL CREATED [.NetStandard ClientChannel UA-TCP 1.4.367.42] [ID=2729] Connected To: opc.tcp://10.16.3.4:54855/OPCUA/Site2 [None/None/Binary] 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #1 activated. CreatedAt = 10:35:59.582 . Lifetime = 600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2729 in Open state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Completed. RequestHandle=1, PendingRequestCount=0 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2730: Close 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2730 in Closing state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2730: SendCloseSecureChannelRequest() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Completed. RequestHandle=1, PendingRequestCount=0 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2729: Close 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2729 in Closing state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2729: SendCloseSecureChannelRequest() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2730 in Closed state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) CLIENTCHANNEL SOCKET CLOSED: 034C104A, ChannelId=2730 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Creating session '5a15c295092218e43384032f655bf7914f725416' for endpoint 'opc.tcp://10.16.3.4:54845/OPCUA/Site1'... 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Start Azure IIoT 5a15c295092218e43384032f655bf7914f725416 ... 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Called. RequestHandle=1, PendingRequestCount=1 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Connecting state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2729 in Closed state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) CLIENTCHANNEL SOCKET CLOSED: 017FF41D, ChannelId=2729 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Creating session 'a015f4255f1d26e344521d1a494a355c3876db1b' for endpoint 'opc.tcp://10.16.3.4:54855/OPCUA/Site2'... 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Start Azure IIoT a015f4255f1d26e344521d1a494a355c3876db1b ... 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Called. RequestHandle=1, PendingRequestCount=1 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Connecting state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: SendHelloMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: SendHelloMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessAcknowledgeMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Opening state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #0 created. CreatedAt = 10:35:59.592 . Lifetime = 3600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessOpenSecureChannelResponse() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Security Policy: http://opcfoundation.org/UA/SecurityPolicy#None 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessAcknowledgeMessage() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Opening state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #0 created. CreatedAt = 10:35:59.594 . Lifetime = 3600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Sender Certificate: (none) 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Security) SECURE CHANNEL CREATED [.NetStandard ClientChannel UA-TCP 1.4.367.42] [ID=2731] Connected To: opc.tcp://10.16.3.4:54845/OPCUA/Site1 [None/None/Binary] 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #1 activated. CreatedAt = 10:35:59.592 . Lifetime = 600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2731 in Open state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessOpenSecureChannelResponse() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Security Policy: http://opcfoundation.org/UA/SecurityPolicy#None 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Sender Certificate: (none) 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Security) SECURE CHANNEL CREATED [.NetStandard ClientChannel UA-TCP 1.4.367.42] [ID=2732] Connected To: opc.tcp://10.16.3.4:54855/OPCUA/Site2 [None/None/Binary] 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Token #1 activated. CreatedAt = 10:35:59.594 . Lifetime = 600000 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Completed. RequestHandle=1, PendingRequestCount=0 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2731: Close 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2731 in Closing state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2731: SendCloseSecureChannelRequest() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2732 in Open state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2731 in Closed state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) CLIENTCHANNEL SOCKET CLOSED: 0055DB41, ChannelId=2731 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Completed. RequestHandle=1, PendingRequestCount=0 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2732: Close 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2732 in Closing state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2732: SendCloseSecureChannelRequest() 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 2732 in Closed state. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) CLIENTCHANNEL SOCKET CLOSED: 0134A138, ChannelId=2732 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) ***EXCEPTION*** BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) ***EXCEPTION*** BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Certificate Vaildation failed for 'CN=NodeOPCUA, O=NodeOPCUA'. Reason=Certificate has expired or is not yet valid. NotTimeValid: certificate has expired
Id: BadCertificateTimeInvalid
Description: Certificate has expired or is not yet valid. NotTimeValid: certificate has expired 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Security)  -- BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Rejecting peer certificate 2AC56A53D2F5BA96A38E286799A45269BE152CA4, 'CN=NodeOPCUA, O=NodeOPCUA' because of BadCertificateTimeInvalid. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) ***EXCEPTION*** BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 ERR Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Error) Certificate 'CN=NodeOPCUA, O=NodeOPCUA' rejected. Reason=BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 ERR Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Error) Writing rejected certificate to directory: [Directory]pki/rejected 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) ***EXCEPTION*** BadCertificateTimeInvalid ServiceResultException Certificate has expired or is not yet valid. NotTimeValid: certificate has expired 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Azure IIoT a015f4255f1d26e344521d1a494a355c3876db1b took 00:00:00.0200083. 
[10:35:59 DBG Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Failed to connect to opc.tcp://10.16.3.4:54855/OPCUA/Site2: Certificate has expired or is not yet valid. NotTimeValid: certificate has expired - try again... 
[10:35:59 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Failed to create session 'a015f4255f1d26e344521d1a494a355c3876db1b' due to One or more errors occurred. (Certificate has expired or is not yet valid. NotTimeValid: certificate has expired) 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Certificate Vaildation failed for 'CN=NodeOPCUA, O=NodeOPCUA'. Reason=Certificate has expired or is not yet valid. NotTimeValid: certificate has expired
Id: BadCertificateTimeInvalid
Description: Certificate has expired or is not yet valid. NotTimeValid: certificate has expired 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Security)  -- BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Rejecting peer certificate 2AC56A53D2F5BA96A38E286799A45269BE152CA4, 'CN=NodeOPCUA, O=NodeOPCUA' because of BadCertificateTimeInvalid. 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) ***EXCEPTION*** BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 ERR Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Error) Certificate 'CN=NodeOPCUA, O=NodeOPCUA' rejected. Reason=BadCertificateTimeInvalid 'Certificate has expired or is not yet valid. NotTimeValid: certificate has expired' 
[10:35:59 ERR Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Error) Writing rejected certificate to directory: [Directory]pki/rejected 
[10:35:59 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) ***EXCEPTION*** BadCertificateTimeInvalid ServiceResultException Certificate has expired or is not yet valid. NotTimeValid: certificate has expired 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Azure IIoT 5a15c295092218e43384032f655bf7914f725416 took 00:00:00.0236448. 
[10:35:59 DBG Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Failed to connect to opc.tcp://10.16.3.4:54845/OPCUA/Site1: Certificate has expired or is not yet valid. NotTimeValid: certificate has expired - try again... 
[10:35:59 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Failed to create session '5a15c295092218e43384032f655bf7914f725416' due to One or more errors occurred. (Certificate has expired or is not yet valid. NotTimeValid: certificate has expired) 
[10:35:59 DBG Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] Identity L3-edge; opcpublisher 
[10:35:59 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] 
  DIAGNOSTICS INFORMATION for          : opc.tcp://10.16.3.4:54845/OPCUA/Site1_5a15c295092218e43384032f655bf7914f725416
  # Ingestion duration                 :    00:00:00:00 (dd:hh:mm:ss)
  # Ingress DataChanges (from OPC)     :              0 
  # Ingress ValueChanges (from OPC)    :              0 
  # Ingress BatchBlock buffer size     :              0
  # Encoding Block input/output size   :              0 | 0
  # Encoder Notifications processed    :              0
  # Encoder Notifications dropped      :              0
  # Encoder IoT Messages processed     :              0
  # Encoder avg Notifications/Message  :              0
  # Encoder avg IoT Message body size  :              0 (0%)
  # Encoder avg IoT Chunk (4 KB) usage :              0
  # Estimated IoT Chunks (4 KB) per day:              0
  # Outgress Batch Block buffer size   :              0
  # Outgress input buffer count        :              0
  # Outgress input buffer dropped      :              0
  # Outgress IoT message count         :              0 
  # Connection retries                 :            109
 
[10:36:00 DBG Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker+JobProcess] Sending job processor heartbeat... 
[10:36:00 DBG Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.LegacyJobOrchestrator] SendHeartbeatAsync updated worker StandalonePublisher_0 with Keep instruction for job opc.tcp://10.16.3.4:54845/OPCUA/Site1_5a15c295092218e43384032f655bf7914f725416. 
[10:36:09 DBG Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] Identity L3-edge; opcpublisher 
[10:36:09 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] 
  DIAGNOSTICS INFORMATION for          : opc.tcp://10.16.3.4:54855/OPCUA/Site2_a015f4255f1d26e344521d1a494a355c3876db1b
  # Ingestion duration                 :    00:00:00:00 (dd:hh:mm:ss)
  # Ingress DataChanges (from OPC)     :              0 
  # Ingress ValueChanges (from OPC)    :              0 
  # Ingress BatchBlock buffer size     :              0
  # Encoding Block input/output size   :              0 | 0
  # Encoder Notifications processed    :              0
  # Encoder Notifications dropped      :              0
  # Encoder IoT Messages processed     :              0
  # Encoder avg Notifications/Message  :              0
  # Encoder avg IoT Message body size  :              0 (0%)
  # Encoder avg IoT Chunk (4 KB) usage :              0
  # Estimated IoT Chunks (4 KB) per day:              0
  # Outgress Batch Block buffer size   :              0
  # Outgress input buffer count        :              0
  # Outgress input buffer dropped      :              0
  # Outgress IoT message count         :              0 
  # Connection retries                 :            108
 
[10:36:09 DBG Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Runner Keepalive reset due to checkAlive  
[10:36:09 DBG Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Initializing session 'a015f4255f1d26e344521d1a494a355c3876db1b'... 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Called. RequestHandle=1, PendingRequestCount=1 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Connecting state. 
[10:36:09 DBG Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Initializing session '5a15c295092218e43384032f655bf7914f725416'... 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Service) GetEndpoints Called. RequestHandle=1, PendingRequestCount=1 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Connecting state. 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: SendHelloMessage() 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: SendHelloMessage() 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0: ProcessAcknowledgeMessage() 
[10:36:09 VRB Microsoft.Azure.IIoT.OpcUa.Protocol.Services.StackLogger] (Information) Channel 0 in Opening state. 

We have retrieved the certificate from the node and seems it was only valid from 06/12/2020 until 06/12/2021.

We check all systems clock and they are all correct.
Also removed the Pki folder, restarted everything but always getting the same result.

Even upgrading the OPC publisher from 2.6 to 2.8 didn't work.

Can this be related to the NodeRed OPC UA Server in this case. We are using the '-aa' flag on OPC publisher but still fails on it.

Errors during deployment stage 1)

Several Errors appears during install.sh.
It looks like it cannot access key, that has been generated on previous steps. Do I need to add key Name and Passphrase om step ssh-keygen -m PEM -t rsa -b 4096?

Jump box

Jumpbox resource group: iotedge-offline-dashboarding-RG-jumpbox
cat: /home/dmitry/.ssh/id_rsa.pub: No such file or directory
ERROR: Deployment failed. Correlation ID: 6729ed2d-3314-41cf-939f-8dcb5c595401. {
  "error": {
    "code": "InvalidParameter",
    "message": "The value of parameter linuxConfiguration.ssh.publicKeys.keyData is invalid.",
    "target": "linuxConfiguration.ssh.publicKeys.keyData"
  }
}
ERROR: (ResourceNotFound) The Resource 'Microsoft.Compute/virtualMachines/jumpbox' under resource group 'iotedge-offline-dashboarding-RG-jumpbox' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
Jump box created. Key values:

Jump box username:
Jump box FQDN:
Jump box SSH:      ssh @

IT & OT Proxies

Proxies resource group: iotedge-offline-dashboarding-RG-proxy
ERROR: Deployment failed. Correlation ID: 161dc12e-6c22-48a2-b142-95c00bab3820. {
  "error": {
    "code": "InvalidParameter",
    "message": "The value of parameter linuxConfiguration.ssh.publicKeys.keyData is invalid.",
    "target": "linuxConfiguration.ssh.publicKeys.keyData"
  }
}
IT & OT Proxies created. Key values:

IIOT assets

ERROR: Deployment failed. Correlation ID: 1cad7aba-4056-4ffe-a1bd-0625c7d557bf. {
  "error": {
    "code": "InvalidParameter",
    "message": "The value of parameter linuxConfiguration.ssh.publicKeys.keyData is invalid.",
    "target": "linuxConfiguration.ssh.publicKeys.keyData"
  }
}
IIOT assets created. Key values:

IoT Edge VMs

ERROR: Deployment failed. Correlation ID: 4414eedb-6ca6-4824-8d82-234d6a7ec9f5. {
  "error": {
    "code": "InvalidParameter",
    "message": "The value of parameter linuxConfiguration.ssh.publicKeys.keyData is invalid.",
    "target": "linuxConfiguration.ssh.publicKeys.keyData"
  }
}
IoT Edge VMs created. Key values:

Error during the deployment of monitoring part3

During the deployment of monitoring module ( part3) I got role assignments error for IoTEdgeLogging. the error says error
": {
"code": "RoleAssignmentUpdateNotPermitted",
"message": "Tenant ID, application ID, principal ID, and scope are not allowed to be updated."

what permission is needed to get this error fixed?

FYI, this is redeployment attempt.

Not able to route messages from child device's module to parent device's module

I am able to setup child device and parent device and able to deploy modules in both the devices, but I want to collect all the messages from child device's module by a custom developed parent device's module. There is no routing facility using which I can route all messages from child-device's module to parent-device's module. Routing messages from child device using the keyword "$upstream" is sending the messages directly to cloud-iothub. I need to do some operation at parent-device module before sending it to cloud-iothub. Please let me know if it is possible/technical limitation to route messages from a module running at child device to another module running in parent device using nested edge.

edgeAgent failing with demo setup on L4-edge

Ran the install.sh script and all resources were created correctly, including edge devices and their deployments in my IoT Hub.
Level 5 Edge has the right modules running (iotedgeApiProxy and dockerContainerRegistry), however notice L4 and L3 report no runtime response.
Checking the logs for L4, I have the snippet below (can send more details), but wonder if there is anything known that I could update to get the TLS auth working to the higher level Edge?

[...]
<6> 2020-12-10 14:47:16.261 +00:00 [INF] - Edge agent attempting to connect to IoT Hub via Amqp_Tcp_Only...
<6> 2020-12-10 14:47:16.295 +00:00 [INF] - Edge agent attempting to connect to IoT Hub via Amqp_WebSocket_Only...
<4> 2020-12-10 14:47:16.309 +00:00 [WRN] - Error creating a device-to-cloud connection
System.AggregateException: One or more errors occurred. (TLS authentication error.) (TLS authentication error.)
---> System.Security.Authentication.AuthenticationException: TLS authentication error.
---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
....
[...]

Thanks,
Katrien

install.sh fails if the subscription name has a space

The following line (131) in the install.sh break the installation if the subscription name has space:

subscription=$(az account show --query 'name' -o tsv)

It is better to use the subscription ID instead everywhere in the scripts. Lines above use the specified parameter for subscription ID.

"origin not allowed" error accessing grafana dashboard

You may come across "origin not allowed" error in grafana dashboards when

1- you completed setup of iot-edge-for-iiot step 1 successfully as per https://github.com/Azure-Samples/iot-edge-for-iiot/blob/master/1-SimulatePurdueNetwork.md
2- you completed setup of iot-edge-for-iiot step 2 successfully as per https://github.com/Azure-Samples/iot-edge-for-iiot/blob/master/2-DeployOfflineDashboard.md
3- you try to open dashboard from //:3000

it looks like grafana team is working on a fix and when the fix is done it will work as expected w/o changes. use is as it is now and you can recreate the environment after this PR is released:

grafana/grafana#46418

As a workaround you may want to publish directly from L5 servers following steps below

1-Create a public IP (L5-PIP) in your level 5 server (usually named L5-edge in "-iotedge" resource group)
2-Add a new inbound rule to allow access to port 3000 in network security group named "PurdueNetwork-L5-nsg" in in "
-network" resource group
3-access dashboards at //<IP you defined in Step 1>:3000

install.sh does not work as expected

Hey follks,

tried to run install.sh a couple of times. Resources get provisioned but IoT Edge instances are not initialized (no connection string, cert settings etc. in config.yaml) the iotedge.service is masked and I have the feeling that the NSG configuration might not be correct (L5 just allows AMQP port 5671 for outbound, how to download container images then?).
Is it right now as designed and one should follow this manual guide?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.