{"id":18781570,"url":"https://github.com/devture/nagadmin","last_synced_at":"2025-04-13T12:06:21.849Z","repository":{"id":12874383,"uuid":"15550790","full_name":"devture/nagadmin","owner":"devture","description":"Web-configurator and frontend for Nagios","archived":false,"fork":false,"pushed_at":"2022-02-15T11:27:27.000Z","size":1057,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T12:05:54.754Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devture.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-31T13:59:45.000Z","updated_at":"2023-07-27T18:40:07.000Z","dependencies_parsed_at":"2022-08-26T07:01:11.250Z","dependency_job_id":null,"html_url":"https://github.com/devture/nagadmin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devture%2Fnagadmin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devture%2Fnagadmin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devture%2Fnagadmin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devture%2Fnagadmin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devture","download_url":"https://codeload.github.com/devture/nagadmin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710435,"owners_count":21149190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T20:32:38.347Z","updated_at":"2025-04-13T12:06:21.813Z","avatar_url":"https://github.com/devture.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nagadmin: web-configurator and frontend for Nagios\n\nNagadmin is a web-configurator for configuring a [Nagios](https://www.nagios.com) installation.\nIt also serves as a frontend - a place where you can see the status of your services.\n\nIt's not meant to support all Nagios features.\nIt may force a certain workflow upon you, which may or may not be to your taste.\nThe reason it does this is to optimize for the common monitoring use-case and make things simpler for it.\n\nIf your requirements are complicated, you may need to look into some other solutions or fork-and-improve this one.\n\n![dashboard-partial-screenshot](https://raw.github.com/devture/nagadmin/master/resources/screenshots/dashboard-partial.png)\n\n--------------------\n\n\n## Why Nagadmin instead of \"some other solution\"?\n\nThere are lots of web-configurator systems that aim to make Nagios installations easy to configure from the web.\nEditing Nagios configuration files may be inconvenient (requires terminal access),\nand more importantly does not show a good overview of what's really configured.\n\nNone of the existing Nagios configurator systems seemed to achieve the goals of:\n\n- providing a simple user-interface that's **easier than \"SSH into the Nagios host \u0026 edit raw config files\"**\n- providing a **beautiful and pleasant user-interface** that also works on mobile devices\n- providing both a **configuration and frontend tool in one**\n- providing **advanced access control**, so that many users can see and potentially do different things\n- **optimizing for the common use-case**, by hiding certain complex Nagios features\n- giving you a **good overview of the current configuration and status**\n\n\n--------------------\n\n\n## Installation\n\n\n### Prerequisites\n\n- Docker\n- Docker Compose (v1 or v2)\n\n\n### Download the source code and go into the main directory\n\n\tcd /srv/http\n\tgit clone \u003crepository url\u003e nagadmin\n\tcd nagadmin\n\n\n### Configure\n\nStart by copying the sample configuration parameters file:\n\n\tcp config/parameters.json.dist config/parameters.json\n\tcp .env.dist .env\n\nNow modify `config/parameters.json` and `.env` to your liking.\n\n\n### Run for the first time\n\n```sh\nmake run\n```\n\nNot all services will run well yet. Nagios will encounter some errors, because it can't find some of its configuration yet.\nWe resolve this below during the [Installation](#install) step.\n\n\n### Initialize the database\n\nRun the following command to initialize the database (initial data-set import and databse indexes creation):\n\n```sh\nmake init-database\n```\n\n\n### Install\n\nRun the following command to set up Resource Variables and install the initial Nagios configuration:\n\n```sh\nmake install\n```\n\nNagios should now properly start and run.\n\n\n### Create your first user\n\nCreate a new administrator user account for you:\n\n```sh\n./bin/container-console devture-user:add USERNAME_HERE EMAIL_ADDRESS_HERE\n```\n\nYou'll be asked for a password, etc.\n\n\n### Accessing Nagadmin and Nagios\n\nUse a web browser to access Nagadmin at this URL: http://nagadmin.127.0.0.1.nip.io:20180\n\nYou should be able to log in with the user that you created in the previous step.\n\nYou can also access Nagios at this URL: http://nagadmin.127.0.0.1.nip.io:20188\n\nYou need to authenticate using the username/password you've specified in `.env` (`NAGIOSADMIN_USER` and `NAGIOSADMIN_PASS`).\n\n\n### Verify that it all works\n\nRun the check command to see if things are running correctly:\n\n```sh\n./bin/container-console check:status\n```\n\n\n### Set up a reverse-proxy\n\nSee `resources/webserver`. You may also wish to adjust the `%trusted_proxies%` parameter in `config/parameters.json`.\n\n--------------------\n\n\n## FAQ\n\n\n### Does this support all kinds of esoteric Nagios features?\n\nNo - read the introduction above.\n\n\n### Does this provide a frontend where I can view the status of my services?\n\nYes. Nagadmin is both a web configuration tool for Nagios and a frontend.\nIt can be used as a simple alternative to the default Nagios CGI interface.\n\n\n### Can I import my existing Nagios configuration files into Nagadmin?\n\nNo. You'd need to start from scratch.\n\n\n### What are the plans for Nagadmin's future?\n\nThe source code will always be available.\nDeveloping additional features and complicating it much further is not the aim of this project.\nCommunity members are free to make improvements to the existing codebase.\n\n\n### What is Nagadmin written in?\n\nNagadmin is written in [PHP](https://php.net) and uses the [Silex microframework](https://github.com/silexphp/Silex).\n\n\n### What are the system requirements?\n\nWe require an x86-84 (amd64) Linux server with Docker and Docker Compose regardless of the distribution.\n\nAll services run in containers.\n\n\n### Can I install the web-configurator on another machine (not the one running Nagios)?\n\nNo. Nagios only runs in a container as part of this setup.\n\n\n### I'm not running Nagios, but a compatible system (Icinga, Shinken, Centreon). Can I use this?\n\nNagadmin only works with Nagios. Some of these systems are similar, so you may be able to migrate your existing setup to Nagios (powered by Nagadmin).\n\n\n### I need to check thousands of services. Can I use this?\n\nNot right now, or at least it won't work so well. Nagadmin hasn't been optimized for your use-case (yet) - read the introduction above.\nIt targets smaller installations, which don't have quite that many services.\n\n\n--------------------\n\n\n\n## Limitations\n\nLimitations listed below are either caused by features not being implemented (yet)\nor by conscious design decisions to omit them (and potentially replace them) with something else.\n\n\n### Host checks and notifications are not supported\n\nBecause of this, all hosts are (internally) forced to have an OK state.\nWe do this to allow service checks to run for them.\n\n\n### Service groups are not supported\n\nThey seem to be yet another thing that the administrator is asked to enter, complicating the workflow and not adding too much value.\n\n\n### Defining templates for timeperiods/contacts/hosts/services is not supported\n\nThis keeps things simple, by removing the complex inheritance model.\n\n\n### Service dependencies are not supported\n\nThat's an advanced feature.\n\nNagadmin supports automatic service dependencies though (see the `NagiosBundle.auto_service_dependency.master_service_regexes` parameter in `config/parameters.json`).\n\nA service that has a name \"ping\" or \"host-alive\" (case-insensitive) is automatically made a parent service of all other\nservices on the same host.\nThis allows you to easily define an \"important\" service, which all other services depend on.\nIt makes up for the missing \"Host checks and notifications\" feature mentioned above.\n\nWhen such an important/parent service is down, individual notifications for all of its children will be suppressed.\n\n\n### Service escalations are not supported\n\nThat's considered an advanced feature, outside the scope of what Nagadmin aims to provide (at least at this point in time).\n\n\n### Event handlers are not supported\n\nThat's considered an advanced feature, outside the scope of what Nagadmin aims to provide (at least at this point in time).\n\n\n### Existing configuration files cannot be imported\n\nIf you've been using Nagios by configuring it manually, you'd need to replicate all your existing configuration again via Nagadmin's UI.\n\n\n### The system doesn't play well with thousands of services\n\nNagadin targets a simpler use-case and smaller installations (at this time at least).\nThe code and user interface are done in a way that doesn't currently scale to thousands of services.\nIf you have to monitor thousands of services, it may also appear a bit limiting and simple to you anyway.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevture%2Fnagadmin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevture%2Fnagadmin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevture%2Fnagadmin/lists"}