Instalação automática do Nagios
Publicado por Carlos Eduardo Fraga Ribeiro (última atualização em 30/08/2009)
[ Hits: 13.484 ]
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
Instalação e configuração do celular Nokia 6670 no Ubuntu 8.10
Cadastrando usuários para email no Slackware de forma mais simples
Implementando Statement e RecordSet em bash script
Script de compilação automática do GCC-5.3.0 para Debian/Ubuntu de 32 bits
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (10)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









