Instalação automática do Nagios
Publicado por Carlos Eduardo Fraga Ribeiro (última atualização em 30/08/2009)
[ Hits: 13.611 ]
Homepage: http://www.eftech.com.br
Este script instala, de forma automática, o Nagios com vários add-ons como: NagiosQL, NagVis, NDOUtils.
#!/bin/bash
#######################################
#
# Arquivo: instalar_nagios.sh
#
# Definição: Script para instalar o sistema de monitoramento de redes "Nagios"
#
# Requisitos: Instalação básica do CentOS 5.2
#
# Versão: 1.0 - 16/08/2009 - Este programa em shell
# Versão: 1.1 - 16/08/2009 - Verifica se o download do nagios já existe
# Versão: 2.0 - 16/08/2009 - Incluir o NagiosQL
# Versão: 3.0 - 16/08/2009 - Incluir o NDOutils
# Versão: 4.0 - 16/08/2009 - Incluir o NagVis
# Versão: 5.0 - 27/08/2009 - Revisão desde código par ficar mais legivel
#
# Autor: Eduardo Fraga eduardo@eftech.com.br
#
# Licença: GPL v2
#
#######################################
#
# Debug:
# set -xv
#
# Configurações:
#
# PROXY=http://<usuario>:<senha>:<host>:<porta>
PROXY=
# USUÁRIO
USUARIO=nagios
# GRUPO
GRUPO=nagios
# SENHA
PASSWORD=123456
#
#
#
#
#######################################
#
#
#
# Verificar se o sistema operacional é CentOS
VERSAO=`cat /etc/redhat-release | cut -d" " -f1`
if [ ! "$VERSAO" == "CentOS" ]; then
echo "Sistema operacional diferente... Saindo!"
exit 1
fi
# Defini o proxy
if [ "$PROXY" == "" ]; then
echo "Sem proxy!"
else
echo "Com proxy!"
export http_proxy=$PROXY
export ftp_proxy=$PROXY
fi
# Create a directory for storing the downloads.
if [ ! -d ~/downloads ]; then
mkdir ~/downloads
cd ~/downloads
fi
# Atualizar o Yum (atualizador do CentOS)
yum -y install yum
# Instalar o pacotel EPEL (Extra Packages for Enterprise Linux)
if [ -f epel-release-5-3.noarch.rpm ]; then
echo "O arquivo epel-release-5-3.noarch.rpm já exite"
else
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
fi
# Instalar os prerequisitos do nagios
yum -y install httpd php gcc glibc glibc-common gd gd-devel net-snmp \
net-snmp-utils net-snmp-perl net-snmp-libs per-Net-SNMP
# Criar conta de usuario nagios
useradd -m -p $PASSWORD $USUARIO
# Criar grupo nagcmd para permitir que comandos externos possam ser executados
groupadd $GRUPO
usermod -a -G $GRUPO $USUARIO
usermod -a -G $GRUPO apache
# Download do codigo fonte tar.gz (http://www.nagios.org/download/)
if [ -f nagios-3.2.0.tar.gz ]; then
echo "O arquivo nagios-3.2.0.tar.gz já exite"
else
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
fi
if [ -f nagios-plugins-1.4.13.tar.gz ]; then
echo "O arquivo nagios-plugins-1.4.13.tar.gz já existe"
else
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
fi
# Extract the Nagios source code tarball.
cd ~/downloads
tar xzf nagios-3.2.0.tar.gz
cd nagios-3.2.0
# Run the Nagios configure script, passing the name of the group you
# created earlier like so:
./configure --with-command-group=$GRUPO
# Compile the Nagios source code.
make all
# Install binaries, init script, sample config files and set permissions on
# the external command directory.
make install
make install-init
make install-config
make install-commandmode
# Editar o arquivo contacts.cfg
# vi /usr/local/nagios/etc/objects/contacts.cfg
# Install the Nagios web config file in the Apache conf.d directory
make install-webconf
# Create a nagiosadmin account for logging into the Nagios web interface.
# Remember the password you assign to this account - you'll need it later.
htpasswd -cmb /usr/local/nagios/etc/htpasswd.users nagiosadmin $PASSWORD
# Extract the Nagios plugins source code tarball.
cd ~/downloads
tar xzf nagios-plugins*.tar.gz
cd nagios-plugins*
# Compile and install the plugins.
./configure --with-nagios-user=$USUARIO --with-nagios-group=$GRUPO
make
make install
# Add Nagios to the list of system services and have it automatically start when the system boots.
chkconfig --add nagios
chkconfig nagios on
chkconfig httpd on
# Verify the sample Nagios configuration files.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# If there are no errors, start Nagios.
service nagios start
service httpd start
# See if SELinux is in Enforcing mode.
#getenforce
# Put SELinux into Permissive mode.
#setenforce 0
# To make this change permanent, you'll have to modify the settings in
# /etc/selinux/config and reboot.
# Instead of disabling SELinux or setting it to permissive mode, you can use
# the following command to run the CGIs under SELinux enforcing/targeted mode:
#chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
#chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
# NagiosQL
# Instalar dependencias
yum -y install php php-pear mysql-server php-gettext php-mysql
# Configurar o proxy no pear
# fazer no futuro
pear install HTML_Template_IT
# Configurar o servidor mysql (se necessario)
chkconfig mysqld on
service mysqld start
mysqladmin -u root password "'"$PASSWORD"'"
# Baixar o codigo fonte
cd ~/downloads
if [ -f nagiosql303.tar.gz ]; then
echo "arquivo nagiosql303.tar.gz ja existe"
else
wget http://downloads.sourceforge.net/project/nagiosql/nagiosql/NagiosQL%203.0.3/nagiosql303.tar.gz
fi
# Instalar o NagiosQL
cp nagiosql303.tar.gz /var/www/html/
cd /var/www/html/
tar -xvf nagiosql303.tar.gz
mv nagiosql3 nagiosql
touch /var/www/html/nagiosql/install/ENABLE_INSTALLER
chown -R apache:apache /var/www/html/nagiosql
# Criar a estrutura de diretorios para nagiosQL
#/etc/nagiosql/ -> Common configuration files
# " /hosts -> Host configuration files
# " /services -> Service configuration files
# " /backup/ -> Backups of the common configuration files
# " " /hosts -> Backups of the host configuration files
# " " /services -> Backups of the service configuration files
mkdir -p /etc/nagiosql/{hosts,services,backup/{hosts,services}}
# Alterar as permissões
chgrp apache /usr/local/nagios/
chgrp apache /usr/local/nagios/etc/nagios.cfg
chgrp apache /usr/local/nagios/etc/cgi.cfg
chmod 775 /usr/local/nagios/
chmod 664 /usr/local/nagios/etc/nagios.cfg
chmod 664 /usr/local/nagios/etc/cgi.cfg
chmod 6755 /etc/nagiosql/
chown apache.nagios /etc/nagiosql/
chmod 6755 /etc/nagiosql/hosts/
chown apache.nagios /etc/nagiosql/hosts/
chmod 6755 /etc/nagiosql/services/
chown apache.nagios /etc/nagiosql/services/
chmod 6755 /etc/nagiosql/backup/
chown apache.nagios /etc/nagiosql/backup/
chmod 6755 /etc/nagiosql/backup/hosts/
chown apache.nagios /etc/nagiosql/backup/hosts/
chmod 6755 /etc/nagiosql/backup/services/
chown apache.nagios /etc/nagiosql/backup/services/
# criar link simbolico de /usr/local/nagios para /etc/nagios
ln -sf /usr/local/nagios/etc /etc/nagios
cp /etc/nagios/nagios.cfg /etc/nagios/nagios2.cfg
sed s/cfg_file/#cfg_file/g /etc/nagios/nagios2.cfg > /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/contacttemplates.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/contactgroups.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/contacts.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/timeperiods.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/commands.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/hostgroups.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/servicegroups.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_dir=/etc/nagiosql/hosts" >> /etc/nagios/nagios.cfg
echo "cfg_dir=/etc/nagiosql/services" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/hosttemplates.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/servicetemplates.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/servicedependencies.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/serviceescalations.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/hostdependencies.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/hostescalations.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/hostextinfo.cfg" >> /etc/nagios/nagios.cfg
echo "cfg_file=/etc/nagiosql/serviceextinfo.cfg" >> /etc/nagios/nagios.cfg
chmod -R 777 /usr/local/nagios/
mkdir /var/nagios
ln -sf /usr/local/nagios/var/nagios.lock /var/nagios/nagios.lock
# NDOutil
# Instalar requisitos
yum -y install mysql-devel
# Baixar requisitos
cd ~/downloads/
if [ ! -f ndoutils-1.4b8.tar.gz ]; then
wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b8.tar.gz
fi
tar zxf ndoutils-1.4b8.tar.gz
cd ndoutils-1.4b8
# Instalar
./configure
make
cd src/
cp ndomod-3x.o /usr/local/nagios/bin/
cp ndo2db-3x /usr/local/nagios/bin/
cp log2ndo /usr/local/nagios/bin/
cp file2sock /usr/local/nagios/bin/
cd ../db/
echo 'create database nagios;' | mysql -u root -p$PASSWORD
./installdb -u root -p $PASSWORD -h 127.0.0.1 -d nagios
cd ../config/
cp ndomod.cfg /usr/local/nagios/etc/ndomod.cfg
sed -e s/db_user=ndouser/db_user=root/ -e s/db_pass=ndopassword/db_pass=123456/ \
ndo2db.cfg > /usr/local/nagios/etc/ndo2db.cfg
#cat nagios.cfg >> /usr/local/nagios/etc/nagios.cfg
echo 'broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg' >> /usr/local/nagios/etc/nagios.cfg
cat misccomands.cfg >> /usr/local/nagios/etc/objects/commands.cfg
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
ln -sf /usr/local/nagios/bin/ndo2db-3x /usr/local/nagios/bin/ndo2db
service nagios restart
service httpd restart
#
# NagVis
#
# Requisitos
yum -y install php-xml php-gd php-mysql install php-mbstring install perl install perl-JSON-XS graphviz*
cd ~/downloads/
# Baixar o NagVis
if [ -f nagvis-1.4.2.tar.gz ]; then
echo "O arquivo nagvis-1.4.2.tar.gz ja existe"
else
wget http://downloads.sourceforge.net/project/nagvis/NagVis%201.4%20%28stable%29/NagVis-1.4.2/nagvis-1.4.2.tar.gz
fi
tar -xvf nagvis-1.4.2.tar.gz -C /usr/local/nagios/share/
cd /usr/local/nagios/share/
mv nagvis-1.4.2 nagvis
chown -R $USUARIO.$GRUPO nagvis
cd nagvis
cp install.sh install2.sh
sed s/NEED_GV_VERSION=2.14/NEED_GV_VERSION=2.12/ install2.sh > install.sh
./install.sh
cp etc/nagvis.ini.php etc/nagvis2.ini.php
sed -e 's/;dbpass=""/dbpass="123456"/' etc/nagvis2.ini.php > etc/nagvis.ini.php
service httpd restart
service nagios restart
Manutencao de arquivos no Squid-Cache
Bloqueia ataques do tipo bruteforce
cal2svg gerador de calendários em formato vetorial SVG
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (1)
Alguém executou um rm e quase mata a Pixar! (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (5)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









