Heartly welcome to the M onitoring A lerting M anagement A utomation S ystem The application you are about to start using is in its alfa-development phase. Expect encountering unfinished features, bugs and confusing UI. MAMAS is a system that centralizes regular management tasks of a fleet of devices. At present, following devices are supported: - Advantech based cellular and wired industrial routers (running Conel OS Linux) - Linux boxes and servers with very limited feature set - Any device running Linux has a reasonable chance to run the agent MAMAS comprises of a central application (the one you are about to see) and a software agent that needs to run on every device being managed. You can download the agent via the Admin menu. MAMAS is meant to be used for non-realtime usage. The devices are expected to provide data updates once a number of minutes - e.g. every 5 minutes, every 20 minutes etc. With default timing, here is what you can expect after device agent installation: <1 minute: registration request 6 minutes: basic device data available (Arriving -> Synchronized) 30 minutes: device initial configuration available As for pushing a configuration profile to the device the fastest timing could be: <1 minute: registration request 6 minutes: basic device data available (Arriving -> Synchronized) 11 minutes: configuration profile sent to device (Synchronized -> Sync pending) 30 minutes: device configuration SYNC status confirmed (Sync pending -> Synchronized / Sync Error) There is no open connection held between the data updates hence the devices can be contacted only when they are providing data to the central unit. On the other end, you, the Administrator, can provide configuration updates for the devices, alerts and other entities at any time. But because the devices are 'available' only when they contact the central unit, the updates from them and to them are asynchronous. Meaning you can wait for quite a long while till the changes you prepared for the device are really reflected on the device. MAMAS itself is a seriously-asynchronous system. Because the end devices are connected asynchronously, the principle of asynchronicity is applied throughout the whole system. It has benefits and costs. First the costs: The whole system being asynchronous means sometimes it can take a while (few minutes) till your changes are reflected. To give an example: - when you do a configuration change - e.g. update an alert definition, it gets stored in the DB. And thats it. It is not yet reflected in the central unit. - when a time is due, alerts are being evaluated. - when a time is due, new alert definitions are read from the DB. - the two above processes are fully asynchronous. The result is that even if you update alert definition, it can still be processed according to the old definition for a while. But after the update from the DB happens, it will definitely be evaluated according to the new defs. - there are some helper indicators designed in the system so you do not need to wait longer than a few minutes but still - keep in mind that whole system is asynchronous. And now the benefits: - the system performs more/less the same under no load and under heavy load. Of course, every server has its limits but suffices to say that MAMAS is *very* effective in resources usage compared to the distributed environments. - the system is less prone to errors and tends to prefer the long-term aspect while having a possibility to propagate critical event very quickly and efficiently. Try and you will see. One more note before we go thorugh a few-point instructions on how to start using the SW - a topic regarding device identification: Every device has its number and an abid. You can for sure name all of your devices using fully custom names but that is optional. MAMAS is designed to handle roughly 60 thousands devices (if your license allows - the free license stops at 30 devices). It is hard to remember a particular number between 0 and 60000 for a human and therefore we have an abid. ABID is AlphaBeticalID and it is in the form of four letters. Only 16 distinctive letters are supported so not all four-letter words are to be seen. Your device abids could look like ABAB, OBSA and similar. How to start using MAMAS? If you are using Software-As-A-Service (or a alfa/beta prepared environment) please just skip the first step, your server has been already configured! 1. The first thing you should do is to configure your server's public IP address (or Fully Qualified Domain Name). Open admin menu (top right corner), click on 'Settings', fill in your server's public IP address. Alternatively, you can fill in FQDN - like red.mamas.dwarftech.cz 2. If you want to receive notifications to your slack, fill in Slack token and slack channel name. 3. Now you want to download the device agent and install it on your devices so that you can manage them. Click on Admin->Device agents. Download the device agent based on your device type. Advantech routers: install the UM as usual. You can change the IP/FQDN directly on the router later on if you forgot to update the MAMAS IP addr prior to downloading the user module. alfa/beta note: If you want to deploy agent on a Linux box (anything else than Advantech cellular router), download the archive and simply run the mamas_agent.sh script on the target box. You may throw away everything else, the script is fully self-contained. If you want the script to be started via a system start service (e.g. systemd), you need to arrange that yourself for the time being. Also note you can customize the script as its license is different than the MAMAS central unit SW. 4. Setting up monitoring groups. Devices are members of one or more monitoring groups. Monitoring groups are the means to organize devices into units and monitoring them together. There is a default monitoring group called 'all' and every device is automatically member of that group. System is fine with just that group but you may want to introduce additional groups for easier partitioning - especially if you have a lot of devices. 5. Setting up alerts. Under alerts, you can define alerts that would be evaluated periodically. Please note that to fully use the alerts, you need to specify some means of notifications so that the alert can be actually delivered to you. An illustration: let's suppose you want to get notified when any of the devices in the system does not contact the system for 5 minutes. Click at 'New alert' and select: Name - name will be sent in notification so write something like 'A device sleeping' Target type - select 'as least # devices in group' Target monitoring group - select 'all' group Target amount - enter 1 Target spec - select 'Data age' Operator - select 'greater than' Value - select '5 minutes' The alert is usually evaluated every 120 seconds and if you set notification, these are being sent via Slack. You can set a variety of alerts like: - Alert me when any device (at least 1 device in group 'all') has 0 MiB space left on root partition. - Alert me when a device BSOD has any new reboots. - Alert me when voltage of any device in group ICRs is outside of 5-24 Volt range. etc. etc. etc.