zeldor.biz

Linux, programming and more

Copyright © 2023
Log in

Icinga with Lighttpd

December 22, 2010 by Igor Drobot 3 Comments

Some days ago I wrote a similar post about nagios and lighty, now I decided to test Icinga on Debian Squeeze.

The installation was pretty easy:

1
2
aptitude install lighttpd
aptitude install icinga

aptitude install lighttpd aptitude install icinga

To use Icinga we need following modules:

  • mod_cgi
  • mod_auth
  • mod_setenv


Just run lighttpd-enable-mod to enable available modules (you will see all available):

1
lighttpd-enable-mod

lighttpd-enable-mod

Enable modules:

1
2
3
lighttpd-enable-mod cgi
lighttpd-enable-mod auth
lighttpd-enable-mod status

lighttpd-enable-mod cgi lighttpd-enable-mod auth lighttpd-enable-mod status

Now we create our own Icinga module for lighttpd:

1
vim /etc/lighttpd/conf-available/10-icinga.conf

vim /etc/lighttpd/conf-available/10-icinga.conf

This is the content of it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Icinga mod
 
alias.url =     (
                "/cgi-bin/icinga" => "/usr/lib/cgi-bin/icinga",
                "/icinga/cgi-bin" => "/usr/lib/cgi-bin/icinga",
                "/icinga/stylesheets" => "/etc/icinga/stylesheets",
                "/icinga" => "/usr/share/icinga/htdocs"
                )
 
$HTTP["url"] =~ "^/icinga/cgi-bin" {
        cgi.assign = ( "" => "" )
}
 
$HTTP["url"] =~ "icinga" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/icinga/htpasswd.users"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "icinga",
                "require" => "user=icingaadmin"
                )
        )
        setenv.add-environment = ( "REMOTE_USER" => "user" )
}

# Icinga mod alias.url = ( "/cgi-bin/icinga" => "/usr/lib/cgi-bin/icinga", "/icinga/cgi-bin" => "/usr/lib/cgi-bin/icinga", "/icinga/stylesheets" => "/etc/icinga/stylesheets", "/icinga" => "/usr/share/icinga/htdocs" ) $HTTP["url"] =~ "^/icinga/cgi-bin" { cgi.assign = ( "" => "" ) } $HTTP["url"] =~ "icinga" { auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/etc/icinga/htpasswd.users" auth.require = ( "" => ( "method" => "basic", "realm" => "icinga", "require" => "user=icingaadmin" ) ) setenv.add-environment = ( "REMOTE_USER" => "user" ) }

Enable created module:

1
lighttpd-enable-mod icinga

lighttpd-enable-mod icinga

If you have more than one user, use pipe symbols to create more restrictions:

1
"require" => "user=icingaadmin|user=icingauser"

"require" => "user=icingaadmin|user=icingauser"

Create “htpasswd.users”:

1
2
3
4
root@server:~# htpasswd -n icingaadmin
New password: root
Re-type new password: root
icingaadmin:8.vg9QPHv4qD6

root@server:~# htpasswd -n icingaadmin New password: root Re-type new password: root icingaadmin:8.vg9QPHv4qD6

Copy your output to the htpasswd.users:

1
echo "icingaadmin:8.vg9QPHv4qD6" > /etc/icinga/htpasswd.users

echo "icingaadmin:8.vg9QPHv4qD6" > /etc/icinga/htpasswd.users

After restart, you should reach your Icinga service: “http://server/icinga/”

1
/etc/init.d/lighttpd restart

/etc/init.d/lighttpd restart

Filed Under: Debian, Linux, Monitoring, Ubuntu Tagged With: Debian, Icinga, Monitoring, Squeeze, Ubuntu

Categories

Archives

Tags

apache2 Apple arduino ARM Automation backup bash Cisco Cluster Corosync Database Debian Debian squeeze DIY DNS Fedora FTP Fun Icinga Ipv6 KVM Linux LVM MAC OS X Monitoring MySQL Nagios Nginx openSUSE OpenVPN PHP Proxy Python python3 qemu RAID rsync Samba security ssh Ubuntu virtualization Windows Windows 7 Wordpress

Comments

  1. Thomas Krichel says

    June 4, 2013 at 22:44

    as soon as a add the auth.require part of the configuration, the server dies on after hittng the /insigna URL.

    trabbi:/var/log# lighttpd -v
    lighttpd/1.4.31 (ssl) – a light and fast webserver
    Build-Date: Mar 15 2013 21:07:13

  2. Andy says

    December 20, 2011 at 03:55

    Your blog post was very helpful. The configuration below was used for CentOS 6 (x86_64) running Icinga 1.5.1.

    alias.url += (
    “/cgi-bin/icinga” => “/usr/lib64/icinga/cgi”,
    “/icinga/cgi-bin” => “/usr/lib64/icinga/cgi”,
    “/icinga/stylesheets” => “/usr/share/icinga/stylesheets”,
    “/icinga” => “/usr/share/icinga”
    )

    Also, note the alias.url += is used since our lighttpd configuration has additional alias settings.

  3. Alan Buxton says

    October 10, 2011 at 19:21

    Thanks for this – worked a treat for me just that if you are building from source in 1.5.1 I had to have slightly different aliases:

    alias.url = (
    #”/cgi-bin/icinga” => “/usr/lib/cgi-bin/icinga”,
    “/icinga/cgi-bin” => “/usr/local/icinga/sbin”,
    # “/icinga/stylesheets” => “/etc/icinga/stylesheets”,
    “/icinga” => “/usr/local/icinga/share”
    )

Leave a Reply

Your email address will not be published. Required fields are marked *