Git Product home page Git Product logo

adagios's Introduction

Build Status Coverage Status

About

Adagios is a web based Nagios configuration interface built to be simple and intuitive in design, exposing less of the clutter under the hood of nagios. Additionally adagios has a rest interface for both status and configuration data as well a feature complete status interface that can be used as an alternative to nagios web interface.

Project website is at http://adagios.org

Testing Adagios

If you want to try out Adagios we have 2 docker images available for testing. Feel free to send in feature request and issues. Images hosted on Docker Hub.

Features

  • Full view/edit of hosts,services, etc
  • Tons of pre-bundled plugins and configuration templates
  • Network scan
  • Remote installation of linux/windows agents
  • Modern Status view as an alternative to default nagios web interface
  • Rest interface for status of hosts/services
  • Rest interface for viewing and modifying configuration
  • Full audit of any changes made

Design principles

  • Useful for both novices and nagios experts
  • No database backend
  • Make common operational tasks as easy as possible
  • Assist Nagios admins in keeping configuration files clean and simple

Components

  • Pynag - Nagios Configuration Parser
  • OKconfig - A robust plugin collection with preconfigured nagios template configuration files
  • PNP4Nagios - For Graphing Performance data
  • MK Livestatus - Broker module for nagios for high performance status information

Install Instructions

Adagios has packages for most recent versions of redhat/fedora and debian/ubuntu.

Install takes about 5 minutes following our Install Guide

Translations

  • handled by gettext, and stored in adagios/locale/
  • .po files are editable with standart text editors or po-specific ones
  • to add a language, run 'mkdir adagios/locale/', e.g. mkdir adagios/locale/de for German
  • to create/update/compile .po files, run 'make trad'

Support us

So you think the project is helping you or your company and you want to help us back?

Great! There are many ways you can support the project by contributing your time, talent and money.

See http://adagios.org/support.html for more information.

Contact us

If you need any help with getting adagios to work, feel free to open up an issue on github issue tracker. If you want to chat you can contact us on:

License

GNU AFFERO GENERAL PUBLIC LICENSE Version 3

The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.

adagios's People

Contributors

andresriancho avatar aviau avatar davideagle avatar dnewsholme avatar gardart avatar giner avatar hakong avatar haukurk avatar jodiecunningham avatar jonbn avatar jremond avatar matthieucan avatar mayasd avatar mikecom32 avatar oerd avatar pall-valmundsson avatar palli avatar petemorgan avatar ppepos avatar samueljon avatar titilambert avatar tomas-edwardsson avatar wasserman avatar

Stargazers

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

Watchers

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

adagios's Issues

Objectbrowser -> delete object

When deleting multiple objects in the object browser, only one can be deleted at a time. Click the Object browser, then click the trashcan icon next to the check you want to remove. Then pops up a confirmation screen and then you are returned to the object browser after agreeing. When deleting 9 checks on localhost I had to go thru this cycle so many times, it hurt my fingers :)
selecting all the checks I wanted to delete and then clicking a trashcan did not help.
A mass delete button will help.

Nagios config reload option

After adding a hostgroup, a host and then deleting another host in Adagios I changed over to the nagios screen. No changes. Isnt there a nagios reload involved anywhere? I cant find anything in Adagios to do this.

apache config needs another look at

[Thu Aug 16 13:30:55 2012] [warn] Useless use of AllowOverride in line 13 of /etc/httpd/conf.d/adagios.conf.

Also does LoadModule mod_wsgi have to be there ?

Install doc incomplete

I followed the Install doc and installed Adagios. Now what? I presume I need to start some services? Nagios and httpd come to mind. I presume there is a management url I should connect to?
The doc needs more info.

Templates? What do I choose?

What adding a host in the wizard there is a template selection entry. Apparently I can choose multiple templates. Now the server I am adding is a Linux box, runs a few kvm guests and some other services. So I guess I should select standard linux checks. What are the others? Do I add standard nagios checks? The server is running a bind nameserver. Do I add standard dns checks? Some help here that descibes each selection would be very nice.

Bulk actions located.

Åfter complaining to an Adagios developer I found the bulk actions menu. I still had two entries I wanted to delete so I selected them and then delete from the bulk action menu.
Then it spit out an error: "No matching records found" and still wanted me to confirm that I wanted to delete nothing :)

Warnings after first startup.

This doesnt look right to me:

[root@babylon5 ~]# chkconfig nagios on
[root@babylon5 ~]# chkconfig httpd on
[root@babylon5 ~]# service httpd start
Starting httpd: [Thu Aug 23 19:27:05 2012] [warn] module wsgi_module is already loaded, skipping
[Thu Aug 23 19:27:05 2012] [warn] Useless use of AllowOverride in line 13 of /etc/httpd/conf.d/adagios.conf.
[ OK ]
[root@babylon5 ~]# service nagios start
Starting nagios: done.

OKConfig -> Addhost -> Force does not function

Changes were made to this code in commit 2206981, I tried to fix some of it with commit 0483e43. I was somewhat successfull but "Force" dowsn't work. When I printed the value of force, it says None. I checked the whole self.cleaned_data dict and it only contains a host_name.

    def clean_host_name(self):
        host_name = self.cleaned_data.get('host_name')
        force = self.cleaned_data.get('force')
        if not force and host_name in okconfig.get_hosts():
            raise ValidationError("Host name %s already exists, use force to overwrite" % host_name)
        return host_name

Adding a contact is not obvious

It took me a while to locate the add contact menu. The only way I could find to add a contact was via an add object button. Why are there wizards to add hosts and other object types and not contacts?

Objectbrowser

Im in the Object browser. I see something added check for localhost and I've already added the machine by name.
I want to delete localhost. I see checkboxes next to each entry in the object browser and then there is a trashcan icon as well.

Confuses me. Do I check each localhost entry I want to delete and then click the transcan icon? or do I just ignore the checkboxes when deleting?

adagios -> okconfig -> install_agent

I feel that when the install method is ssh (or any other non windows method) the Windows Domain field should not be visible.

I should be made to choose my install method and then if it's a windows box the Windows domain thing should appear.

As it stands now it makes me wonder if I should put the name of the corporate AD domain in there even tho this machine is not actually a part of the domain.

unhandled BaseException when "saving" without any changes being made

Environment:

Request Method: POST
Request URL: http://localhost:8000/objectbrowser/edit_object/id=616306914500298923

Django Version: 1.3.1
Python Version: 2.7.3
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'adagios.okconfig_',
'adagios.objectbrowser',
'adagios.rest',
'adagios.misc']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')

Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response

  1.                     response = callback(request, _callback_args, *_callback_kwargs)
    
    File "/home/palli/workspace/adagios/adagios/objectbrowser/views.py" in edit_object
  2.             c['form'].save()
    
    File "/home/palli/workspace/adagios/adagios/objectbrowser/forms.py" in save
  3.     self.pynag_object.save()
    
    File "/opt/pynag/pynag/Model/init.py" in save
  4.     self._event(level='write', message="%s '%s'." % (self.object_type, self['shortname'] ))
    
    File "/opt/pynag/pynag/Model/init.py" in _event
  5.             i.write( object_definition=self, message=message )
    
    File "/opt/pynag/pynag/Model/EventHandlers/init.py" in write
  6.     self._git_commit(filename, message)
    
    File "/opt/pynag/pynag/Model/EventHandlers/init.py" in _git_commit
  7.     return self._run_command(command=command)
    
    File "/opt/pynag/pynag/Model/EventHandlers/init.py" in _run_command
  8.         raise BaseException( errorstring )
    

Exception Type: BaseException at /objectbrowser/edit_object/id=616306914500298923
Exception Value: Command 'git commit /etc/nagios3/okconfig/hosts/misc/bleh1.example.com-host.cfg -m 'service "bleh1.example.com/Running Processes".'' returned exit status 1.
stdout: # On branch master

Changes not staged for commit:

(use "git add/rm ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory)

deleted: okconfig/hosts/default/oldhostname-host.cfg

Untracked files:

(use "git add ..." to include in what will be committed)

okconfig/groups/testgroup.cfg

okconfig/hosts/default/localhost-host.cfg

okconfig/hosts/default/localhost-linux.cfg

okconfig/hosts/misc/bleh1.example.com-drbd.cfg

okconfig/hosts/misc/bleh10.example.com-drbd.cfg

okconfig/hosts/misc/bleh10.example.com-nagios.cfg

okconfig/hosts/misc/bleh100.example.com-nagios.cfg

okconfig/hosts/test.cfg

no changes added to commit (use "git add" and/or "git commit -a")

stderr:

Groups are confusing

When attempting to add my first host via the add host wizard, there where no hostgroups available. So I aborted the add host setup and added hostgroup. I called it Linux-servers.
I then entered the object browser and selected groups and all of a sudden there where 6 groups available. And why didnt the add host gui allow me to select any of the pre-exsisting groups?
Ahh.. I just figured it out. It's mixing servicegroups and hostgroups with no way to tell them apart. Very confusing.

KeyError after adding files to nagios directory

I moved a bunch of configs into /etc/nagios/okconfig/tempates after okconfig was started, ran bulk update, opened objectbrowser and the following appears.

Environment:


Request Method: GET
Request URL: http://XXX.is/adagios/objectbrowser/

Django Version: 1.3.1
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'adagios.okconfig_',
 'adagios.objectbrowser',
 'adagios.rest',
 'adagios.misc']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.6/site-packages/adagios/objectbrowser/views.py" in list_object_types
  84.             all_instances = Class.objects.all
File "/usr/lib/python2.6/site-packages/pynag/Model/__init__.py" in get_all
  258.         if self.needs_reload():
File "/usr/lib/python2.6/site-packages/pynag/Model/__init__.py" in needs_reload
  305.         elif config is None or config.needs_reparse():
File "/usr/lib/python2.6/site-packages/pynag/Parsers/__init__.py" in needs_reparse
  1038.             if self.timestamps[k] != v:

Exception Type: KeyError at /objectbrowser/
Exception Value: '/etc/nagios/okconfig/templates/XXX-ilo3/services.cfg'

Git commit fails when running through WSGI

Environment:


Request Method: POST
Request URL: http://localhost/adagios/objectbrowser/delete_object/id=5132972063635913045

Django Version: 1.4.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'adagios.okconfig_',
 'adagios.objectbrowser',
 'adagios.rest',
 'adagios.misc')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/site-packages/adagios/objectbrowser/views.py" in delete_object
  519.             my_obj.delete()
File "/usr/lib/python2.7/site-packages/pynag/Model/__init__.py" in delete
  693.         self._event(level="write", message="%s '%s' was deleted." %( self.object_type, self.get_shortname()))
File "/usr/lib/python2.7/site-packages/pynag/Model/__init__.py" in _event
  1091.                 i.write( object_definition=self, message=message )
File "/usr/lib/python2.7/site-packages/pynag/Model/EventHandlers/__init__.py" in write
  164.         self._git_commit(filename, message)
File "/usr/lib/python2.7/site-packages/pynag/Model/EventHandlers/__init__.py" in _git_commit
  158.         return self._run_command(command=command)
File "/usr/lib/python2.7/site-packages/pynag/Model/EventHandlers/__init__.py" in _run_command
  143.             raise BaseException( errorstring )

Exception Type: BaseException at /objectbrowser/delete_object/id=5132972063635913045
Exception Value: Command 'git commit /etc/nagios/okconfig/hosts/default/bongo.com-host.cfg -m 'service "bongo.com/Disk Usage /" was deleted.'' returned exit status 128.
 stdout:  
 stderr: 
*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <[email protected]>) not allowed

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.