A versão do Nagios utilizada nesse artigo foi a 3.0.6 e do Nagios Plugins 1.4.13
# wget http://heanet.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz
Para compilar os pacotes do Nagios e Nagios plugins é preciso instalar os compiladores básicos e os headers do kernel do linux.
O comando
# apt-get install build-essential linux-headers-`uname -r`
realiza a instalação dos pacotes corretos.
O build-essential é o conjunto de pacotes e bibliotecas de compilação, ele instala o GCC, G++ e os demais integrantes do kit básico.
O pacote "linux-headers" inclui os headers do kernel, o conjunto de arquivos e ponteiros necessários para que o compilador seja capaz de gerar módulos adequados ao kernel em uso. Existem várias versões do pacote, uma para cada versão do kernel disponível nos repositórios (como em "linux-headers-2.6.26-1-686"); por isso, para facilitar, usamos o "linux-headers-`uname -r`" (o ` é o símbolo de crase) que faz com que o apt descubra sozinho qual versão deve instalar a partir do comando "uname -r". Com isso, a casa fica pronta para a instalação dos drivers. Terminada a instalação é hora de compilar o Nagios.
Criando usuário Nagios
# adduser nagios
O usuário nagios será o usuário que o Nagios utilizará para a execução. Automaticamente o grupo nagios será criado para esse usuário. Isso pode ser conferido com o comando
# grep nagios /etc/passwd
Para executar comandos externos via interface web é preciso que o servidor web esteja instalado. Para instalar o Apache
# apt-get install apache2
Durante a instalação do apache, automaticamente é criado o usuário www-data
. Esse usuário, por padrão é quem executa o apache. Para identificar com qual o usuário o apache está sendo executado
#grep "^User" /etc/apache2/apache2.conf
Para que o usuário nagios possa executar comandos através da interface web do apache devemos adicioná-lo ao grupo do apache. Para isso execute
# usermod -G nagios nagios
# usermod -G www-data,nagios www-data
Para conferir se o usuário foi mesmo adicionado ao grupo, execute o comando
#grep nagios /etc/group
Iremos instalar o nágios no diretório /usr/local/
. Crie dentro desse diretório uma pasta chamada nagios e copie para dentro dela os arquivos do nagios e os plugins baixados.
Extraia os arquivos do Nagios com o comando
# tar -xvzf nagios-3.0.6.tar.gz
Acesse a pasta nagios-3.0.6/
# cd nagios-3.0.6
Execute o scritp
#./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios/ --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagios
onde:
-prefix=/usr/local/nagios | destino onde o nagios será instalado |
-with-cgiurl=/nagios/cgi-bin | Pasta CGI do Nagios |
-with-htmurl=/nagios/ | Arquivos HTML do Nagios, pasta da web interface |
-with-nagios-user=nagios | usuário do Nagios |
-with-nagios-group=nagios | grupo do Nagios |
-with-command-group=nagios | is the Nagios command group which has webserver user (Apache) and the nagios user as members. |
Se desejar ver mais opções do que podem ser utilizadas para a compilação, digite o comando
# ./configure --help
Em seguida compile o Nagios e os CGIs
# make all
Instale os binários
# make install
Instale os scripts de inicialização
# make install-init
Crie o diretório que será utilizado para a inserção de comandos externos
# make install commandmode
Instale o arquivo de configuração de EXEMPLO do Nagios. As configurações contidas nesse arquivo são apenas configurações básicas necessárias para executá-lo, provavelmente você precisará fazer alterações no arquivo /usr/local/nagios/etc/nagio.cfg de acordo com suas necessidades.
#make install-config
Nesse momento o nagios já está instalado em seu computador. Agora conheceremos a estrutura dos diretórios do Nagios
#cd /usr/local/nagios/
Você encontrará no diretório do Nagios outros seis sub-diretórios. Abaixo uma breve explicação de cada um deles
bin/ | Nagios binários do Nagios |
etc/ | Diretório principal do Nagios, ele contém os arquivos de configuração e arquivos de configuração do CGI. |
libexec/ | Os plugins do Nagios são armazenados nesse diretórios |
sbin/ | CGIs |
share/ | Arquivos HTML (para interface web e documentação online) |
var/ | Diretório vazio utilizado para os arquivos logs |
Instalando os plugins para o Nagios
# wget http://mesh.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
Extraia os arquivos
# tar -xvzf nagios-plugins-1.4.13.tar.gz
Acesse o diretórios nagios-plugins-1.4.13/
# cd nagios-plugins-1.4.13/
Compile o arquivo
# ./configure
Em seguida instale os binários
#make & make install
Os plugins serão instalados no diretório /usr/local/nagios/libexec
. Agora temos o Nagios e os plugins instalados. Vamos então prosseguir com a configuração do Apache para que seja possível acessar o Nagios e executar comandos externos via web interface.
Existem duas formas de realizar a configuração. A primeira é criar um arquivo contendo o ScriptAlias
configurações dentro do diretório /etc/apache2/sites-available/
ou inserir as configurações no arquivo httpd.conf
. Será abordado nesse artigo a segunda forma.
Dentro do seu arquivo httpd.conf
insira as seguintes configurações:
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin/
<Directory "/usr/local/nagios/sbin/">
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /nagios /usr/local/nagios/share/
<Directory "/usr/local/nagios/share">
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user
</Directory>
Salve o arquivo e em seguida reinicie o apache
#/etc/init.d/apache2 restart
Para um maior segurança, o Nagios será configurado de forma que, cada usuário somente terá acesso a sua web interface caso esteja previamente cadastrado. Para isso, criaremos um arquivo de configuração contendo os usuários que terão permissão de acesso a interface do Nagios. O parâmetro "-c" do comando cria um arquivo htpasswd.users e insere o usuário guilherme .
#htpasswd -c /usr/local/nagios/etc/htpasswd.users guilherme
Será solicitado que seja criado uma senha para o usuário. Caso queira inserir novos usuários, retire o parâmetro -c
do comando e ao final entre com o nome do novo usuário
#htpasswd /usr/local/nagios/etc/htpasswd.users novousuario
Para finalizar edite o arquivo /usr/local/nagios/etc/cgi.cfg
. Este arquivo contém as configurações do cgi utilizadas pelo Nagios. Configure os parâmetros abaixo para os usuários que você cadastrou no arquivo /usr/local/nagios/etc/htpasswd.users
para que possam acessar o sistema. No meu caso ficou da seguinte forma:
authorized_for_system_information=guilherme
authorized_for_configuration_information=guilherme
authorized_for_system_commands= guilherme
authorized_for_all_services=guilherme
authorized_for_all_hosts=guilherme
authorized_for_all_service_commands=guilherme
authorized_for_all_host_commands=guilherme
Em seguida, reinicie o Nagios. Para acessá-lo digite no seu browser
http://<IPADDRESS OR HOSTNAME>/nagios/
Após a validação de usuário e senha você terá acesso ao Nagios
O mapa funciona, os grupos funcionam muito melhor. Claro que o diretorio passa de /usr/local/nagios, para /etc/nagios3. Não vou nem postar as configurações, pois está tudo muito mais simples. Não achei legal instalar nem a nova interface (muito cheio de frescuras e com alguns bugs nesta nova versão) e nem o nagiosQL , pois sem isso o sistema fica com a "anti-burro" (usuários retardados) ativo. Fiz todos os teste necessários. O sistema esta perfeito! Sem erros. Melhor do que nunca foi. E ao contrario do Zenoss, muito mais leve.