{"id":553,"date":"2026-09-06T01:17:44","date_gmt":"2026-09-06T04:17:44","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2026\/09\/a-historia-do-nagiosql\/"},"modified":"2026-09-10T23:07:09","modified_gmt":"2026-09-11T02:07:09","slug":"a-historia-do-nagiosql","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/a-historia-do-nagiosql\/","title":{"rendered":"The History of NagiosQL: The cfg That Got a Form"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro segurando a configura\u00e7\u00e3o que saiu da impressora, ao lado do formul\u00e1rio web na tela\" src=\"\/wp-content\/uploads\/2026\/09\/nagiosql-historia-v4.webp\" width=\"1486\" height=\"856\" \/><\/p>\n<p>On March 19, 2005, NagiosQL arrived on SourceForge. Martin, from wizonet, put on the web what the <a href=\"\/en\/2026\/09\/a-historia-do-nagios\/\">Nagios<\/a> admin did in vim: host, service, contact, timeperiod, template \u2014 in a form, in MySQL, with a button to write to disk and another to <code data-no-translation=\"\">nagios -v<\/code>. Twenty-one years later, 3.5.0 still lives on GitLab <code data-no-translation=\"\">wizonet\/nagiosql<\/code>, PHP 8, snapshot 2025-04-20, and FreeBSD Ports packages 3.5.0.20241012. It is not XI. It is cfg with a 2005 intranet look that refused to die.<\/p>\n<p><!-- more --><\/p>\n<h2>The problem vim does not solve<\/h2>\n<p>Nagios Core has no configuration API. Files are the source of truth. In a small installation, that is a virtue. With two hundred hosts and three admins, it becomes a race of <code data-no-translation=\"\">cvs diff<\/code> and misplaced semicolons. Centreon and XI were born to fill that gap on the commercial side. For those who did not want to pay, 2005 brought PHP, Apache, MySQL, and an installation wizard. NagiosQL 1.0.0 RC1 on March 23, 2005, RC2 on April 2. The \u201cQL\u201d is the database \u2014 configuration becomes a row, disk becomes an export.<\/p>\n<p>The nagiosql.org website existed and disappeared. Rouven, who appeared on the wiki, left. Martin stayed. The forum and tickets moved to SourceForge. In 2018, the code found a home on GitLab. In practice, the maintainer\u2019s name has been the same since registration: wizonet \/ Martin.<\/p>\n<h2>2.x and 3.x: the entire Nagios object<\/h2>\n<p>2.0.0 came out in 2007, 2.0.2 in April 2008 \u2014 still speaking Nagios 2. 3.0.0 on January 6, 2009, followed Core 3. It imports existing cfg files. It edits host, hostgroup, service, servicegroup, contact, contactgroup, timeperiod, command, host\/service escalation, dependency, extended info. Domains: more than one Nagios \u201cworld\u201d in the same PHP application. Write to disk generates files in the format Core accepts. Verify calls the binary. Reload sends SIGHUP. Multilingual. An installer that also upgrades \u2014 from 1.x\/2.x to 3.x, Martin instructed users to reimport rather than force a schema migration.<\/p>\n<p>3.4.0 (May 1\u00ba, 2018) marked the modern break: full Core 4.x support, PHP 7, a rewrite. 3.4.1 (January 19, 2020) brought PHP \u2265 7.2, MariaDB, git hotfixes. The <strong>3.5.0<\/strong> (2023) opened the door to PHP 8. The community Docker image (<code data-no-translation=\"\">instantlinux\/nagiosql<\/code>) stacks 3.5.0 on top of Core 4.5.x through 2026.<\/p>\n<h2>What NagiosQL is \u2014 and what it is not<\/h2>\n<p>It does not monitor. It does not replace the status CGI. It is not NDOUtils. It is the editor:<\/p>\n<ul>\n<li>Objects in MySQL, with copying, search, and pagination.<\/li>\n<li>Host\/service templates, custom variables, command ARG with special characters (a classic bug, fixed more than once).<\/li>\n<li>Write to disk with a field limit \u2014 ticket #27 from 2025 was still about this; Martin closed it in the April 20, 2025 commit.<\/li>\n<li>Importing cfg files someone wrote by hand, so you do not have to start from scratch.<\/li>\n<\/ul>\n<p>Those who wanted graphs and triggers in the same product moved to <a href=\"\/en\/2026\/09\/a-historia-do-zabbix\/\">Zabbix<\/a>. Those who wanted plain Core with an inexpensive configuration GUI stayed here. Enterprises\u2019 XI covers the same niche with wizards and a price tag. NagiosQL is XI for people who read PHP and do not sign a contract.<\/p>\n<h2>2026: git, PHP 8, the same Martin<\/h2>\n<p>There is no spectacular \u201c3.6\u201d release. There is git. FreeBSD updates the tag. Community Docker follows Core. Requirements: Apache, PHP 7.2+ (8.x since 3.5.0), MariaDB\/MySQL, sessions, mysqli, gettext. Optional SSH\/FTP for writing cfg files to a remote host. Core 4.5.14 from the other post remains the engine. QL remains the form.<\/p>\n<p>CVEs and scanners still detect old installations on port 80 \u2014 Nessus has a dedicated plugin. Anyone exposing NagiosQL to the internet without TLS and Apache authentication is asking for trouble. The product was born for an intranet.<\/p>\n<h2>Wrap-up<\/h2>\n<p>A German (or Swiss from wizonet), a 2005 SourceForge project, and the refusal to edit 800 services in vim. Nagios never got a configuration API. NagiosQL was the API: a POST, an INSERT, a write to disk. 3.5.0, PHP 8, GitLab wizonet, 21 years. The filing cabinet on the cover is literal \u2014 each drawer a host.cfg.<\/p>\n<p>The daemon: <a href=\"\/en\/2026\/09\/a-historia-do-nagios\/\">The history of Nagios<\/a>. Monitoring that starts with a database: <a href=\"\/en\/2026\/09\/a-historia-do-zabbix\/\">Zabbix<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>On March 19, 2005, NagiosQL arrived on SourceForge. Martin of wizonet put on the web what Nagios administrators had been doing in vim: host, service, contact, timeperiod, template \u2014 in a form, in MySQL, with a button to write to disk and another to run nagios -v. Twenty-one years later, version 3.5.0 still \u2026 <a title=\"The History of NagiosQL: The cfg That Got a Form\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/a-historia-do-nagiosql\/\" aria-label=\"Read more about A hist\u00f3ria do NagiosQL: o cfg que ganhou formul\u00e1rio\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,2,111,120],"tags":[252,248,251,237],"class_list":["post-553","post","type-post","status-publish","format-standard","hentry","category-infra","category-linux","category-opensource","category-servidores","tag-mysql","tag-nagios","tag-nagiosql","tag-php"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=553"}],"version-history":[{"count":5,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/553\/revisions"}],"predecessor-version":[{"id":1516,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/553\/revisions\/1516"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}