Instalação automática do Nagios
Publicado por Carlos Eduardo Fraga Ribeiro (última atualização em 30/08/2009)
[ Hits: 13.235 ]
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
Bloquear Facebook no Linux Educacional 3
Biblioteca de funções de manipulação de arquivos CSV para shell script
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (7)
Vou voltar moderar conteúdos de Dicas e Artigos (1)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta