{"id":439,"date":"2013-05-17T18:00:02","date_gmt":"2013-05-17T21:00:02","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=439"},"modified":"2013-05-17T18:05:01","modified_gmt":"2013-05-17T21:05:01","slug":"instalacao-e-configuracao-do-munin-no-debian-7-0","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=439","title":{"rendered":"Instala\u00e7\u00e3o e Configura\u00e7\u00e3o do Munin no Debian 7.0"},"content":{"rendered":"<div>\n<p>Munin \u00e9 uma ferramenta de monitoramento de rede recurso que pode ajudar a analisar as tend\u00eancias de recursos e \u201cO que aconteceu para matar nosso desempenho?\u201d problemas. Ele \u00e9 projetado para ser plug and play. Uma instala\u00e7\u00e3o padr\u00e3o fornece uma s\u00e9rie de gr\u00e1ficos com quase nenhum trabalho.<\/p>\n<p>Origem do nome Munin:<\/p>\n<p>Na mitologia n\u00f3rdica, Huginn (do n\u00f3rdico antigo \u201cpensamento\u201d) e Muninn (do n\u00f3rdico antigo \u201cmem\u00f3ria\u201d ou \u201cmente\u201d) s\u00e3o um par de corvos que voam por todo o mundo conhecido como Midgard, trazendo informa\u00e7\u00f5es ao deus Odin. As informa\u00e7\u00f5es sobre Huginn e Muninn s\u00e3o encontradas no Edda po\u00e9tica, compila\u00e7\u00e3o do s\u00e9culo XIII de fontes mais antigas; no Edda em prosa e no Heimskringla, escritos no s\u00e9culo XIII por Snorri Sturluson; no Terceiro Tratado Gramatical, compilado no s\u00e9culo XIII por \u00d3l\u00e1fr \u00de\u00f3r\u00f0arson; e na poesia dos escaldos. Por vezes seus nomes s\u00e3o modernamente anglicizados como Hugin e Munin.<\/p>\n<p>O que vou utilizar:<\/p>\n<ol>\n<li>\n<div><strong>Servidor Munin<\/strong><\/div>\n<\/li>\n<li>\n<div><strong>IP:<\/strong> 192.168.1.30\/24<\/div>\n<\/li>\n<li>\n<div><strong>Nome:<\/strong> munin<\/div>\n<\/li>\n<\/ol>\n<ol>\n<li>\n<div><strong>Cliente Munin<\/strong><\/div>\n<\/li>\n<li>\n<div><strong>IP:<\/strong> 192.168.1.31\/24<\/div>\n<\/li>\n<li>\n<div><strong>Nome:<\/strong> cliente<\/div>\n<\/li>\n<\/ol>\n<p>Prepare o seu sistema com o seguinte script para que n\u00e3o falte nenhum pacote ou configura\u00e7\u00e3o:<\/p>\n<p>#############################################################################################################<\/p>\n<h1 id=\"script_para_configuracao_inicial_do_debian_squeeze\">Script para configura\u00e7\u00e3o Inicial do Debian Squeeze<\/h1>\n<div>\n<p>Aqui somente precisamos obter o script, dar permiss\u00e3o e mandar executar<\/p>\n<p>Dar permiss\u00e3o no script<\/p>\n<pre>chmod +x ConfInicialSqueeze.sh<\/pre>\n<p>Agora precisamos mandar executar ele<\/p>\n<pre>.\/ConfInicialSqueeze.sh -i<\/pre>\n<dl>\n<dt><a title=\"Download Snippet\" href=\"http:\/\/www.douglas.wiki.br\/doku.php?do=export_code&amp;id=confinicialsqueeze&amp;codeblock=2\">ConfInicialSqueeze.sh<\/a><\/dt>\n<dd>\n<pre>#!\/bin\/sh\r\n#-------------------------------------------------------------------------\r\n# ConfInicialSqueeze\r\n#\r\n# Site\t: http:\/\/www.*.com.br\r\n# Autor : Douglas Q. dos Santos &lt;douglas@douglas.wiki.br&gt;\r\n# Manuten\u00e7\u00e3o: Douglas Q. dos Santos &lt;douglas@douglas.wiki.br&gt;\r\n#\r\n#-------------------------------------------------------------------------\r\n# Efetua a configura\u00e7\u00e3o de reposit\u00f3rios e a instala\u00e7\u00e3o de alguns pacotes,\r\n# necess\u00e1rios.\r\n#-------------------------------------------------------------------------\r\n# Hist\u00f3rico:\r\n#\r\n# Vers\u00e3o 1:\r\n# Data: 22\/02\/2011\r\n# Descri\u00e7\u00e3o: Efetua a Configuracao do Debian GNU\/Linux Squeeze\r\n# configurando reposit\u00f3rios e instalando alguns pacotes\r\n#\r\n# Vers\u00e3o 2: \r\n# Data: 14\/05\/2011\r\n# Descri\u00e7\u00e3o: Efetuado a valida\u00e7\u00e3o da atualiza\u00e7\u00e3o dos reposit\u00f3rios,\r\n# validacao da instalacao dos pacotes, e validacao do arquivo de backup\r\n# Adicionadas as opcoes -V, --version, -h, --help, -i, -install, -l, --log\r\n#--------------------------------------------------------------------------\r\n#Licen\u00e7a: http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/legalcode\r\n#\r\n#--------------------------------------------------------------------------\r\n#clear\r\nINICIO=$(date)\r\n\r\n# DEFINI\u00c7\u00c3O DAS CORES USADAS NO SCRIPT\r\nGREY=\"\\033[01;30m\" RED=\"\\033[01;31m\" GREEN=\"\\033[01;32m\" YELLOW=\"\\033[01;33m\"\r\nBLUE=\"\\033[01;34m\" PURPLE=\"\\033[01;35m\" CYAN=\"\\033[01;36m\" WHITE=\"\\033[01;37m\"\r\nCLOSE=\"\\033[m\"\r\n\r\n# VALIDANDO O USUARIO QUE ESTA EXECUTANDO O SCRIPT\r\nUSU=$(whoami)\r\n\r\nif [ \"${USU}\" != root ]; then\r\n  echo\r\n  echo \"${RED}###################################################################################\"\r\n  echo \" ESTE PROGRAMA PRECISA SER EXECUTADO COM PERMISSOES DE SUPERUSUARIO!\"\r\n  echo \" Abortando...\"\r\n  echo \"####################################################################################${CLOSE}\"\r\n  echo\r\n  exit 1\r\nfi\r\n\r\n# DECLARA\u00c7\u00c3O DA FUN\u00c7\u00c3O DE INSTALA\u00c7\u00c3O\r\nINSTALL()\r\n{\r\necho  \"${RED}####################################################################${CLOSE}\"\r\necho \"${RED} Este script estara trabalhando com o seguinte processo ${GREEN} $$ ${CLOSE}   ${CLOSE}\"\r\necho  \"${RED}####################################################################${CLOSE}\"\r\nsleep 3\r\n\r\n# COMANDOS UTILIZADOS NO SCRIPT \r\nCAT=$(which cat)\r\nAPTGET=$(which apt-get)\r\nAPTITUDE=$(which aptitude)\r\nCAT=$(which cat)\r\nCRONTAB=$(which crontab)\r\nCP=$(which cp)\r\nRM=$(which rm)\r\nNTPDATE=$(which ntpdate)\r\nREBOOT=$(which reboot)\r\nTZCONFIG=$(which tzconfig)\r\nWGET=$(which wget)\r\nGPG=$(which gpg)\r\nAPT_KEY=$(which apt-key)\r\nMKDIR=$(which mkdir)\r\nSED=$(which sed)\r\nLOCALE_GEN=$(which locale-gen)\r\nCD=\"cd\"\r\nCHSH=\"\/usr\/bin\/chsh\"\r\n\r\n# PACOTES A INSTALAR E A REMOVER\r\n#PACOTES_A_REMOVER=\"dhcp3-client dhcp3-common nfs-common\"\r\nPACOTES_A_INSTALAR=\"vim vim-scripts ctags vim-doc zip unzip rar p7zip bzip2 less links telnet locate openssh-server sysv-rc-conf rsync build-essential libncurses5-dev ntpdate postfix cmake sudo git makepasswd\"\r\nFERRAMENTAS=\"atsar tcpstat ifstat dstat procinfo pciutils dmidecode htop nmap tcpdump usbutils strace ltrace hdparm sdparm iotop atop iotop iftop sntop powertop itop kerneltop dos2unix tofrodos chkconfig zsh\"\r\n#SEPRECISAR=\"mytop ptop dnstop vnstat\"\r\n# ARQUIVOS E DIRET\u00d3RIOS USADOS PARA A GERA\u00c7\u00c3O DOS LOGS \r\nDIR_LOGS=\"\/root\/logs\"\r\nLOGS=\"${DIR_LOGS}\/ConfInicialSqueeze\"\r\n\r\n### AJUSTANDO O APT ###\r\nAPT=\"\/etc\/apt\"\r\n\r\n# VALIDA SE JA EXISTE O ARQUIVO DE BACKUP DO sources.list\r\nif [ -f ${APT}\/sources.list.bkp ]; then\r\n\techo \"${GREEN}Digite um novo nome para o arquivo de backup do sources.list ou pressione ENTER${CLOSE}\"\r\n\tread SOURCES\r\n\tAPTBKP=${SOURCES}\r\n\r\n        if [ -z ${SOURCES} ]; then\r\n\tAPTBKP=sources.list.bkp\r\n        fi\r\nelse\r\n\techo \"${RED}Vou fazer um backup do arquivo sources.list com o nome sources.list.bkp${CLOSE}\"\r\n\tAPTBKP=sources.list.bkp\r\nfi\r\n\r\n# EFETUANDO BACKUP DO ARQUIVO DE REPOSITORIOS\r\n${CP} -Rf ${APT}\/sources.list ${APT}\/${APTBKP} \r\n\r\n# REFAZENDO O ARQUIVO COM OS REPOSITORIOS\r\n${CAT} &lt;&lt; EOF &gt; $APT\/sources.list\r\n# DATA DA GERACAO DO NOVO ARQUIVO: $(date)\r\n# REPOSIT\u00d3RIO OFICIAL \r\ndeb http:\/\/ftp.br.debian.org\/debian squeeze main contrib non-free\r\ndeb-src http:\/\/ftp.br.debian.org\/debian squeeze main contrib non-free\r\n\r\n# REPOSIT\u00d3RIO DE ATUALIZA\u00c7\u00d5ES FREQUENTES\r\n#deb http:\/\/volatile.debian.org\/debian-volatile squeeze\/volatile main contrib non-free\r\n#deb-src http:\/\/volatile.debian.org\/debian-volatile squeeze\/volatile main contrib non-free\r\n\r\n# REPOSIT\u00d3RIO DE ATUALIZA\u00c7\u00d5ES DE SEGURAN\u00c7A \r\ndeb http:\/\/security.debian.org\/ squeeze\/updates main contrib non-free\r\ndeb-src http:\/\/security.debian.org\/ squeeze\/updates main contrib non-free\r\n\r\n# REPOSIT\u00d3RIO DE ATUALIZA\u00c7\u00d5ES PROPOSTAS\r\ndeb http:\/\/ftp.br.debian.org\/debian squeeze-proposed-updates main contrib non-free\r\ndeb-src http:\/\/ftp.br.debian.org\/debian squeeze-proposed-updates main contrib non-free\r\n\r\n#REPOSITORIO BACKPORT\r\n#deb http:\/\/ftp.br.debian.org\/debian-backports\/ squeeze-backports main contrib non-free\r\n#deb-src http:\/\/ftp.br.debian.org\/debian-backports\/ squeeze-backports main contrib non-free\r\n\r\n# REPOSIT\u00c3\u0192\u00e2\u20ac\u0153RIO BACKPORT \r\n#deb http:\/\/www.backports.org\/debian squeeze-backports main contrib non-free\r\n#deb-src http:\/\/www.backports.org\/debian squeeze-backports main contrib non-free\r\n\r\n# PLUGINS MULTIMIDIA \r\n#deb http:\/\/ftp.br.debian.org\/debian-multimedia\/ squeeze main\r\n#deb http:\/\/www.debian-multimedia.org squeeze main\r\n\r\n# PHP5 BACKPORT \r\n#deb http:\/\/packages.dotdeb.org squeeze all\r\n#deb-src http:\/\/packages.dotdeb.org squeeze all\r\n\r\n# POSTFIX COM PATCH PARA COTAS. \r\n#deb http:\/\/debian.home-dn.net\/squeeze postfix-vda\/\r\n#deb-src http:\/\/debian.home-dn.net\/squeeze postfix-vda\/\r\nEOF\r\n\r\n# ATUALIZANDO OS REPOSIT\u00d3RIOS\r\n${APTITUDE} -y update || { echo \"${RED} FALHA AO ATUALIZAR OS REPOSITORIOS ${CLOSE} \"; exit 1; }\r\n\r\n# ATUALIZANDO AS CHAVES DE REPOSIT\u00d3RIOS (KEYRINGS) \r\n${APTITUDE} -y install debian-archive-keyring || { echo \"${RED} ERRO NO NOME DOS PACOTES\"; exit 1; }\r\n${GPG} --keyserver pgp.uni-mainz.de --recv-keys 1F41B907 || { echo \"${RED} ERRO NA IMPORTA\u00c7\u00c3O DAS CHAVES ${CLOSE}\"; exit 1; }\r\n#${GPG} --keyserver pgpkeys.mit.edu --recv-keys 1F41B907 || { echo \"${RED} ERRO NA IMPORTA\u00c7\u00c3O DAS CHAVES ${CLOSE}\"; exit 1; }\r\n${GPG} --keyserver pgp.uni-mainz.de --recv-key A2098A6E || { echo \"${RED} ERRO NA IMPORTA\u00c7\u00c3O DAS CHAVES ${CLOSE}\"; exit 1; }\r\n#${GPG} --keyserver pgpkeys.mit.edu --recv-key A2098A6E || { echo \"${RED} ERRO NA IMPORTA\u00c7\u00c3O DAS CHAVES ${CLOSE}\"; exit 1; }\r\n${APT_KEY} add ~root\/.gnupg\/pubring.gpg \r\n\r\n### MUDAR O DEBCONF PARA CRITICAL, PARA QUE NAO SEJAM FEITAS PERGUNTAS DESNECESSARIAS ###\r\nexport DEBIAN_PRIORITY=critical \r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\n# INSTALANDO PACOTES ALGUNS PACOTES \r\n${APTITUDE} install ${PACOTES_A_INSTALAR} -y\r\n${APTITUDE} install ${FERRAMENTAS} -y\r\n\r\n### VOLTANDO O DEBCONF AO SEU PADRAO ###\r\nunset DEBIAN_PRIORITY\r\nunset DEBIAN_FRONTEND\r\n\r\n# ATUALIZANDO O SISTEMA \r\n${APTITUDE} -y dist-upgrade || { echo \"${RED} ERRO N\u00c3O FOI POSS\u00cdVEL ATUALIZAR O SISTEMA ${CLOSE}\"; exit 1; }\r\n\r\n# HABILITA A syntax no vim\r\n${WGET} -c http:\/\/www.douglas.wiki.br\/Downloads\/scripts\/.vimrc -O \/root\/.vimrc\r\n\r\n#CONVERTE O ARQUIVO PARA O FORMATO UNIX\r\nDOS2UNIX=$(which dos2unix)\r\n${DOS2UNIX} \/root\/.vimrc\r\n\r\n# LIMPANDO O TERMINAL NO LOGOFF \r\necho \"clear\" &gt; .bash_logout\r\n\r\n# AJUSTANDO O BASHRC\r\n${CAT} &lt;&lt; EOF &gt; \/root\/.bashrc\r\n#VARIAVEIS PARA O SHELL DO ROOT\r\nalias ls='ls --color=auto'\r\nalias ll='ls -l'\r\nalias l='ls -lA'\r\nalias df='df -Th'\r\nalias grep='grep --color'\r\nalias egrep='egrep --color'\r\nexport EDITOR=vim\r\nexport PS1='\\[\\033[01;31m\\][\\[\\033[01;37m\\]\\t\\[\\033[01;31m\\]] \\[\\033[01;32m\\]\\u\\[\\033[01;31m\\]@\\[\\033[01;32m\\]\\h \\[\\033[01;31m\\][\\[\\033[01;33m\\]\\w\\[\\033[01;31m\\]] \\[\\033[01;37m\\]# \\[\\033[00m\\]'\r\nEOF\r\n\r\n# AJUSTANDO O BASHRC\r\n${CAT} &lt;&lt; EOF &gt; \/etc\/skel\/.bashrc\r\n#VARIAVEIS PARA O SHELL DO ROOT\r\nalias ls='ls --color=auto'\r\nalias ll='ls -l'\r\nalias l='ls -lA'\r\nalias df='df -Th'\r\nalias grep='grep --color'\r\nalias egrep='egrep --color'\r\nexport EDITOR=vim\r\nexport PS1='\\[\\033[01;31m\\][\\[\\033[01;37m\\]\\t\\[\\033[01;31m\\]] \\[\\033[01;32m\\]\\u\\[\\033[01;31m\\]@\\[\\033[01;32m\\]\\h \\[\\033[01;31m\\][\\[\\033[01;33m\\]\\w\\[\\033[01;31m\\]] \\[\\033[01;37m\\]$ \\[\\033[00m\\]'\r\nEOF\r\n\r\n${CP} \/root\/.bashrc \/root\/.bashrc.old\r\n\r\n#ACERTANDO ERRO NA INICIALIZA\u00c7\u00c3O DA MAQUINA\r\necho \"blacklist pcspkr\" &gt;&gt; \/etc\/modprobe.d\/blacklist.conf\r\n\r\n#ACERTANDO A LOCALIZA\u00c7\u00c3O\r\n${SED} -i \"s\/# pt_BR.UTF-8 UTF-8\/pt_BR.UTF-8 UTF-8\/g\" \/etc\/locale.gen\r\n${SED} -i \"s\/# pt_BR ISO-8859-1\/pt_BR ISO-8859-1\/g\" \/etc\/locale.gen\r\n\r\n${LOCALE_GEN}\r\n\r\n${CP} \/etc\/default\/locale \/etc\/default\/locale.bkp\r\n\r\n${CAT} &lt;&lt; EOF &gt; \/etc\/default\/locale\r\nLANG=\"pt_BR.UTF-8\"\r\nLANGUAGE=\"pt_BR:pt:en\"\r\nLC_CTYPE=\"pt_BR.UTF-8\"\r\nLC_NUMERIC=\"pt_BR.UTF-8\"\r\nLC_TIME=\"pt_BR.UTF-8\"\r\nLC_COLLATE=\"pt_BR.UTF-8\"\r\nLC_MONETARY=\"pt_BR.UTF-8\"\r\nLC_MESSAGES=\"pt_BR.UTF-8\"\r\nLC_PAPER=\"pt_BR.UTF-8\"\r\nLC_NAME=\"pt_BR.UTF-8\"\r\nLC_ADDRESS=\"pt_BR.UTF-8\"\r\nLC_TELEPHONE=\"pt_BR.UTF-8\"\r\nLC_MEASUREMENT=\"pt_BR.UTF-8\"\r\nLC_IDENTIFICATION=\"pt_BR.UTF-8\"\r\nLC_ALL=\r\nEOF\r\n\r\n# AJUSTANDO O CRONTAB \r\nCRON=\/tmp\/cron\r\n\r\n# TAREFAS AGENDADAS NO CRON\r\n${CAT} &lt;&lt; EOF &gt; ${CRON}\r\n# Minuto Hora Dia M\u00eas Dia_da_Semana Usu\u00e1rio Comando\r\n#\r\n# Minuto - Defini\u00e7\u00e3o dos minutos da execu\u00e7\u00e3o (0-59)\r\n# Hora - Defini\u00e7\u00e3o da hora da execu\u00e7\u00e3o formato 24 horas (0-23)\r\n# Dia - Defini\u00e7\u00e3o do dia do m\u00eas da execu\u00e7\u00e3o (1-31)\r\n# M\u00eas - Defini\u00e7\u00e3o do m\u00eas da execu\u00e7\u00e3o (1-12)\r\n# Dia_da_semana - Dia da semana. (0-7; obs.: 0 e 7 referem-se ao domingo).\r\n# Usu\u00e1rio - Defini\u00e7\u00e3o do usu\u00e1rio respons\u00e1vel pela execu\u00e7\u00e3o do comando.\r\n# Comando - Comando que ser\u00e1 executado conforme o tempo especificado.\r\n# Ex: Agendar tarefa a cada 8 horas: * *\/8 * * * usuario \/dir\/tarefa\r\n#\r\n0 *\/8      *       *       *       \/usr\/bin\/aptitude update\r\n0 *\/6      *       *       *       \/usr\/sbin\/ntpdate -u ntp.usp.br\r\n0 *\/12     *       *       *       \/usr\/bin\/updatedb\r\nEOF\r\n\r\n# REMOVE O CRONTAB\r\n${CRONTAB} -r\r\n\r\n# AGENDAR UM NOVO CRONTAB\r\n${CRONTAB} ${CRON}\r\n\r\n# ELIMINAR O ARQUIVO TEMPORARIO DO CRONTAB\r\n${RM} -rf ${CRON}\r\n\r\n#Baixando a ultima vers\u00c3\u0192\u00c2\u00a3o dos firmwares do kernel\r\nGIT=$(which git)\r\n${CD} \/usr\/src\r\n${GIT} clone git:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/firmware\/linux-firmware.git firmware\r\n${CP} -Rfa firmware\/* \/lib\/firmware\/\r\n\r\n#MUDANDO O SHELL DO ROOT\r\n${CHSH} -s \/bin\/zsh\r\n${WGET} -c www.douglas.wiki.br\/Downloads\/scripts\/zshrc -O \/root\/.zshrc\r\n${DOS2UNIX} \/root\/.zshrc\r\n${CP} \/root\/.zshrc \/etc\/skel\r\n\r\n# REMOVENDO PACOTES DESNECESSARIOS ###\r\n#${APTGET} remove ${PACOTES_A_REMOVER} --purge -y\r\n\r\n# VALIDA SE EXISTE O DIRET\u00d3RIO DE LOGS\r\nif test \"${GERA_LOG}\" = 1\r\nthen\r\n\tif [ ! -d ${DIR_LOGS} ]; then\r\n\t\t${MKDIR} -p  ${DIR_LOGS}\r\n\tfi\r\n\r\n# GERA\u00c7\u00c3O O DO ARQUIVO DE LOG\r\necho \r\necho \"LOGS DA INSTALA\u00c7\u00c3O NA MAQUINA $(hostname -f)\" &gt;&gt; ${LOGS}\r\necho \"DATA E HORA DO IN\u00cd\u008dCIO DA INSTALA\u00c7\u00c3O: ${INICIO}\" &gt;&gt; ${LOGS}\r\necho \"NOME DO ARQUIVO DE BACKUP DO APT: ${APTBKP}\" &gt;&gt; ${LOGS}\r\necho \"PACOTES QUE FORAM INSTALADOS ${PACOTES_A_INSTALAR}\" &gt;&gt; ${LOGS}\r\necho \"FERRAMENTAS QUE FORAM INSTALADAS ${FERRMENTAS}\" &gt;&gt; ${LOGS}\r\necho \"PACOTES QUE FORAM REMOVIDOS ${PACOTES_A_REMOVER}\" &gt;&gt; ${LOGS} \r\necho \"DATA E HORA DO FINAL DA INSTALA\u00c7\u00c3O: $(date)\" &gt;&gt; ${LOGS}\r\necho \r\n\r\nfi\r\n\r\n# REINICIALIZAR A MAQUINA\r\n${REBOOT}\r\n}\r\n\r\nGERA_LOG=0 #DEVE SER GERADO LOGS DAS OPERACOES\r\nexport GERA_LOG\r\n\r\nMSG_USO=\"\r\nUso: $(basename \"$0\") [OP\u00c7\u00d5ES]\r\n\r\nOP\u00c7\u00d5ES:\r\n-i, --install\tEfetua a instala\u00e7\u00e3o dos pacotes e a configurac\u00e3o do sistema.\r\n-l, --log\tEfetua a gera\u00e7\u00e3o de logs dos processos\r\n-h, --help\tMostra esta tela de ajuda e sai\r\n-V, --version\tMostra a vers\u00e3o do programa e sai\r\n\r\nEX: .\/$(basename \"$0\") -l -i Habilita a op\u00e7\u00e3o de gera\u00e7\u00e3o de log e efetua a instala\u00e7\u00e3o\r\n\"\r\n\r\n# TRATAMENTO DAS OP\u00c7\u00d5ES DA LINHA DE COMANDO\r\nif [ -z \"$1\" ]; then\r\necho \"${RED} ${MSG_USO} ${CLOSE}\"\r\nexit 0\r\nfi\r\n\r\n# TRATAMENTO DAS OP\u00c7\u00d5ES DE LINHA DE COMANDO\r\nwhile test -n \"$1\"\r\ndo\r\ncase \"$1\" in\r\n\t-h | --help)\r\n\t\techo \"${RED}${MSG_USO}${CLOSE}\"\r\n\t\texit 0 #Programa terminou de forma normal\r\n\t;;\r\n\r\n\t-V | --version)\r\n\t\techo -n $(basename \"$0\")\r\n\t\t#Extrai a vers\u00c3\u0192\u00c2\u00a3o diretamente dos cabe\u00c3\u0192\u00c2\u00a7alhos do programa\r\n\t\tVER=$(grep '^# Vers\u00e3o ' \"$0\" | tail -1 | cut -d ':' -f 1 | tr -d \\#)\r\n\t\techo \"${GREEN} ${VER} ${CLOSE}\"\r\n\t\texit 0\r\n\t;;\r\n\r\n\t-l | --log)\r\n\t\tGERA_LOG=1\r\n\t\texport GERA_LOG\r\n\t;;\t\r\n\r\n\t-i | --install)\r\n\t\tINSTALL\r\n\t;;\r\n\r\n\t*)\r\n\t\tif test -n \"$1\"\r\n\t\tthen\r\n\t\techo \"Op\u00e7\u00e3o inv\u00e1lida: $1\"\r\n\t\texit 1 #Programa terminou de forma anormal por causa de um erro.\r\n\t\tfi\r\n\t;;\r\nesac\r\n#FILA $1 JA PROCESSADA, A FILA DEVE ANDAR\r\nshift \r\ndone<\/pre>\n<\/dd>\n<\/dl>\n<\/div>\n<p>#############################################################################################################<\/p>\n<p>Agora vamos mandar atualizar os reposit\u00f3rios e mandar fazer um upgrade do sistema nos servidores<\/p>\n<pre>aptitude update &amp;&amp; aptitude dist-upgrade -y<\/pre>\n<p>Agora no servidor Munin vamos instalar o Apache que \u00e9 por onde vamos visualizar os nossos relat\u00f3rios e vamos instalar tamb\u00e9m o pr\u00f3prio munin<\/p>\n<pre>apt-get install apache2 munin munin-node munin-plugins-extra -y<\/pre>\n<p>Agora vamos ajustar a configura\u00e7\u00e3o do munin server vamos mudar o nome dele de localhost.localdomain para debian e vamos adicionar o cliente.<\/p>\n<pre>vim \/etc\/munin\/munin.conf\r\n[...]\r\n#Agora vamos trocar o localhost.localdomain por debian igual abaixo\r\n[munin]\r\n     address 127.0.0.1\r\n     use_node_name yes\r\n\r\n#Agora vamos adicionar as linhas abaixo referente ao cliente\r\n[client]\r\n     address 192.168.1.31\r\n     use_node_name yes<\/pre>\n<p>Agora vamos fazer o munin reconhecer todos os plugins que ele pode utilizar<\/p>\n<p>Vamos acessar o diret\u00f3rio dos plugins do munin<\/p>\n<pre>cd \/usr\/share\/munin\/plugins<\/pre>\n<p>Agora vamos mandar rodar o script que reconhece os servi\u00e7os que ele vai poder monitorar<\/p>\n<pre>munin-node-configure --suggest<\/pre>\n<p>Agora vamos fazer um ajuste no arquivo de configura\u00e7\u00e3o das interfaces de rede<\/p>\n<pre>sed -i '\/$MUNIN_LIBDIR\/{h;s\/.*\/MUNIN_LIBDIR=\\\/usr\\\/share\\\/munin\/;p;x;}' \/usr\/share\/munin\/plugins\/if_<\/pre>\n<p>Agora vamos mandar rodar o script que vai encontrar as interfaces de redes que v\u00e3o ser monitoradas<\/p>\n<pre>.\/if_ suggest<\/pre>\n<p>Agora vamos fazer um ajuste no arquivo de configura\u00e7\u00e3o do apache<\/p>\n<pre>sed -i 's\/Allow from localhost *\/#Allow from localhost \/g' \/etc\/apache2\/conf.d\/munin\r\nsed -i '\/#Allow from\/{h;s\/.*\/        Allow from all\/;p;x;}' \/etc\/apache2\/conf.d\/munin<\/pre>\n<p>Agora vamos mandar reiniciar o apache e o munin<\/p>\n<pre>\/etc\/init.d\/apache2 restart\r\n\/etc\/init.d\/munin-node restart<\/pre>\n<\/div>\n<h1 id=\"configuracao_do_cliente\">Configura\u00e7\u00e3o do Cliente<\/h1>\n<div>\n<p>Agora vamos instalar os pacotes no cliente.<\/p>\n<pre>apt-get install munin munin-node munin-plugins-extra -y<\/pre>\n<p>Agora vamos adicionar o endere\u00e7o ip do servidor para poder obter os dados do servidor<\/p>\n<pre>sed -i '\/allow ^127\\\\.\/{p;s\/.*\/allow ^192\\\\.168\\\\.1\\\\.30$\/;}' \/etc\/munin\/munin-node.conf<\/pre>\n<p>Agora vamos fazer o munin reconhecer todos os plugins que ele pode utilizar<\/p>\n<p>Vamos acessar o diret\u00f3rio dos plugins do munin<\/p>\n<pre>cd \/usr\/share\/munin\/plugins<\/pre>\n<p>Agora vamos mandar rodar o script que reconhece os servi\u00e7os que ele vai poder monitorar<\/p>\n<pre>munin-node-configure --suggest<\/pre>\n<p>Agora vamos fazer um ajuste no arquivo de configura\u00e7\u00e3o das interfaces de rede<\/p>\n<pre>sed -i '\/$MUNIN_LIBDIR\/{h;s\/.*\/MUNIN_LIBDIR=\\\/usr\\\/share\\\/munin\/;p;x;}' \/usr\/share\/munin\/plugins\/if_<\/pre>\n<p>Agora vamos mandar rodar o script que vai encontrar as interfaces de redes que v\u00e3o ser monitoradas<\/p>\n<pre>.\/if_ suggest<\/pre>\n<p>Agora vamos mandar reiniciar o munin<\/p>\n<pre>\/etc\/init.d\/munin-node restart<\/pre>\n<p>Agora vamos mandar reiniciar o munin do servidor<\/p>\n<pre>\/etc\/init.d\/munin-node restart<\/pre>\n<p>Agora j\u00e1 podemos acessar o munin em <a title=\"http:\/\/192.168.1.30\/munin\" href=\"http:\/\/192.168.1.30\/munin\" rel=\"nofollow\">http:\/\/192.168.1.30\/munin<\/a> os relat\u00f3rio demoram em m\u00e9dia uns 5 minutos para serem gerados os primeiros.<\/p>\n<\/div>\n<h1 id=\"configuracao_do_virtualhost\">Configura\u00e7\u00e3o do VirtualHost<\/h1>\n<div>\n<p>Agora em nosso servidor vamos configurar um virtualhost para o Munin<\/p>\n<pre>vim \/etc\/apache2\/sites-available\/munin\r\n&lt;VirtualHost *:80&gt;\r\n ServerName munin.douglas.wiki.br\r\n ServerAlias monitor.douglas.wiki.br\r\n DocumentRoot \"\/var\/cache\/munin\/www\"\r\n\r\n #Controle de acesso ao munin\r\n &lt;Directory \"\/var\/cache\/munin\/www\"&gt;\r\n Options -Indexes FollowSymLinks MultiViews\r\n AllowOverride All\r\n Order allow,deny\r\n allow from all\r\n\r\n #Autentica\u00e7\u00e3o do munin\r\n AuthUserFile \/etc\/munin\/munin-htpasswd\r\n AuthName \"Munin\"\r\n AuthType Basic\r\n require valid-user\r\n &lt;\/Directory&gt;\r\n\r\n &lt;IfModule mod_expires.c&gt;\r\n     ExpiresActive On\r\n     ExpiresDefault M310\r\n &lt;\/IfModule&gt;\r\n\r\n #Configura\u00e7\u00e3o dos logs do apache\r\n ErrorLog ${APACHE_LOG_DIR}\/munin.douglas.wiki.br-error.log\r\n CustomLog ${APACHE_LOG_DIR}\/munin.douglas.wiki.br-access.log common\r\n\r\n #Retirando a assinatura do Apache\r\n ServerSignature Off\r\n\r\n IndexIgnore .??* *~ *# README RCS CVS *,v *,t *\r\n\r\n # Possible values include: debug, info, notice, info, error, crit,\r\n # alert, emerg.\r\n LogLevel info\r\n&lt;\/VirtualHost&gt;<\/pre>\n<p>Agora vamos criar um usu\u00e1rio e uma senha para acesso ao munin, aqui eu vou criar o usu\u00e1rio chamado munin<\/p>\n<pre>htpasswd -s -c \/etc\/munin\/munin-htpasswd munin\r\nNew password: \r\nRe-type new password: \r\nAdding password for user munin<\/pre>\n<p>Agora vamos remover os sites default do apache<\/p>\n<pre>a2dissite default\r\na2dissite default-ssl<\/pre>\n<p>Agora vamos ativar o virtualhost do munin<\/p>\n<pre>a2ensite munin<\/pre>\n<p>Agora vamos reiniciar o apache<\/p>\n<pre>\/etc\/init.d\/apache2 restart<\/pre>\n<p>Agora \u00e9 s\u00f3 acessar <a title=\"http:\/\/munin.douglas.wiki.br\" href=\"http:\/\/munin.douglas.wiki.br\" rel=\"nofollow\">http:\/\/munin.viazap.wiki.br<\/a> ou <a title=\"http:\/\/ip_servidor\" href=\"http:\/\/ip_servidor\" rel=\"nofollow\">http:\/\/ip_servidor<\/a>, aqui agora vamos precisar informar o usu\u00e1rio munin e a senha que foi definida com htpasswd -s -c<\/p>\n<p>Agora para adicionar mais clientes precisamos somente adicionar no servidor uma nova entrada para o cliente e no cliente adicionar o ip do servidor como j\u00e1 fizemos acima e mandar reiniciar o munin do servidor e do cliente.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Munin \u00e9 uma ferramenta de monitoramento de rede recurso que pode ajudar a analisar as tend\u00eancias de recursos e \u201cO que aconteceu para matar nosso desempenho?\u201d problemas. Ele \u00e9 projetado para ser plug and play. Uma instala\u00e7\u00e3o padr\u00e3o fornece uma s\u00e9rie de gr\u00e1ficos com quase nenhum trabalho. Origem do nome Munin: Na mitologia n\u00f3rdica, Huginn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,42,51,68],"tags":[249,252,251,179,250],"class_list":["post-439","post","type-post","status-publish","format-standard","hentry","category-viazap","category-leitura-recomendada","category-linux-linuxrs","category-redes-2","tag-configuracao-do-munin","tag-gerenciamento-de-redes-com-munin","tag-instalando-e-configurando-munin","tag-monitoramento","tag-munin"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=439"}],"version-history":[{"count":3,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/439\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/439\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}