Git Product home page Git Product logo

interface's Introduction

Statusengine UI

Statusengine UI is a lightweight, responsive, modern web interface, you can use, to make your monitoring data visable.

It's build with AngularJS, communicating via a JSON API to be easy extendable and also has simple support to render performance data.

Visit the documentation for more information about Statusengine UI

Install (Ubuntu 18.04)

apt-get install git php-cli php-zip php-mysql php-ldap php-json composer

cd /usr/share/
git clone https://github.com/statusengine/interface.git statusengine-ui
cd /usr/share/statusengine-ui
chmod +x bin/*
composer install

Config

cp /usr/share/statusengine-ui/etc/config.yml.example /usr/share/statusengine-ui/etc/config.yml

Environment variables

Statusengine UI could also read the configuration out of environment variables. This can be handy if you want to run Statusengine Ui inside of Docker. See the list of environment variables for more information.

Web server

Point the document root of your web server to the public folder

Create user to login

To login, first of all you need to create a new user.

This example will show you, of how to create a new user:

bin/Console.php users add --username=admin --password=admin

Username: admin

Password: admin

Run bin/Console.php users --help to get more information.

You can also run the command without --username and --password to keep your password private and hidden from history.

Run bin/Console.php users to get a list of all users:

+----------+--------------------------------------------------------------+
| Username | Password                                                     |
+----------+--------------------------------------------------------------+
| admin    | $2y$10$PzJ8sqeww/.eBz1xfiBCzeuBa5Y9ZwufEtElPt0QqlmlYNEXfDzK6 |
| foobar   | $2y$10$DQnPleIFrffDv3b6q3TeBei3oMju9n/C/m1KF.//IUnT2lDCOy/QG |
+----------+--------------------------------------------------------------+

License

GNU General Public License v3.0

Statusengine UI
Copyright (C) 2016-2018  Daniel Ziegler

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Used bower components

To avoid compatibility issues, all bower components are pushed to the repository.

Name License
AngularJS MIT License
angular-bootstrap MIT License
angular-scroll MIT License
angular-ui-router MIT License
animate.css MIT License
bootstrap MIT License
chart.js MIT License
font-awesome Font-Awesome#license
jquery https://jquery.org/license/
ngInfiniteScroll MIT License
noty MIT License
jQuery-Backgrounder MIT License

interface's People

Contributors

ibering avatar nook24 avatar nychinn avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

interface's Issues

Show nodes by cluster

Hi,

I know that we can select the cluster in the nodes, but can we group by cluster? In the same style as the display of services by hosts.

Statusengine Cluster Probleme

Hallo,

ich habe ein paar Probleme beim Clusterbetrieb in der Statusengine. Ich habe 3 Cluster (3 Nagiosserver) und einen (test) davon abgeschaltet.

Statusengine_UI

1.) Leider ist nirgend wo ersichtlich, wenn ein Cluster keine Daten mehr sendet oder abgeschalten wurde. Es fehlt etwas wie "LastUpdate" in der Cluster Übersicht. Dadurch kann ich sicherstellen, dass der Cluster (Nagiosdienst) funktioniert und Dateien gesendet werden.

2.) Ich kann keinen ganzen Cluster in Downtime setzen für Wartungsarbeiten.

3.) Ich kann keinen ISSUE von einem abgeschalteten Host Acknowledgen, wodurch dieser bei issues verschwindet.

4.) Wenn zwei Hostnamen z.B. localhost existierte, springt die Anzeige der Statusengine hin und her. Hier sollte immer der Host der als 1. existierte gewinnen.

Bei Fragen stehe ich gerne zur Verfügung

Class 'Elasticsearch\\ClientBuilder' not found

Hi,

I wanted to update the web interface (git pull and composer update) but unfortunately I have a class error not found, is this normal?

{
  "message": "Slim Application Error",
  "error": [
    {
      "type": "Error",
      "code": 0,
      "message": "Class 'Elasticsearch\\ClientBuilder' not found",
      "file": "/monit/src/Loader/Elasticsearch/ServicePerfdataLoader.php",
      "line": 62,
      "trace": [
        "#0 /monit/src/Controller/ServicePerfdata.php(47): Statusengine\\Loader\\Elasticsearch\\ServicePerfdataLoader->getServicePerfdata(Object(Statusengine\\ValueObjects\\ServicePerfdataQueryOptions))",
        "#1 /monit/public/api/index.php(337): Statusengine\\Controller\\ServicePerfdata->index(Object(Statusengine\\ValueObjects\\ServicePerfdataQueryOptions))",
        "#2 [internal function]: Closure->{closure}(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Array)",
        "#3 /monit/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func(Object(Closure), Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Array)",
        "#4 /monit/vendor/slim/slim/Slim/Route.php(356): Slim\\Handlers\\Strategies\\RequestResponse->__invoke(Object(Closure), Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Array)",
        "#5 /monit/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\\Route->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#6 /monit/vendor/slim/slim/Slim/Route.php(334): Slim\\Route->callMiddlewareStack(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#7 /monit/vendor/slim/slim/Slim/App.php(515): Slim\\Route->run(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#8 /monit/src/StatusengineAuth.php(108): Slim\\App->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#9 [internal function]: Statusengine\\StatusengineAuth->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Object(Slim\\App))",
        "#10 /monit/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array(Object(Statusengine\\StatusengineAuth), Array)",
        "#11 [internal function]: Slim\\DeferredCallable->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Object(Slim\\App))",
        "#12 /monit/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\\DeferredCallable), Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Object(Slim\\App))",
        "#13 /monit/vendor/slim/csrf/src/Guard.php(171): Slim\\App->Slim\\{closure}(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#14 [internal function]: Slim\\Csrf\\Guard->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Object(Closure))",
        "#15 /monit/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array(Object(Slim\\Csrf\\Guard), Array)",
        "#16 [internal function]: Slim\\DeferredCallable->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Object(Closure))",
        "#17 /monit/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\\DeferredCallable), Object(Slim\\Http\\Request), Object(Slim\\Http\\Response), Object(Closure))",
        "#18 /monit/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\\App->Slim\\{closure}(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#19 /monit/vendor/slim/slim/Slim/App.php(406): Slim\\App->callMiddlewareStack(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#20 /monit/vendor/slim/slim/Slim/App.php(314): Slim\\App->process(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))",
        "#21 /monit/public/api/index.php(748): Slim\\App->run()",
        "#22 {main}"
      ]
    }
  ]
}

Add last refresh

Hi,

Add a way to know that the page is not blocked (network problem ...) and avoid having obsolete information.

Action on all services issues

Hi,

When we have multiples services issues, it is long to run ACKs (for example) on each node. It would be good to select the nodes to validate the command.

login

I need help getting basic auth to work with statusengineUI. My next goal would be setup ldap auth if i can get basic auth going. When i goto statusengine page there is nothing. i enabled allow_anonymous and it had zero effect.

Notice below error message in /var/log/httpd/
AH00130: File does not exist: /usr/share/statusengine-ui/public/api/index.php/login

statusengine worker is good.

/opt/statusengine/worker/bin/Console.php statistics

Statusengine statistics @16:23:47
Cluster node: Crowbar

Live data hold in Redis:

Total processed host status records: 2
Total processed host status records last minute: 2
Total processed service status records: 10
Total processed service status records last minute: 0

Processed Historical data:

Total processed host check records: 1
Total processed host check records last minute: 1
Total processed service check records: 5
Total processed service check records last minute: 0
Total processed log entry records: 0
Total processed log entry records last minute: 0
Total processed state change records: 0
Total processed state change records last minute: 0
Total processed performance data records: 0
Total processed performance data records last minute: 0

Processed Misc data:

Total processed Notifications, Downtimes, Acknowledgements, etc: 0
Total processed Notifications, Downtimes, Acknowledgements, etc last minute: 0

Overall:

Total processed records: 18
Total processed records last minute: 3

Statusengine process intormation:

Last update of this statistics: 16:23:47 - 25.07.2019
Number of workers: 7
Total number of running Statusengine processes: 8
Statusengine is running since: : 2 minutes and 18 seconds

I read another post about basic auth and saw the other user didnt have php install, not the case here

rpmquery -a |grep php

php-PsrLog-1.1.0-1.el7.noarch
php-symfony-yaml-2.8.12-2.el7.noarch
php-symfony-browser-kit-2.8.12-2.el7.noarch
php-composer-semver-1.5.0-1.el7.noarch
php-symfony-event-dispatcher-2.8.12-2.el7.noarch
php-intl-7.3.7-3.el7.remi.x86_64
php-pecl-gearman-2.0.5-3.el7.remi.7.3.x86_64
php-symfony-process-2.8.12-2.el7.noarch
php-jsonlint-1.6.1-1.el7.noarch
php-composer-xdebug-handler-1.3.3-1.el7.noarch
php-pear-1.10.9-3.el7.remi.noarch
php-json-7.3.7-3.el7.remi.x86_64
php-mysqlnd-7.3.7-3.el7.remi.x86_64
php-symfony-class-loader-2.8.12-2.el7.noarch
php-symfony-dependency-injection-2.8.12-2.el7.noarch
php-paragonie-random-compat-2.0.18-1.el7.noarch
php-gd-7.3.7-3.el7.remi.x86_64
php-ldap-7.3.7-3.el7.remi.x86_64
php-symfony-filesystem-2.8.12-2.el7.noarch
php-symfony-dom-crawler-2.8.12-2.el7.noarch
php-composer-spdx-licenses-1.5.1-1.el7.noarch
php-symfony-console-2.8.12-2.el7.noarch
php-pecl-igbinary-3.0.1-2.el7.remi.7.3.x86_64
php-cli-7.3.7-3.el7.remi.x86_64
php-bcmath-7.3.7-3.el7.remi.x86_64
php-justinrainbow-json-schema5-5.2.8-1.el7.noarch
php-seld-phar-utils-1.0.1-1.el7.noarch
php-symfony-http-foundation-2.8.12-2.el7.noarch
php-common-7.3.7-3.el7.remi.x86_64
php-pecl-redis4-4.3.0-2.el7.remi.7.3.x86_64
php-7.3.7-3.el7.remi.x86_64
php-symfony-config-2.8.12-2.el7.noarch
php-symfony-expression-language-2.8.12-2.el7.noarch
php-password-compat-1.0.4-1.el7.noarch
php-symfony-http-kernel-2.8.12-2.el7.noarch
php-pecl-zip-1.15.4-1.el7.remi.7.3.x86_64
php-process-7.3.7-3.el7.remi.x86_64
php-fedora-autoloader-1.0.0-1.el7.noarch
php-symfony-finder-2.8.12-2.el7.noarch
php-symfony-css-selector-2.8.12-2.el7.noarch
php-symfony-debug-2.8.12-2.el7.noarch
php-symfony-var-dumper-2.8.12-2.el7.noarch
php-pdo-7.3.7-3.el7.remi.x86_64
php-xml-7.3.7-3.el7.remi.x86_64
php-symfony-common-2.8.12-2.el7.noarch
php-composer-ca-bundle-1.0.2-1.el7.noarch
php-symfony-polyfill-1.5.0-1.el7.noarch
php-mbstring-7.3.7-3.el7.remi.x86_64

Naemon -version
naemon-1.0.10-4.3.noarch

User is there

./bin/Console.php users

+-----------------------------------+--------------------------------------------------------------+
| Username | Password |
+-----------------------------------+--------------------------------------------------------------+
| admin | $2y$10$I4IUZDv1OJEeqXVM..ssMuQcbJqswPTabp5Cx2AUTGGe/hhfRn9hi |
| test | $2y$10$XTicdZlq5bi0qGzjl2TRA.je7FUT4CYfLuBhY5hI1.jlBGZqTi81e |
+-----------------------------------+--------------------------------------------------------------+

There is data in the mariadb database
MariaDB [statusengine]> select * from statusengine_hoststatus;
+-----------------+--------------------+--------------------------------------------+-------------+----------------------------------------------------------------+---------------+-----------------------+--------------------+------------+------------+------------------+-------------------+------------------------+-----------------+--------------+-------------------+-------------------+-----------------------+-------------------------------+----------------------+------------------------+-----------------------+-----------------------+------------------------+-------------+----------+----------------+--------------------------+--------------------------+------------------+-----------------------+----------------------+------------------+-----------+--------------+----------------+-----------------------+-----------------------------+----------------------+---------------+------------------+
| hostname | status_update_time | output | long_output | perfdata | current_state | current_check_attempt | max_check_attempts | last_check | next_check | is_passive_check | last_state_change | last_hard_state_change | last_hard_state | is_hardstate | last_notification | next_notification | notifications_enabled | problem_has_been_acknowledged | acknowledgement_type | passive_checks_enabled | active_checks_enabled | event_handler_enabled | flap_detection_enabled | is_flapping | latency | execution_time | scheduled_downtime_depth | process_performance_data | obsess_over_host | normal_check_interval | retry_check_interval | check_timeperiod | node_name | last_time_up | last_time_down | last_time_unreachable | current_notification_number | percent_state_change | event_handler | check_command |
+-----------------+--------------------+--------------------------------------------+-------------+----------------------------------------------------------------+---------------+-----------------------+--------------------+------------+------------+------------------+-------------------+------------------------+-----------------+--------------+-------------------+-------------------+-----------------------+-------------------------------+----------------------+------------------------+-----------------------+-----------------------+------------------------+-------------+----------+----------------+--------------------------+--------------------------+------------------+-----------------------+----------------------+------------------+-----------+--------------+----------------+-----------------------+-----------------------------+----------------------+---------------+------------------+
| XXX | 1564089797 | PING OK - Packet loss = 0%, RTA = 0.34 ms | NULL | rta=0.340000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0 | 0 | 1 | 3 | 1564089793 | 1564090093 | 1 | 1564078697 | 1564078697 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.25737 | 4.00456 | 0 | 1 | 1 | 5 | 1 | 24x7 | Crowbar | 1564089797 | 1564078697 | 0 | 0 | 0 | NULL | check-host-alive |
| hplj2605dn | 1564089908 | (Host check timed out after 30.00 seconds) | NULL | NULL | 1 | 1 | 10 | 1564089878 | 1564090178 | 1 | 1562687695 | 1562687695 | 1 | 1 | 1563226300 | 1563228100 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.257856 | 30.0014 | 0 | 1 | 1 | 5 | 1 | 24x7 | Crowbar | 1562687180 | 1564089908 | 0 | 77 | 0 | NULL | check-host-alive |
| linksys-srw224p | 1564089952 | (Host check timed out after 30.00 seconds) | NULL | NULL | 1 | 1 | 10 | 1564089922 | 1564090222 | 1 | 1562687683 | 1562687683 | 1 | 1 | 1563229672 | 1563231472 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.264405 | 30.0014 | 0 | 1 | 1 | 5 | 1 | 24x7 | Crowbar | 1562687173 | 1564089952 | 0 | 302 | 0 | NULL | check-host-alive |
| localhost | 1564089922 | PING OK - Packet loss = 0%, RTA = 0.04 ms | NULL | rta=0.037000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0 | 0 | 1 | 10 | 1564089918 | 1564090218 | 1 | 1564078822 | 1564078822 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.258723 | 4.00374 | 0 | 1 | 1 | 5 | 1 | 24x7 | Crowbar | 1564089922 | 1564078822 | 0 | 0 | 0 | NULL | check-host-alive |
| winserver | 1564089926 | (Host check timed out after 30.00 seconds) | NULL | NULL | 1 | 1 | 10 | 1564089896 | 1564090196 | 1 | 1562687624 | 1562687624 | 1 | 1 | 1563229482 | 1563231282 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.263008 | 30.0016 | 0 | 1 | 1 | 5 | 1 | 24x7 | Crowbar | 1562687104 | 1564089926 | 0 | 302 | 0 | NULL | check-host-alive |
+-----------------+--------------------+--------------------------------------------+-------------+----------------------------------------------------------------+---------------+-----------------------+--------------------+------------+------------+------------------+-------------------+------------------------+-----------------+--------------+-------------------+-------------------+-----------------------+-------------------------------+----------------------+------------------------+-----------------------+-----------------------+------------------------+-------------+----------+----------------+--------------------------+--------------------------+------------------+-----------------------+----------------------+------------------+-----------+--------------+----------------+-----------------------+-----------------------------+----------------------+---------------+------------------+
5 rows in set (0.00 sec)

MariaDB [statusengine]>
M

Reschedule Service/Host Check Does Nothing

When rescheduling service/host checks, I notice that nothing happens. I can verify this by checking the history in the UI and also checking the Naemon logs.

Using the developer console in my browser, I notice that I get the following entry when I reschedule a service check:

Possibly unhandled rejection: cancel
(anonymous) @ angular.min.js:122
(anonymous) @ angular.min.js:94
g @ angular.min.js:133
$eval @ angular.min.js:147
$digest @ angular.min.js:144
$apply @ angular.min.js:148
(anonymous) @ angular.min.js:282
dispatch @ jquery.min.js:3
q.handle @ jquery.min.js:3

Add user name after login

Hi,

After login, information is missing to indicate that we are authenticated. The login name to the right of "Settings"?

Nagios Users/Group Auth

Hello,

Can you add relation between UI users and Nagios Contacts/Groups ?

User 1 - hostgroup 1
User 2 - hostgroup 1
User 3 - hostgroup 1 & 2

for example :
When Users 1 or 2 is connected in UI, they access only hostgroup 1
When Users 3 is connected, he access hostgroup 1 & 2

Sorry for my poor english :-) but your project is very nice.

[CSS Style] Resolve CSS issue in Firefox

In Firefox (tested on Windows) the ajax loader in the menu will force a new line. This makes the menu jump, whenever the menu refresh the status:

Firefox
firefox_issue

In Chrome it works just fine:
no_issue_chrome

You can also use the demo version to play around https://demo.statusengine.org/ or solve the issue.

To force the appearance of the loader, you can just reload the page.

Hide some external links

Hi,

External links work great, very nice feature : D

However, is it possible to show no $service_description$ only on the nodedetails page and with service on the servicedetails page?

For example I have this on the nodedetails page: https: //URL/thruk/cgi-bin/extinfo.cgi?Type=2&host=HOSTNAME& service=undefined

Best regards,

Keep a history of tasks

Hi,

I tested the submit method broker, I suggest to keep the traces of the executions (statusengine_taskshistory?) With in addition the time of execution and the user/ip who made the request.

What do you think ?

Feature: Support Graphite Subdirectory

Hi @nook24

I have changed something in the Graphite Implementation, because I have running Graphite in a Subdirecotry and not directly in the main Root Path.

I have added in the Config.yml and in the Config.php a Setting with the Name "graphite_subdir:".
If you set for example graphite_subdir: /graphite then it call add /graphite before the render command. For example http://localhost:8000/graphite/render
If Graphite still is in the Root Path, you can let the setting empty or remove it from the Settings.

These are the Changes with I have made.

Config.yml
graphite_subdir: "/graphite" Only example setting
Config.php

    /**
     * @return string
     */
    public function getGraphiteSubDir() {
        $default = "";
        $default = Env::get('SEI_GRAPHITE_SUBDIR', $default);
        if (isset($this->config['graphite_subdir'])) {
            return (string)$this->config['graphite_subdir'];
        }
        return $default;
    }

In src/Loader/Graphite/ServicePerfdataLoader.php I have changed this:

Under public function getServicePerfdata(ServicePerfdataQueryOptions $ServicePerfdataQueryOptions)
I have added:
$graphitesubdir = $this->Config->getGraphiteSubDir();

I have changed the Line

$response = $client->request('GET', '/render', $options);
to
$response = $client->request('GET', "$graphitesubdir/render", $options);

Please check from your side, if you want a Change like that or not. I hope I have missed nothing which I have changed. Maybe if possible ou can also try it first on your side.

Thank you.

Add last contact in cluster overview

Hi,

For debug, I suggest adding a last contact field in the cluster view. You can also add an UP / DOWN status if a worker has not responded within a minute.

Best regards,

Schedule downtime and Acknowledgement is not working

The Schedule downtime and Acknowledgement is not working on my installation.

NAGIOS Core 4.4.5
Installed all Statusengine pre-requisite

But still the Statusengine UI does not reflect the submitted Schedule downtime and Acknowledgement.

[Docker] Create Dockerfile / Docker Compose

Would be great to have a Docker container for Statusengine UI. This would help new developers to join more easily, speed up testing and deployment.

Unfortunately I am not very familiar with docker right now...

Statusengine UI dependencies:

  • php7
  • nginx or apache
  • mysql-server

Need and Statusengine Ui instance to play around?

Setup Statusengine Ui on Ubuntu 18.04 (Quick start)

Install dependencies
Run all comands as root or via sudo

apt-get update
apt-get install git php-cli php-zip php-mysql php-ldap php-json mysql-server curl wget

curl -o composer-setup.php  https://getcomposer.org/installer
php composer-setup.php
cp composer.phar /usr/local/bin/composer

Load MySQL Demo Database (35KB)
Create MySQL User: (run the command mysql):

CREATE USER 'statusengine'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `statusengine` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `statusengine`.* TO 'statusengine'@'localhost';

Import Data

wget https://statusengine.org/hacktoberfest/statusengine.sql

mysql -u statusengine -ppassword statusengine < statusengine.sql

Install Statusengine Ui

git clone https://github.com/statusengine/interface.git
cd interface/
chmod +x bin/*
composer install

Load default config file (database settings and so on)

wget https://statusengine.org/hacktoberfest/config.yml
mv config.yml etc/

Start PHP build-in web server

php -S 0.0.0.0:80 -t ./public

Browse to webinterface:

http://<ip-address>:80/

You are ready to rock!


Full installation guide for different distributions:
https://statusengine.org/ui/#installation

Show IP in node details

Hi,

It would be interesting to retrieve the IP address in the details of a node.

Best regards,

All monitoring services of certain hosts are seen in the Statusengine interface

hi how are things

from the Statusengine interface it only shows me 15 monitored services and in nagios oh thruk it shows me 17 attached evidence

interface Statusengine:
imagen

thruk:
imagen

I attach my configuration
/usr/share/statusengine-ui/etc/config.yml:

# Statusengine UI Configuration



allow_anonymous: 0


anonymous_can_submit_commands: 1

urls_without_login:
  - login #looks like /login in the browser's address bar
  - loginstate

auth_type: basic

use_mysql: 1


mysql:
    host: 127.0.0.1
    port: 3306
    username: statusengine
    password: x
    database: statusengine
    encoding: utf8




display_perfdata: 1

perfdata_backend: mysql

MySQL as Performance Data Backend WORKER:

# Statusengine Worker Configuration


node_name: Statusengine


use_gearman: 1

gearman:
  address: 127.0.0.1
  port: 4730
  timeout: 1000

use_redis: 1

redis:
  address: 127.0.0.1
  port: 6379
  db: 0

store_live_data_in_archive_backend: 1

use_mysql: 1

mysql:
    host: 127.0.0.1
    port: 3306
    username: statusengine
    password: x
    database: statusengine
    encoding: utf8

dump_mysql_query_parameters: 0

number_of_bulk_records: 100

max_bulk_delay: 2

number_servicestatus_worker: 1

number_hoststatus_worker: 1

number_logentry_worker: 1

number_statechange_worker: 1

number_hostcheck_worker: 1

number_servicecheck_worker: 1

number_misc_worker: 1

process_perfdata: 1

number_perfdata_worker: 1

 - mysql

check_for_commands: 1

command_check_interval: 15

external_command_file: /opt/nagios/var/rw/nagios.cmd

query_handler: /opt/nagios/var/rw/nagios.qh

submit_method: broker

syslog_enabled: 1

syslog_tag: statusengine-worker

age_hostchecks: 5


age_host_acknowledgements: 60


age_host_notifications: 60


age_host_statehistory: 365


age_host_downtimes: 60

age_servicechecks: 5


age_service_acknowledgements: 60


age_service_notifications: 60


age_service_statehistory: 365


age_service_downtimes: 60


age_logentries: 5


age_tasks: 1


age_perfdata: 90

disable_http_proxy: 1

Allow multiples mysql databases

Hi,

I have independent MySQL databases on multiple sites. Instead of sending worker data to a single database, is it possible for the interface to query multiple MySQL databases?

What do you think is the most functional?

Worker(s) -> DB <- Interface

or

Worker1 -> DB1 <- Interface
Worker2 -> DB2 <-

Documentation question

Sorry if this is the wrong format/forum, but is the interface documented anywhere so I could customize/change it if I wanted to?
I can't find any sort of API or interface docs (haven't looked at the documentation project yet) and I can't find a forum or wiki or anything.

The docs for install are awesome, by the way.

Blink or dialog for new alerts ?

Hi,

Sometimes we do not see the alerts arrived in the dashboard, do you think that a system of blinking (dialog) for a predefined time is conceivable?

Disable host/service with a old last check

Hi,

I have some workers which no longer work. Is it possible to gray out or hide (I don't know which is better) hosts/services that are obsolete (with a date of last verification below a certain threshold)

Best regards,

request features

Hi,

1.)
Is it possible to sort the hosts and services in groups?
In nagios we used a lot of host groups and service groups for a better overview.

2.)
Is it possible to to implement a user control? As an example a user should log in and see the services assigned to him and their status but not more.

3.)
Is it possible to Acknowledge issue for alle crit services on one host?

thanks

Additional information in the graphs

From @duylong on September 9, 2017 23:35

Is it easy to add the CRIT or WARN thresholds on the graphs? (with color lines on the graph for exemple). Similarly for ACK and DOWNTIME information? (with vertical lines for example for start and end periods)

or is it just to see a trend and is it better to use Grafana?

Copied from original issue: statusengine/worker#3

[CSS Issue] Fix labels in collapsed menu

If the main menu of Statusengine Ui gets collapsed, only one label is shown in mouse over:
menu_col
Would be great if all labels are visible, even if the menu is collapsed, like in "normal menu" mode:
menu_status

Statusengine UI is based on AdminLTE.

Online demo: https://demo.statusengine.org


You can also setup a own instance in less then five minutes if you want.

Setup Statusengine Ui on Ubuntu 18.04 (Quick start)

(Just copy and past all commands to a plain Ubuntu box)

Install dependencies
Run all comands as root or via sudo

apt-get update
apt-get install git php-cli php-zip php-mysql php-ldap php-json mysql-server curl wget

curl -o composer-setup.php  https://getcomposer.org/installer
php composer-setup.php
cp composer.phar /usr/local/bin/composer

Load MySQL Demo Database (35KB)
Create MySQL User: (run the command mysql):

CREATE USER 'statusengine'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `statusengine` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `statusengine`.* TO 'statusengine'@'localhost';

Import Data

wget https://statusengine.org/hacktoberfest/statusengine.sql

mysql -u statusengine -ppassword statusengine < statusengine.sql

Install Statusengine Ui

git clone https://github.com/statusengine/interface.git
cd interface/
chmod +x bin/*
composer install

Load default config file (database settings and so on)

wget https://statusengine.org/hacktoberfest/config.yml
mv config.yml etc/

Start PHP build-in web server

php -S 0.0.0.0:80 -t ./public

Browse to webinterface:

http://<ip-address>:80/

You areready to rock!
ready


Full installation guide for different distributions:
https://statusengine.org/ui/#installation

need cancel downtime for host and services

Hi @nook24 ,

Currently we do not have option to cancel downtime for host and services at a time.
we need to cancel downtime for each service separately. it would be great if suggest any solution.
and also when we schedule a downtime if we have option to select particular time to schedule downtime along with specific hours which we have currently. could you please suggest any possibility in code level changes.Thanks

Show the current ACK, DOWNTIME

Hi,

It will be good to list in the dashboard (or elsewhere) the current ACK/DOWNTIME informations. What do you think ?

[CSS] Improve style of tables on large screens

While I like the mobile look of Statusengine
Bildschirmfoto vom 2019-10-04 16-17-08

I think tables on a desktop PC could be improved.
desktop_tables

Please also make sure to consider the night mode.
desktop_dark

The tables are build using the bootstrap grid system. So no <table></table> is used.

<div class="col-xs-12 no-padding row-hover" ng-class="{ 'row-even':$even }">
<div class="col-xs-12 hidden-sm hidden-md hidden-lg shield-mobile shield-service-{{ servicestatus.current_state }}">
<a ui-sref="servicedetails({nodename:'{{ node.hoststatus.hostname |encodeURI }}', 'servicedescription':'{{ servicestatus.service_description | encodeURI }}'})">
{{ servicestatus.service_description }}
</a>
<small class="label bg-purple" title="Issue has been acknowledged"
ng-show="servicestatus.problem_has_been_acknowledged">
<i class="fa fa-commenting-o"></i>
</small>
<small class="label bg-purple" title="Scheduled downtime is running"
ng-class="{'fix-downtime-icon': servicestatus.problem_has_been_acknowledged}"
ng-show="servicestatus.scheduled_downtime_depth > 0">
<i class="fa fa-plug"></i>
</small>
<small class="label bg-purple" title="State of service is flapping"
ng-class="{'fix-downtime-icon': servicestatus.problem_has_been_acknowledged || servicestatus.scheduled_downtime_depth}"
ng-show="servicestatus.is_flapping">
<i class="fa fa-adjust"></i>
</small>
</div>

Statusengine UI is based on AdminLTE.

Online demo: https://demo.statusengine.org


You can also setup a own instance in less then five minutes if you want.

Setup Statusengine Ui on Ubuntu 18.04 (Quick start)

(Just copy and past all commands to a plain Ubuntu box)

Install dependencies
Run all comands as root or via sudo

apt-get update
apt-get install git php-cli php-zip php-mysql php-ldap php-json mysql-server curl wget

curl -o composer-setup.php  https://getcomposer.org/installer
php composer-setup.php
cp composer.phar /usr/local/bin/composer

Load MySQL Demo Database (35KB)
Create MySQL User: (run the command mysql):

CREATE USER 'statusengine'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `statusengine` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `statusengine`.* TO 'statusengine'@'localhost';

Import Data

wget https://statusengine.org/hacktoberfest/statusengine.sql

mysql -u statusengine -ppassword statusengine < statusengine.sql

Install Statusengine Ui

git clone https://github.com/statusengine/interface.git
cd interface/
chmod +x bin/*
composer install

Load default config file (database settings and so on)

wget https://statusengine.org/hacktoberfest/config.yml
mv config.yml etc/

Start PHP build-in web server

php -S 0.0.0.0:80 -t ./public

Browse to webinterface:

http://<ip-address>:80/

You areready to rock!
ready


Full installation guide for different distributions:
https://statusengine.org/ui/#installation

Delete OLD Hosts and Services

Hi,

i delete 4 old hosts but i can see them in the statusengine-ui.

I try

opt/statusengine/worker/bin/Console.php cleanup

but no change.

Allow subpath for login

Hi,

I have a problem when I click on the button Sign in. It redirect me to /login.html, but my real url is /subpath/login.html

Can you add a option for this feature?

Best regards,

Problem with old downtimes

Hi,

I have a problem with Upcoming downtimes. My old downtimes are still present with the status "Downtime currently running" and "Cancel" button.

upcoming-downtimes

Do you know why?

Issues detected on unknown status

Hi,

I use service_skip_check_host_down_status in order to change service status to unknow when the host is down. There is no point in keeping the wrong status.

In statusengine, I see all "unknowns" in "Issues detected" while the host is in downtime. Can we ignore "unknown" when the host is ACK / DOWNTIME in "Issues detected" ?

schedule downtime 15 min becomes 15 hours

I have this strange problem with the statusengine-ui, if I schedule a downtime for a host for 30 min or other times (tested a few) everything works fine. But if I choose the 15 min option it's scheduling the downtime for 15 hours
setdowntime15min
resultdowntime15min
I'm running a test environment of it all at home and there I don't have this issue. But I'm wondering if anyone can tell me where to look to solve this issue at work.

Basic Auth Not Working

I have a brand new instance of Status Engine, with the UI, and basic auth is not working. CrateDB is the backend. I show the test users (with simple passwords: 123) in both the Crate database and the /usr/share/statusengine-ui/bin/Console.php users list command. I can't find anything in any sort of log anywhere, except the httpd logs which simply show the request for the login page.

The guide or CentOS7 seems to have been hastily modified from one of the Ubuntu guides, so I'm afraid I may have missed something using the installation guide @ https://statusengine.org/ui/#overview

Below is my config file (comments removed):

[root@localhost ~]# cat /usr/share/statusengine-ui/etc/config.yml | egrep -v "^\s*(#|$)"
allow_anonymous: 0
anonymous_can_submit_commands: 1
urls_without_login:
  - login #looks like /login in the browser's address bar
  - loginstate
auth_type: basic
use_crate: 1
crate:
  nodes:
    - 192.168.111.145:4200
display_perfdata: 0
perfdata_backend: crate
graphite_prefix: statusengine
graphite_url: http://localhost:8080
graphite_use_basic_auth: 0
graphite_user: graphite
graphite_password: password
graphite_allow_self_signed_certificates: 0
graphite_illegal_characters: /[^a-zA-Z^0-9\-\.]/
elasticsearch_index: statusengine-metric-
elasticsearch_pattern: daily
elasticsearch_address: 127.0.0.1
elasticsearch_port: 9200

The kicker is that even when not logged in, I can navigate to the pages not specified in urls_without_login, but I can't view any data. If I enable anonymous login, I still can't view any data. I have yet to check Crate to see if the Naemon data is there though.

Any ideas on getting this auth issue resolved? We are looking at moving away from Thruk and would like to get this rolling.

UNKNOWN service show no perfomance data

Hallo,

wenn ein service den Status "Unknown" hat werden keine Perfomancedaten mehr angezeigt, obwohl welche existieren.

Warum werden die Performancedaten ausgeblendet?

Hide block when 0% in the dashboard

Hi,

I find better that the blocks are hidden (or less visible) when they display 0% for the states which not OK. This is just my opinion O :-)

New button for external url

Hi,

What do you think of creating a new button in host's details with a drop-down list to external URLs that we would have defined in the conf?

external_urls: 1
external_url_lists:
  Thruk: https://www.example.com/thruk/#cgi-bin/extinfo.cgi?type=1&host={{HOSTNAME}}
  Other: ...

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.