Skip to main content

Remote monitoring and alerting for IoT

How tools and practices used for monitoring cloud-native services apply to solutions that use IoT devices. Add operations visibility to remote locations.

Introduction

IoT devices produce many types of information, including telemetry, metadata, state, and commands and responses. Telemetry data from devices can be used in short operational timeframes or for longer-term analytics and model building.

Many devices support local monitoring in the form of a buzzer or an alarm panel on-premises. This type of monitoring is valuable, but has limited scope for in-depth or long-term analysis. This article instead discusses remote monitoring, which involves gathering and analyzing monitoring information from a remote location using cloud resources.

Operational and device performance data is often in the form of a time series, where each piece of information includes a time stamp. This data can be further enriched with dimensional labels (sometimes referred to as tags), such as labels that identify hardware revision, operating timezone, installation location, firmware version, and so on.

Time-series telemetry can be collected and used for monitoring. Monitoring in this context refers to using a suite of tools and processes that help detect, debug, and resolve problems that occur in systems while those systems are operating. Monitoring can also give you insight into the systems and help improve them.

The state of monitoring IT systems, including servers and services, has continuously improved. Monitoring tools and practices in the cloud-native world of microservices and Kubernetes are excellent at monitoring based on time-series metric data. These tools aren’t designed specifically for monitoring IoT devices or physical processes, but the constituent parts—labeled series of metrics, visualization, and alerts—all can apply to IoT monitoring.

What are you monitoring?

Monitoring begins with collecting data by instrumenting the system you’re working with. For some IoT scenarios, the system you’re monitoring might not be the devices themselves, but the environment and the process external to the device. In other scenarios, you might be interested in monitoring the performance health of the devices themselves, both individually and at the fleet level.

Consider the task of monitoring a human cyclist riding on a road. There are many different parts of the overall system you can monitor. Some might be internal to the system, such as the cyclist’s heart rate or sweating rate. Others might be external to the cyclist, such as a slope of the road, or external temperature and humidity. These internal and external monitoring goals can coexist. The methodologies and tools might overlap, but you can recognize these different domains—a physician might care about different measurements than the bike mechanic. Monitoring tools can be used to create custom monitoring views.

For example, you might organize your metrics into the categories that are discussed in this section. The specifics of how these are structured or combined will depend on the particular domain and applications.

Device hardware metrics

Device hardware metrics are measurements of the hardware or physical device itself, usually with some sort of built-in sensor. 

Firmware

Software running on the devices includes application software as well as the system software itself, which might be the operating system, or layers of a networking stack or device drivers. 

Application code

Application code on the device is specific to the role that device is performing in the system. 

External environment

Measuring the environment with sensors is often what people think about with regard to IoT devices. 

Cloud device interactions

An IoT solution is a complex system that includes software components that run both on the device and in the cloud. Understanding how these two systems interact requires you to understand what information each side has access to and how to bridge the two software runtime environments. 

Supporting systems

A complete monitoring solution requires monitoring both core and supporting components. Monitoring the application code on the device is an example of whitebox monitoring, where you’re interested in how the application is functioning. You probably also want to include some blackbox monitoring. For example, your monitoring software can probe APIs and other cloud services that your solution depends on. When you’re trying to respond to a problem, having these blackbox probes in place can lead to much faster resolution. 

Alerting

Alerting is about getting warnings or notifications, and helps draw your attention to important conditions. These in turn often lead you to check visualizations and often the associated log information.

A problem with alerting is that humans are good at learning to ignore annoying “noise” (think of traffic noise, repetitive emails, and so on). Alerts are only valuable if they can be responded to and then appropriately dismissed. If an alert reports an issue that can’t be addressed, the information in the alert should instead be another metric or visualization.

Source:

https://cloud.google.com/solutions/remote-monitoring-and-alerting-for-iot
https://cloud.google.com/solutions/iot-overview#operational_information
https://prometheus.io/docs/visualization/grafana/

Source Code Analysis Tools

Source code analysis tools, also referred to as Static Application Security Testing (SAST) Tools, are designed to analyze source code and/or compiled versions of code to help find security flaws.

Some tools are starting to move into the IDE. For the types of problems that can be detected during the software development phase itself, this is a powerful phase within the development life cycle to employ such tools, as it provides immediate feedback to the developer on issues they might be introducing into the code during code development itself. This immediate feedback is very useful, especially when compared to finding vulnerabilities much later in the development cycle.

Strengths and Weaknesses

Strengths
  • Scales well — can be run on lots of software, and can be run repeatedly (as with nightly builds or continuous integration)
  • Useful for things that such tools can automatically find with high confidence, such as buffer overflows, SQL Injection Flaws, and so forth
  • Output is good for developers — highlights the precise source files, line numbers, and even subsections of lines that are affected
Weaknesses
  • Many types of security vulnerabilities are difficult to find automatically, such as authentication problems, access control issues, insecure use of cryptography, etc. The current state of the art only allows such tools to automatically find a relatively small percentage of application security flaws. However, tools of this type are getting better.
  • High numbers of false positives.
  • Frequently can’t find configuration issues, since they are not represented in the code.
  • Difficult to ‘prove’ that an identified security issue is an actual vulnerability.
  • Many of these tools have difficulty analyzing code that can’t be compiled. Analysts frequently can’t compile code because they don’t have the right libraries, all the compilation instructions, all the code, etc.

Open Source or Free Tools Of This Type

  • Bandit – bandit is a comprehensive source vulnerability scanner for Python
  • Brakeman – Brakeman is an open source vulnerability scanner specifically designed for Ruby on Rails applications
  • Codesake Dawn – Codesake Dawn is an open source security source code analyzer designed for Sinatra, Padrino for Ruby on Rails applications. It also works on non-web applications written in Ruby
  • FindBugs – (Legacy – NOT Maintained – Use SpotBugs (see below) instead) – Find bugs (including a few security flaws) in Java programs
  • FindSecBugs – A security specific plugin for SpotBugs that significantly improves SpotBugs’s ability to find security vulnerabilities in Java programs. Works with the old FindBugs too,
  • Flawfinder Flawfinder – Scans C and C++
  • Google CodeSearchDiggity – Uses Google Code Search to identifies vulnerabilities in open source code projects hosted by Google Code, MS CodePlex, SourceForge, Github, and more. The tool comes with over 130 default searches that identify SQL injection, cross-site scripting (XSS), insecure remote and local file includes, hard-coded passwords, and much more. Essentially, Google CodeSearchDiggity provides a source code security analysis of nearly every single open source code project in existence – simultaneously.
  • Graudit – Scans multiple languages for various security flaws.
  • LGTM – A free for open source static analysis service that automatically monitors commits to publicly accessible code in: Bitbucket Cloud, GitHub, or GitLab. Supports C/C++, C#, COBOL (in beta), Java, JavaScript/TypeScript, Python
  • PMD – PMD scans Java source code and looks for potential code problems (this is a code quality tool that does not focus on security issues)
  • Progpilot – Progpilot is a static analyzer tool for PHP that detects security vulnerabilities such as XSS and SQL Injection.
  • PreFast (Microsoft) – PREfast is a static analysis tool that identifies defects in C/C++ programs. Last update 2006.
  • Puma Scan – Puma Scan is a .NET C# open source static source code analyzer that runs as an IDE plugin for Visual Studio and via MSBuild in CI pipelines.
  • .NET Security Guard – Roslyn analyzers that aim to help security audits on .NET applications. It will find SQL injections, LDAP injections, XXE, cryptography weakness, XSS and more.
  • RIPS – RIPS is a static source code analyzer for vulnerabilities in PHP web applications. Please see notes on the sourceforge.net site.
  • phpcs-security-audit – phpcs-security-audit is a set of PHP_CodeSniffer rules that finds flaws or weaknesses related to security in PHP and its popular CMS or frameworks. It currently has core PHP rules as well as Drupal 7 specific rules.
  • SonarQube – Scans source code for more than 20 languages for Bugs, Vulnerabilities, and Code Smells. SonarQube IDE plugins for Eclipse, Visual Studio, and IntelliJ provided by SonarLint.
  • SpotBugs – This is the active fork replacement for FindBugs, which is not maintained anymore.
  • VisualCodeGrepper (VCG) – Scans C/C++, C#, VB, PHP, Java, and PL/SQL for security issues and for comments which may indicate defective code. The config files can be used to carry out additional checks for banned functions or functions which commonly cause security issues.

GitLab has lashed a free SAST tool for a bunch of different languages natively into GitLab. So you might be able to use that, or at least identify a free SAST tool for the language you need from that list.

Source:
https://www.owasp.org/index.php/Source_Code_Analysis_Tools

Managed OS – Operating System Patching & Update Processes

Overview

Quality NOC provides reactive patching to servers with both standard and managed customer operating systems. For managed servers, patches and updates are available upon request to ensure no patches are applied without customer knowledge and consent, effectively reducing risks to application and data integrity. Data and/or reports are available for you in different ways, depending on the solution used.

OS Updates

On a monthly basis, Quality NOC Cloud engineers review all recommended patches made available by operating system software vendors. A subset of these patches and updates are identified by the OS vendor as Critical or Important to installed operating systems. The most recent version of our OS is given these updates and is then re-certified by Quality NOC before it is made available to be implemented with new server builds.

Managed Server Updates

As a part of making a server managed, more updates may automatically be applied to the server. Different Linux distributions and Windows are supported. Automatic updates can be pre-agreed with the customer and discussed in weekly status meetings.

Dedicated Server and Public clouds

Dedicated Servers and Public clouds platforms can be managed by our team of system administrator, Microsoft Windows servers and Linux distribution are supported.
We have deep experience installing new applications, scripts and applying system updates, or upgrades on Red Hat, CentOS, Ubuntu, Debian, and other linux distributions.
We can coordinate with your operations or devops team and schedule downtime, and do previous snapshots befoer patching or updating your OS or applications.

Extend your operations, DevOps or development team

We do weekly meetings with our customers, we can also do short daily meetings monday to fridays and continue chat on Slack/Wire/Skype, with your operations team, devops, or developers establishing a very fluid communication and reporting about progress and/or incidents.

All-in-One Monitoring Solution

 


We can use your own monitoring systems, we can install a new system for you and migrate the hosts or if you have a small operation you can use our own monitoring system.

Our NOC team help our customers with:

  • Website Monitoring
  • Application Performance Monitoring
  • Server Monitoring
  • Network Monitoring
  • Cloud Monitoring, Private and Public

We have customers of all sizes, from a large Telecom with more than 500 hosts, mid size and small companies with only 2 hosts. Our NOC team works around the clock 24x7x365.

Our customers save resources, their engineers have more time for important projects, we improve the operations and reduce downtime.

We have a custom solution for you.

Performance and customer satisfaction

This chart shows real customer data, the first month we handle all usual incidents.

Then started working proactively to reduce the number of incidents, improve the quality on detection of critical alarms, also working with thresholds and reducing downtime.

Clearly you can see how we reduced to 1/3 the amount of incidents. We continue working  the next months adding more services checks and gathering information to create reports.

We do a continue improvement of service checks, maintenance and proactive work to avoid incidents and increase up-time. After 6 month we probably manage to reduce to 1/4 the amount of monthly incidents and increase dramatically the up-time.

We are all very happy, our customers and us. We enjoy working with our customers.

Cool Dashboards with Grafana

Create good-looking dashboards for displaying time series data from Icinga2 with Graphite/Grafana

Monitoring your network and systems can be very cool using this nice tools

  1. Icinga2
  2. Graphite
  3. Grafana

This combination gives you the best from all worlds.

Precise monitoring using Icinga2, collect all data with Graphite and create good looking dashboards with Grafana.

Our NOC team can help you to get there and also take over all your system and network monitoring.

5 Open Source Backup Software For Linux

good backup plan is essential in order to have the ability to recover from

  • Human errors
  • RAID or disk failure
  • File system corruption
  • Data center destruction and more.

Here you have some suggestions:

Important features the backup software should have:

  1. Open source software – You must use software for which the original source code is made freely available. This ensures that you can recover your data in case vendor/project stopped working on software or refused to provide patches.
  2. Cross-platform support – Make sure backup software works well on the OS deployed on all desktop and server operating systems.
  3. Data format – Open data format ensures that you can recover data in case vendor or project stopped working on software.
  4. Autochangers – Autochangers are nothing but a variety of backup devices, including library, near-line storage, and autoloader. Autochangers allows you to automate the task of loading, mounting, and labeling backup media such as tape.
  5. Backup media – Make sure you can backup data on tape, disk, DVD and in cloud storage such as AWS.
  6. Encryption datastream – Make sure all client-to-server traffic will be encrypted to ensure transmission integrity over the LAN/WAN/Internet.
  7. Database support – Make sure backup software can backup database server such as MySQL or Oracle.
  8. Backup span multiple volumes – Backup software can split each backup (dumpfile) into a series of parts, allowing for different parts to existing on different volumes. This ensures that large backups (such as 100TB file) can be stored on larger than a single backup device such as disk or tape volume.
  9. VSS (Volume Shadow Copy) – It is Microsoft’s Volume Shadow Copy Service (VSS) and it is used to create snapshots of data that is to be backed up. Make sure backup software support VSS for MS-Windows client/server.
  10. Deduplication – It is a data compression technique for eliminating duplicate copies of repeating data (for example, images).
  11. License and cost – Make sure you understand and use of open source license under which the original backup software is made available to you.
  12. Commercial support – Open source software can provide community based (such as email list or fourm) or professional (such as subscriptions provided at additional cost) based support. You can use paid professional support for training and consulting purpose.
  13. Reports and alerts – Finally, you must able to see backup reports, current job status, and get alert when something goes wrong while making backups.

Bacula – Client/server backup tool for heterogeneous networks

I personally use this software to manage backup and recovery across a network of computers including Linux, OSX and Windows. You can configure it via a CLI, GUI or web interface.

  • Operating system : Cross-platform
  • Backup Levels : Full, differential, incremental, and consolidation.
  • Data format: Custom but fully open.
  • Autochangers: Yes
  • Backup media: Tape/Disk/DVD
  • Encryption datastream: Yes
  • Database support: MSSQL/PostgreSQL/Oracle/
  • Backup span multiple volumes: Yes
  • VSS: Yes
  • License : Affero General Public License v3.0
  • Download url : bacula.org

Amanda – Another good client/server backup tool

AMANDA is an acronym for Advanced Maryland Automatic Network Disk Archiver. It allows the sysadmin to set up a single backup server to back up other hosts over network to tape drives or disk or autochangers.

Amanda: Open Source Backup

Amanda is the most popular open source backup and recovery software in the world. Amanda protects more than a million servers and desktops running various versions of Linux, UNIX, BSD, Mac OS-X and Microsoft Windows operating systems worldwide.

  • Operating system : Cross-platform
  • Backup Levels : Full, differential, incremental, and consolidation.
  • Data format: Open (can be recovered using tool such as tar).
  • Autochangers: Yes
  • Backup media: Tape/Disk/DVD
  • Encryption datastream: Yes
  • Database support: MSSQL/Oracle
  • Backup span multiple volumes: Yes
  • VSS: Yes
  • License : GPL, LGPL, Apache, Amanda License
  • Download url : amanda.org amanda.zmanda.com

Backupninja – Lightweight backup system

Backupninja is a simple and easy to use backup system. You can simply drop a config files into /etc/backup.d/ to backup multiple hosts.

  • Operating system : Linux/Unix
  • Backup Levels : Full and incremental (rsync+hard links)
  • Data format: Open
  • Autochangers: N/A
  • Backup media: Disk/DVD/CD/ISO images
  • Encryption datastream: Yes (ssh) and encrypted remote backups via duplicity
  • Database support: MySQL/PostgreSQL/OpenLDAP and subversion or trac repositories.
  • License : GPL
  • Download url : riseup.net

Backuppc – High-performance client/server tool

BackupPC is a high-performance, enterprise-grade system for backing up Linux, WinXX and MacOSX PCs and laptops to a server’s disk. BackupPC is highly configurable and easy to install and maintain.


  • Operating system : Linux/Unix and Windows
  • Backup Levels : Full and incremental (rsync+hard links and pooling scheme)
  • Data format: Open
  • Autochangers: N/A
  • Backup media: Disk/RAID storage
  • Encryption datastream: Yes
  • Database support: Yes (via custom shell scripts)
  • License : GPL
  • Download url : backuppc.sourceforge.net

UrBackup – Easy to setup client/server system

It is an easy to setup open source client/server backup system, that through a combination of image and file backups accomplishes both data safety and a fast restoration time.

UrBackup also continuously watches folders you want backed up in order to quickly find differences to previous backups. Because of that, incremental file backups are really fast.

Your files can be restored through the web interface, via the client or the Windows Explorer while the backups of drive volumes can be restored with a bootable CD or USB-Stick (bare metal restore). A web interface makes setting up your own backup server really easy.

Currently there are over 10,000 running UrBackup server instances (with auto-update enabled) with some instances having hundreds of active clients.

  • Operating system : Linux/FreeBSD/Unix/Windows/several Linux based NAS operating systems. Client only runs on Linux and Windows.
  • Backup Levels : Full and incremental
  • Data format: Open
  • Autochangers: N/A
  • Backup media: Disk/Raid storage/DVD
  • Encryption datastream: Yes
  • License : GPL v3+
  • Download url : urbackup.org

Other open source backup software for your consideration

The Amanda, Bacula and above-mentioned software are feature rich but can be complicated to set for small network or a single server. I recommend that you study and use the following backup software:

  1. Rsnapshot – I recommend this tool for local and remote filesystem snapshot utility. See how to set and use this tool on Debian/Ubuntu Linux and CentOS/RHEL based systems.
  2. rdiff-backup – Another great remote incremental backup tool for Unix-like systems.
  3. Burp – Burp is a network backup and restore program. It uses librsync in order to save network traffic and to save on the amount of space that is used by each backup. It also uses VSS (Volume Shadow Copy Service) to make snapshots when backing up Windows computers.
  4. Duplicity – Great encrypted bandwidth-efficient backup for Unix-like system. See how to Install Duplicity for encrypted backup in cloud for more infomation.
  5. SafeKeep – SafeKeep is a centralized and easy to use backup application that combines the best features of a mirror and an incremental backup.
  6. DREBS – DREBS is a tool for taking periodic snapshots of EBS volumes. It is designed to be run on the EC2 host which the EBS volumes to be snapshoted are attached.
  7. Old good unix programs like rsync, tar, cpio, mt and dump.

Conclusion

I hope you will find this post useful to backup your important data. Do not forgot to verify your backups and make multiple backup copies of your data. Also, RAID is not a backup solution. Use any one of the above-mentioned programs to backup your servers, desktop/laptop and personal mobile devices.

Source: https://www.cyberciti.biz/open-source/awesome-backup-software-for-linux-unix-osx-windows-systems/

Quality NOC – Network Operations Center

The Best Free Network Monitoring Tools

Open-source choices are good and can even match commercial tools, but you should know that using open-source monitoring requires a high level of involvement with the tool, which may not suit your needs. Open source requires a significant investment in time and resources to learn, install, configure, and use. Features may have to be built with the help of community support or an in-house IT team. The second consideration is security, which becomes an issue if your enterprise has strict security guidelines. Immediate custom fixes may not be available unless you spend time developing them. Or there could be instances when major security flaws aren’t discovered in the auditing process.

ICINGA2

Icinga 2 is an open source monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting.

Scalable and extensible, Icinga 2 can monitor large, complex environments across multiple locations.

 

If you have NAGIOS clients already in your systems, the migration is very easy you can continue using same NAGIOS clients as they are like Nagios NRPE, NSClient, etc.

Many companies used NAGIOS for years and now have migrated to Icinga2.

NAGIOS CORE

Nagios® is one of the most popular and widely used free network monitoring tools. Network admins like Nagios because it does everything. Whatever it doesn’t have can be built, or has been built by the Nagios community.

There are two versions of Nagios. Nagios Core is open source and free, and Nagios XI is a commercial tool based on the Nagios Core but with added features. Nagios is popular due to its active development community and external plug-in support. You can create and use external plugins in the form of executable files or Perl® and shell scripts to monitor and collect metrics from every hardware and software used in a network. There are plugins that provide an easier and better GUI, address many limitations in the Core®, and support features, such as auto discovery, extended graphing, notification escalation, and more. Nagios can be overwhelming for beginners and enterprises that do not have enough IT support staff, but it provides good monitoring powers. For support, users can always get help from the Nagios community, or opt for a commercial support package from Nagios Enterprise. Quality NOC can provide support for installation, configuration and development of new features to check software and hardware.

If you have the time to invest in learning and mastering this tool, Nagios Core offers good network monitoring capabilities.

CACTI

Cacti® is a network monitoring tool that allows you to collect data from almost any network element, including routing and switching systems, firewalls, load balancers, and servers, and put that data into robust graphs. If you have a device, it’s possible that Cacti’s active community of developers has created a monitoring template for it.

Cacti supports SNMP polling, which itself covers a wide range of network devices. You can also extend Cacti’s capabilities to use scripts, queries, or commands for data collection, and save it as a template to use for polling other devices for similar data sets. Cacti leverages the power of RRDTool, which is an open-source data logging and graphing system for storing polled data in the database, and creating graphs from the stored data sets. RRDTool’s data consolidation lets you store collected data forever, and is limited only by the size your storage. Cacti leveraging on RRDTool has the ability to generate any type of graph for any data set, and the graphing used in Cacti is the standard used by many open-source and commercial tools. Cacti also allows you to add multiple users and give them access with or without edit permissions, which is perfect for service providers and enterprises with a large NOC team.

Cacti’s strength lies in its community of developers who have contributed many plug-ins, scripts, and templates that can be used to monitor almost every type of device. We especially like its device support and graphing capabilities.

ZABBIX

Zabbix is probably the most widely used open-source network monitoring tool after Nagios
Complex to set up, Zabbix® comes with a simple and clean GUI that makes it easy to manage, once you get the hang of it.



Zabbix supports agent-less monitoring using technologies such as SNMP, ICMP, Telnet, SSH, etc., and agent-based monitoring for all Linux® distros, Windows® OS, and Solaris®. It supports a number of databases, including MySQL®, PostgreSQL™, SQLite, Oracle®, and IBM® DB2®. Zabbix’s VMware® monitoring capabilities allow you to customize using any scripting or programming language, which is widely regarded as its best feature.

NTOP

ntop, which is now ntopng (ng for next generation), is a traffic probe that uses libpcap (for packet capture) to report on network traffic.

You can install ntopng on a server with multiple interfaces, and use port mirroring or a network tap to feed ntopng with the data packets from the network for analysis. ntopng can analyze traffic even at 10G speeds; report on IP addresses, volume, and bytes for each transaction; sort traffic based on IP, port, and protocol; generate reports for usage; view top talkers; and even report on AS information. This level of traffic analysis helps you make informed decisions about capacity planning and QoS design, and also helps you find bandwidth-hogging users and applications in the network. ntopng has a commercial version called ntopng pro that comes with some additional features, but the open-source version is good enough to quickly gain insight into traffic behavior. ntop can also integrate with external monitoring applications such as Nagios for alerting, and provide data for monitoring.

Ntopng has some limitations, but the level of network traffic visibility it provides makes it well worth the effort.