Uptime for IoT devices without heartbeat tool

We have some IoT devices installed on an external area (think of a retail chain which for each shop has installed our IoT devices).
And our main priority is to get UPTIME status for each of them.

We investigate about Heartbeat, but seems that Heartbeat is responsible to collect information via HTTP, TCP or ICMP.
Unfortunately no one of the above cases fit our needs because the IoT device is behind an firewall and not accessible from outside, then we need to SEND HEARTBEAT SIGNAL from IoT device to Elastic cluster (the opposite how heartbeat works).

How we can do that?

Also we saw and investigate about APM (for nodejs in our case) and we found a lot of usefull information about LOGS and METRICS but nothing about UPTIME; do you think that APM should also care about UPTIME metric?

A couple thoughts here:

  1. You could deploy heartbeat on a server behind the firewall.
  2. You could have the IOT device send data to Logstash (maybe to the HTTP or TCP input) and forward that data to Elasticsearch
1 Like

Hi @Andrew_Cholakian1

Our IoT systems are not deployed in an network which we can do everything we want, it is the Customer Internal Lan essentially.

Also our kind of customer (RETAIL CHAINS) have many different networks (usually a WIFI LAN for each SHOP) and it is absolutely not desirable to deploy a "server" on each shop :slight_smile:.

The way to let IoT devices to send its data is our starting point too.
Actually we have an MQTT+KAFKA messaging system to delivery anything coming from IoT, so i can later re-publish the same message into LOGSTASH, but how it can be used to populate the Uptime dashboard, this is the missing part.

So, to simplify, is there a way to PERSIST an EVENTS in elastic (maybe with a specific data schema) and in a specific Index (maybe with a specific prefix) in order to let the Uptime dashboard to show results?

It sounds like you have an architecture that works, but you should create custom dashboards, not re-use the uptime ones. They are intended for heartbeat data only. This is more of a custom integration, and Logstash is a great fit.

1 Like

@Andrew_Cholakian1 We'd like to use UPTIME dashboard because it is exactly what we are looking for: "A visualization that can tell us which of our IoT services are up or down and when it happens".

Uptime is really exactly what we need for this purpose and we don't want to reinvent the wheel. So i was looking for sending (instead of pulling) heartbeat signals :slight_smile:

If you think we cannot then i will go with custom dashboard :frowning:

i was looking for sending (instead of pulling) heartbeat signals

@michaelsogos as Andrew has already mentioned you'd need to deploy Heartbeat internally on your store networks in order to do this. The IoT device would also need to supply some sort of endpoint for Heartbeat to query.

Logstash is built for accepting generic event data from many disparate hosts and shipping it to Elasticsearch. The Heartbeat dashboard and the UI we have in Kibana are open source, you should be able to duplicate their functionality for your custom data with relative ease once you're accustomed to working with visualizations.

@jkambic ok we will investigate further on the source code to reply the dashboard.

Thanks for your time.

This topic was automatically closed 24 days after the last reply. New replies are no longer allowed.

Have you considered one of the other beats like metricbeat?

That is a push mechanism.

You could possibly use the System Uptime module (coincidentally named but not related) that reports the uptime of the host OS .. the time should be increasing... If not the system is not available or had rebooted .. you could create visuals or alerts.

https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-metricset-system-uptime.html

Just a thought....

Or you could create your own beat based on the framework