Saturday, January 28, 2023
HomeHealth NewsCustomized Utility Troubleshooting With Cisco IOx

Customized Utility Troubleshooting With Cisco IOx

Cisco IOx supplies you with a platform to host your microservices on the networks edge, near your information originator. Microservices can help you course of your information, apply filtering, aggregation, densification, high quality checks and way more!

What to bear in mind?

Are Linux primarily based programs and Docker purposes previous pals of yours?  In that case, you most likely already find out about some challenges of making Docker pictures. With IOx, creating your personal customized software is a well-defined course of. There are some subsequent steps throughout which you’ll create an software docker picture, outline operational parameters, and what number of assets to supply to your software.

Contemplate the next as a guidelines to bear in mind, when creating an IOx docker-based software picture. Perhaps a few of the following challenges sound acquainted to you.

Potential challenges when creating Docker pictures

1. Your closing Docker picture grew to become too giant?

Keep away from utilizing overly giant docker-base pictures. Attempt to use a minimal one! Should you can handle to make use of “scratch” or “alpine” the lifecycle-management of your docker picture throughout deployment and redeployment will trigger much less overhead, ready time, and allocate much less bandwidth and storage on the system. Examine the next fast comparability of various base picture sizes. Take into account: your software framework, libraries, binaries, instruments, and interpreters will probably be added on high of this dimension.


Be aware: Good candidates are most probably “ubuntu” with ~73MB, and even higher “alpine” with solely ~6MB base picture dimension. In case your software has minimal exterior dependencies, the optimum selection could be to construct your software picture from the smallest attainable base picture “scratch,” which is even smaller than alpine. The extra effort for utilizing smaller pictures vs. extra handy and bigger base picture, is effectively invested time!

2. Did you run out of storage when deploying an software package deal?
Remember that you can not declare all of the obtainable storage to IOx to your software. What you’ll deploy as an software package deal is a compressed archive containing the docker filesystem layers. Your system will already allocate storage to obtain, retailer, and uncompress your picture. That in flip signifies that successfully your picture will trigger storage to be allotted roughly 2.5 occasions of its personal dimension!

3. Is your software storing information continuously?
If the applying you need to run on IOx is utilizing storage to persist info, please bear in mind to equip the system with an SSD growth module to assist your plan. That is to supply further capability and to keep away from the primary system flash from sporting out.


4. Does your software create giant container logfiles?
Remember that stdout and stderr are being logged. It is best to solely log necessary messages within the manufacturing model of your software utilizing the applying logfiles. You also needs to think about using a log rotation mechanism if the logs are getting giant.

5. Are you uncertain about errors throughout the operation of your software?
Ensure your software is logging details about its operational wellbeing. The usual paths for logging are system dependent. On IR8x9 you’d use “/information/logs” and on IR18xx and IR1101 you’d use “/iox_data/logs” to retailer your personal logfiles.

To seek advice from the totally different areas with out hardcoding it, please test the hyperlink beneath on environmental variables, which can summary the totally different paths for you!

Take into consideration time and size-based log rotation to forestall the filesystem from filling up with software logs. Should you stick with the talked about log areas, it is possible for you to to entry the logfiles from any of the obtainable management planes – IoT Operations Dashboard, Native Supervisor, ioxclient, and FND. Your software log is clearly the go-to level in the event you expertise points throughout operation together with your software!


6. Your system logfile protocols “not discovered” errors throughout startup?
Be sure you comply to the IOx default paths for software recordsdata and logs. In your software recordsdata they’re for example “/iox_data/appdata” for IR1101/IR1800 and “/information/appdata” for IR8x9, whereas to your logs it’s “/iox_data/logs” and “/information/logs”.

An instance message from system logs:

{"log":"/bin/sh: / not foundn","stream":"stderr","time":"2022-04-28T14:01:12.945697208Z"} 

7. Is your system operating out of assets whereas deploying a number of purposes?
If you’re uncertain how a lot system assets to supply to your software to meet its activity with out overprovisioning it, you can make it run completely, and monitor its actual utilization of CPU and reminiscence contained in the container whereas being below sensible operational load. You possibly can then later modify the assets provisioned to your software to match your remark.


8. Are you unable to entry ports that your software exposes?
Should you intend to show ports for communication, ensure that your system configuration will use for example NAT and correct port publicity on the corresponding port of your Docker container occasion. Consider if assigning a hard and fast IPv4 to your container eases debugging an error state of affairs. Don’t forget to test the port publicity in your Dockerfile, in addition to your package deal.yaml. As well as, the package deal.yaml can even outline the purposes entry to companies like GPS, accelerometer, serial port and extra.


9. Does your software refuse to begin on the goal {hardware}?
The structure varies between totally different Cisco IoT units. For instance, IR1101/IR18xx supplies an ARM64 primarily based structure, whereas IR8x9 does present a x86_64 primarily based {hardware} structure. Ensure to have your base picture chosen and your software program compiled or cross-compiled for the right goal structure, or else it is going to fail to put in or begin up. Selecting the mistaken goal {hardware} structure to your system will both end in not with the ability to add/activate your picture, or the startup will fail. The latter will trigger a corresponding log entry in your system logs to be written.


10. Are you uncertain concerning the operational state of your software?
Leverage health-monitoring to your software! The built-in health-monitoring supplies you with the likelihood to have your software continuously checked for proper operations. The results of the well being test is robotically provisioned to the management airplane of your selection.


11. Does your software fail to begin and there’s no software log created?
Should you can not discover your software log (see 8.), it could be as a result of a misconfiguration of the system itself. The go-to useful resource is the operational logging of your system itself. Relying in your setup, you can see the logs through IoT Operations Dashboard, LocalManager, FND, or ioxclient.

12. Does your software begin and instantly cease once more?
Double test in case your Dockerfile specifies a blocking command utilizing for instance CMD or The method you specify must run with out interruption, or your IOx software will cease. You may have to catch exceptions in the event you use a script to begin processes.


13. Does your software begin, run for some time, and exit whereas being below load?
Examine your purposes reminiscence and file descriptor consumption. It would leak on both of them. In case your software doesn’t correctly free reminiscence and/or filedescriptors, it is going to finally be forcefully ended by the kernel. Swapping reminiscence is just not an choice! To verify, if you’re being impacted by this drawback, plot the consumption on reminiscence and filedescriptors over time.

The next instance illustrates the ever-increasing allocation on VSS/RES reminiscence of a course of. The dearth of saturation suggests a reminiscence leak, that finally will result in this course of being forcefully ended.

IOx 2

14. Does activating your IOx software fail with an “ID syntax error”?
Be sure you use your docker picture identify:tag throughout export, otherwise you may expertise points with the applying naming in your Dockerfile, manifest, or package deal.yaml when activating it.

Instance from LocalManager:


15. Is your closing software picture not compliant throughout safety scans, and/or constructing time takes an excessive amount of time?
Attempt to harden your picture by eradicating all pointless binaries, libraries, and caches. This won’t solely scale back the footprint on storage however assist to cut back safety threads for software program packages and libraries you need to patch and monitor for updates. This additionally consists of caches the system constructed throughout picture meeting. The simplest strategy is to leverage Docker multi-stage builds. You’ll solely copy the required issues to the final construct stage and take away every thing pointless, like for example system binaries your manufacturing software picture doesn’t want. Multi-stage builds can help you create debug pictures and manufacturing pictures on the identical time.


The above instance illustrates the distinction of “intermediate-stage” to “final-stage” relating to their dimension. The end result docker picture is functionally equivalent in each instances. Each originate from totally different phases of the identical picture construct course of.


16. Are you aware if any of the parts you utilized in your software picture is being affected by safety points?
Contemplate checking your Docker picture safety compliance with obtainable toolkits comparable to “Docker Bench.”

17. Do you need to shortcut the testing of your software and solely deploy beforehand examined software pictures?
To save lots of effort and time check your docker picture in your native surroundings earlier than creating an IOx software. Additionally take into account ramping up a DevNet sandbox for testing and studying!


The place to go from right here?


Las Vegas
Be a part of our every day livestream from the DevNet Zone throughout Cisco Reside!

Keep Knowledgeable!
Join the DevNet Zone Cisco Reside Electronic mail Information and be the primary to find out about particular periods and surprises whether or not you’re attending in individual or will interact with us on-line.

We’d love to listen to what you suppose. Ask a query or depart a remark beneath.
And keep linked with Cisco DevNet on social!

LinkedIn | Twitter @CiscoDevNet | Fb | YouTube Channel




Please enter your comment!
Please enter your name here

Most Popular

Recent Comments