Criando facilmente um servidor APACHE2 + PHP5 (ou PHP4) + SNMP + MRTG

Neste tutorial ensinarei como montar um servidor WEB com o APACHE2, PHP5, SNMP e o MRTG. Me esforcei muito reunindo todas essas informações na WEB, pois na parte de configuração do SNMP e do MRTG não vi nenhum tutorial que realmente ensinasse a configurá-los desde o começo e de maneira clara.

[ Hits: 61.835 ]

Por: Eduardo em 11/08/2007


Primeiras instalações (VIM e GCC)



Partiremos do princípio em que você acabou de instalar em seu computador um sistema operacional Linux. Esta é uma configuração básica porém, funcional.

Vamos começar!

Abra uma "console" ou para outros "terminal" e vire "root" ("root" é o administrador da máquina).

Para virar root digite:

$ su -

E depois digite a sua senha.

Agora temos que instalar um compilador em seu computador, para fazer isso usaremos o "yum" (pode-se usar também o "apt-get"). Digite:

# yum install gcc

Esse procedimento demora um pouco. Agora instalaremos um editor de texto, supondo que você ainda não tem um. Digite:

# yum install vim

Esse procedimento também demora um pouco.

Feito isso vamos agora montar nosso servidor!

Passe para a próxima pagina.

    Próxima página

Páginas do artigo
   1. Primeiras instalações (VIM e GCC)
   2. Instalando e configurando o Apache2 e o PHP5 (ou PHP4)
   3. Instalando e configurando o SNMP e o MRTG
Outros artigos deste autor

Instalando e configurando o PostgreSQL

Leitura recomendada

Distribuição híbrida

Arquivos de configuração de rede - Parte I - /etc/hosts

Debian Squeeze com RAID 1

HylaFAX + AvantFAX: Monte seu próprio servidor de fax

Instalando um servidor LAMP no Linux Ubuntu 7.10

  
Comentários
[1] Comentário enviado por diekn em 12/08/2007 - 09:37h

Cara parabens,pelo seu artigo,e viva o linux,pra ti.

[2] Comentário enviado por balani em 13/08/2007 - 11:18h

Muito bom o seu artigo, mais qual a versão exata do apache que vc usou, pois a versão 2.2.4 o arquivo de configuração é muito diferente desse que vc usou.

[3] Comentário enviado por shin_ragnarok em 13/08/2007 - 11:49h

olá.

o arquivo ping.sh não consegui achar. Fiz a instalçao via apt. Tem como vc me passar ou postar?

muito obrigado.

[4] Comentário enviado por duduzinhu em 13/08/2007 - 13:43h

Balani eu usei a versão 2.2.4, fiz algumas alterações no início do httpd.conf se é isso que está diferente,
essas alterações não são muito importantes, coloquei apenas para organizar melhor. O conteúdo original do httpd.conf começa com a seguinte frase:

This is the main Apache HTTP server configuration file.

Espero ter esclarecido sua dúvida, qualquer coisa comente novamente. =)

Shin_ragnarok acabei me esquecendo de colocar o conteudo do arquivo ping.sh então la vai:

WorkDir: /usr/local/apache2/htdocs/mrtg
Title[localhost.ping]: Round Trip Time
PageTop[localhost.ping]: <H1>Round Trip Time</H1>
Target[localhost.ping]: `/usr/local/mrtg-2/ping.sh`
MaxBytes[localhost.ping]: 2000
Options[localhost.ping]: growright,unknaszero,nopercent,gauge
LegendI[localhost.ping]: Pkt loss %
LegendO[localhost.ping]: Avg RTT
YLegend[localhost.ping]: RTT (ms)

Lembre-se que o diretório que deve ficar o ping.sh é /usr/local/mrtg-2 junto com os demais arquivos de configuração.
Qualquer outros erros e dúvidas comentem e me desculpe por ter demorado para responder =]

[5] Comentário enviado por shin_ragnarok em 13/08/2007 - 14:24h

oi.


a parte do ping ta me retornando isso:

/etc/mrtg/ping.sh: line 1: WorkDir:: command not found
/etc/mrtg/ping.sh: line 2: Title[localhost.ping]:: command not found
/etc/mrtg/ping.sh: line 3: syntax error near unexpected token `newline'
/etc/mrtg/ping.sh: line 3: `PageTop[localhost.ping]: <H1>Round Trip Time</H1>'
2007-08-13 14:11:51: WARNING: Could not get any data from external command '/etc/mrtg/ping.sh'
Maybe the external command did not even start. (Procura ilegal)

2007-08-13 14:11:51: WARNING: Problem with External get '/etc/mrtg/ping.sh':
Expected a Number for 'in' but nothing'

2007-08-13 14:11:51: WARNING: Problem with External get '/etc/mrtg/ping.sh':
Expected a Number for 'out' but nothing'

2007-08-13 14:11:51: ERROR: Target[localhost.ping][_IN_] ' $target->[0]{$mode} ' did not eval into defined data
2007-08-13 14:11:51: ERROR: Target[localhost.ping][_OUT_] ' $target->[0]{$mode} ' did not eval into defined data


como eu disse to usando tudo via apt. Então coloquei tudo no /etc/mrtg

todos vão certinho, menos o ping.sh. tem alguma coisa em específico pra ele?


valew.

[6] Comentário enviado por duduzinhu em 13/08/2007 - 16:01h

Bem, vamos fazer o seguinte então, delete o arquivo ping.ok dentro da pasta do mrtg, delete todo o conteudo do ping.sh e adicione o seguinte conteúdo:

#!/bin/sh
PING="/bin/ping"
# localhost, for example
ADDR="localhost.localdomain"
DATA=`$PING -c10 -s500 $ADDR -q `
LOSS=`echo $DATA | awk '{print $18 }' | tr -d %`
echo $LOSS
if [ $LOSS = 100 ];
then
echo 0
else
echo $DATA | awk -F/ '{print $5 }'

fi



Não se esqueça de colocar o caminho correto para o ping.sh no ping.cfg
Delete todos os gráficos do ping se é que ele criou algum, reinicie o snmp e o mrtg, certifique-se de que o nome do seu host é realmente "localhost". Aconselho que rode o comando para fazer o traffic.cfg e o mrtg.cfg novamente. Se mais algum erro acontecer comente =]

Ah! Quase me esqueço, dê um chmod 755 no
ping.sh, o comando ficaria:

chmod 755 /usr/local/mrtg-2/ping.sh

no seu caso como vc está usando o apt-get ficaria:

chmod 755 /etc/mrtg/ping.sh

Recomendo também que faça isso nos arquivos dentro da pasta do mrtg:

chmod 755 /usr/local/mrtg-2/*

ou no seu caso:

chmod 755 /etc/mrtg/*

[7] Comentário enviado por shin_ragnarok em 13/08/2007 - 17:31h

valew.. agora sim... vc tinha passado a mesma configurção do .cfg pro .sh ne?

agora ta funfando. valew. ótimo artigo.

[8] Comentário enviado por duduzinhu em 13/08/2007 - 18:37h

Realmente, depois que me dei conta, mas fico feliz por ter funcinado
=D

[9] Comentário enviado por y2h4ck em 14/08/2007 - 13:31h

Bom queridão,
configuração do SNMP é praticamente auto-explicativa e o MRTG tem um readme no man muito completo.

Quando você se refere "documentação que realmente explique", vc deveria colocar :"documentação que eu tivesse entendido".


Abraços.

[10] Comentário enviado por duduzinhu em 14/08/2007 - 14:35h

Então y2h4ck creio que você não gostou muito do meu artigo, e também só faltou me chamar de burro, mas criei o artigo pensando que até mesmo uma pessoa que nunca ouviu falar de linux pudesse intender. Pois creio que passam por aqui pessoas com diversos níveis de instrução então pensei que fosse melhor fazer um artigo bem explicado e realmente desde o começo como poucos artigos sobre snmp e mrtg, mas enfim, se fosse pra escrever um artigo para um Analista de Segurança da Informação sobre snmp e mrtg creio que este artigo iria ficar vazio. Eu penso que se você quisesse ganhar mais reputação que aliás você não tem pouca, você deveria fazer artigos e não inventar defeitos nos artigos dos outros muito menos chamar os outros de "burro" mesmo que isso seja indiretamente. E se o artigo ficou muito básico pra você que creio eu que deve realmente ter ficado lembre-se que eu disse que se tratava de uma configuração básica porém funcional, se é que você chegou a ler o artigo. Faça um artigo sobre snmp e mrtg para que eu possa aprender mais se é isso que deseja. E mais, se somente você até agora falou que: "Quando você se refere "documentação que realmente explique", vc deveria colocar :"documentação que eu tivesse entendido"." E mais nimguem falou que o artigo é pra "inciantes", você mesmo que indiretamente está chamando as pessoas que leram esse artigo de iniciantes. E quando você diz que o mrtg tem um readme no man muito bom, lembre-se que este artigo foi feito para pessoas com todos os niveis de instrução, ou seja, uma pessoa que tem pouco conhecimento de inglês não consiguirá ler um readme sobre mrtg. Bem era só isso que tinha a declarar, espero que agora fique claro pra você o que eu quis dizer com "Um artigo que realmente explicasse de maneira clara"

Abraços
Eduardo

[11] Comentário enviado por robersonfox em 15/08/2007 - 01:04h

Opa, Caro amigo, tenho uma dúvida crucial, quando instalo o apache e o php eles não identificam de cara as variáveis, ex:
http://www.genovaengine.com/index.php?p=sisgrafica
no meu servidor isto funciona, o site é redirecionado para a página do sis-grafica, mas aqui no meu notebook não, saberia me dizer o porque?

[12] Comentário enviado por duduzinhu em 15/08/2007 - 08:30h

Caro Roberson, gostaria que se possível reformulasse sua pergunta pois não consegui intende-la, e desculpe pela demora, é que você postou num horário não muito acessível =D

[13] Comentário enviado por linuxtb em 16/08/2007 - 01:16h

Meu amigo Eduardo,

Parei neste erro e agora não consigo passar disso. Sabe o que pode ser?
Segui todos os passos desde o ínicio.

Não condigo ver onde está o problema e se puder me ajudar fico muito grato.

A propósito , parabéns pelo artigo, pois há algum tempo procuro um artigo assim sobre o MRTG visto que os demais que vi por aí são muito complexos.

____________________________________________________________


** Ooops, one of many bad things happened:

a) You don't have the GD library installed.
Get it from http://www.boutell.com, compile it and
use either --with-gd-lib=DIR and --with-gd-inc=DIR to specify
its location. You might also have to use --with-z-inc,
--with-z-lib and --with-png-inc, --with-png-lib for gd
versions 1.6 and higher. Check config.log for more
information on the problem.

b) You have the GD library installed, but not the gd.h
header file. Download the source (see above) and use
--with-gd-inc=DIR to specify where the file can be found.

c) You have the library and the header file installed, but
you also have a shared GD library in the same directory.
Remove the shared library files and/or links (e.g.
libgd.so.2.0.0, libgd.so and libgd.so.2). This is especially
likely if you're using a recent (post 1.8.4) version of GD
and didn't configure it with --disable-shared.

d) You have gd library installed and also it's headers, but you are
missing libpng (and headers) or freetype (and headers)
(mrtg does not use freetype, but if your copy of gd is precompiled
against it, you have to install it ...

[14] Comentário enviado por duduzinhu em 16/08/2007 - 12:39h

Caro Jean, este problema está acontecendo porque você não tem a biblioteca GD (GD library)
instalada no seu computador, ou você não informou o PATH (caminho) correto na hora da instalação. Se você não tem a biblioteca GD instalada siga os passos do artigo para instalação. Se você já instalou-a em /usr/local/gd e colocou o configure do mrtg como foi escrito no artigo este erro não deveria acontecer. Se vocÊ usou o "yum" ou o "apt-get" para instalar a biblioteca GD, creio que em vez de /usr/local/gd/include e /usr/local/gd/lib, os respectivos caminhos seriam /usr/include e /usr/lib. Qualquer dúvida comente novamente e não deixe de avisar se deu certo. Não posso colocar mais detalhes sobre a instalação agora pois tenho que resolver alguns problemas técnicos no meu PC =D .

Abraços
Eduardo

[15] Comentário enviado por duduzinhu em 10/09/2007 - 15:15h

Também pode ser instalada a última versão do SNMP pois a configuração não muda, é que eu ainda não havia testado x)
A última versão do SNMP até agora é a 5.4.1

[16] Comentário enviado por thon_ba em 25/09/2007 - 17:59h

kra isso sim é um artigo o resto é sacanagem....valeu mesmo brow, eu nem estou precisando mas vou fazer só pra valorizar ainda mais o artigo.

[17] Comentário enviado por duduzinhu em 26/09/2007 - 13:24h

Fico muito feliz por ter gostado =)

[18] Comentário enviado por thon_ba em 07/10/2007 - 01:22h

Brow preciso de ajuda aqui, segui o tutorial, porem não funfou, aparece esse erro qndo tento criar o index atraves do comando.

ERROR: CFG Error Unknown Option "sscpurawnice.0&sscpurawnice.0" on line 5 or above.
Check doc/reference.txt for Help

[19] Comentário enviado por duduzinhu em 08/10/2007 - 08:59h

Caro Thon

Esta linha está no cpu.cfg, mas ela é necessária. Certifique-se de que o seu cpu.cfg está correto.
Segue abaixo o meu cpu.vfg para você consultar

WorkDir: /usr/local/apache2/htdocs/mrtg
LoadMIBs: /usr/local/snmp/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[127.0.0.1.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1 + ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[127.0.0.1.cpu]: public@127.0.0.1
MaxBytes[127.0.0.1.cpu]: 100
Title[127.0.0.1.cpu]: CPU Load
PageTop[127.0.0.1.cpu]: <H1>Active CPU Load %</H1>
Unscaled[127.0.0.1.cpu]: ymwd
ShortLegend[127.0.0.1.cpu]: %
YLegend[127.0.0.1.cpu]: CPU Utilization
Legend1[127.0.0.1.cpu]: Active CPU in % (Load)
Legend2[127.0.0.1.cpu]:
Legend3[127.0.0.1.cpu]:
Legend4[127.0.0.1.cpu]:
LegendI[127.0.0.1.cpu]: Active
LegendO[127.0.0.1.cpu]:
Options[127.0.0.1.cpu]: growright,nopercent

Note que as linhas do cpu.cfg que coloquei acima que não começam com letra maiúscula são continuações da linha anterior. Recomendo que você cheque seus arquivos de configuração e se possível também instale a ultima versão do SNMP que é melhor do que a versão que eu usei neste artigo, as configurações bem como a instalação desse SNMP não mudam.
Veja que você precisa colocar o diretório correto das paginas html do mrtg (na 1ª linha) e o diretório correto da MIB do SNMP (na 2ª linha)
Veja também que eu alterei de "localhost" para "127.0.0.1"

Peço que se você não consiguir resolver o seu problema, mande seus arquivos de configuração para que eu possa checar e lhe enviar novamente.

Para me enviar os arquivos de configuração você pode compacta-los e colocar no rapidshare e depois só me informar o link para que eu possa baixá-los e analisá-los
Ou se preferir poste um comentário com todos eles.

Segue abaixo o link para download de uma versão mais atual do SNMP
http://sourceforge.net/project/downloading.php?group_id=12694&use_mirror=ufpr&filename=net-snmp-5.4....

Peço também queme diga se mais algum erro aconteceu ou se você conseguiu solucionar o seu problema

Fico no aguardo

Abraços
Eduardo

[20] Comentário enviado por c.rafael em 22/11/2007 - 11:34h

Pessoal, ...

estou com o seguinte problema quando mando executar o mrtg ele gera o erro abaixo:

[root@firewall mrtg]# ./mrtg.sh
SNMP Error:
no response received
SNMPv1_Session (remote host: "192.168.0.4" [192.168.0.4].161)
community: "public"
request ID: 622257764
PDU bufsize: 8000 bytes
timeout: 2s
retries: 5
backoff: 1)
at /usr/bin/../lib/mrtg2/SNMP_util.pm line 490
SNMPGET Problem for ifInOctets.2 ifOutOctets.2 sysUptime sysName on public@192.168.0.4::::::v4only
at /usr/bin/mrtg line 2150
2007-11-22 11:28:59: WARNING: skipping because at least the query for ifInOctets.2 on 192.168.0.4 did not succeed
2007-11-22 11:28:59: WARNING: no data for ifInOctets&ifOutOctets:public@192.168.0.4. Skipping further queries for Host 192.168.0.4 in this round.
SNMP Error:
no response received
SNMPv1_Session (remote host: "2xx.xx.xxx.x" [2x.xx.xxx.x].161)
community: "public"
request ID: 547401509
PDU bufsize: 8000 bytes
timeout: 2s
retries: 5
backoff: 1)
at /usr/bin/../lib/mrtg2/SNMP_util.pm line 490
SNMPGET Problem for ifInOctets.2 ifOutOctets.2 sysUptime sysName on public@2x.x.x.x::::::v4only
at /usr/bin/mrtg line 2150
2007-11-22 11:28:59: WARNING: skipping because at least the query for ifInOctets.2 on 2xx.xx.xxx.x did not succeed
2007-11-22 11:28:59: WARNING: no data for ifInOctets&ifOutOctets:public@2xx.xx.xxx.x. Skipping further queries for Host 201.15.147.6 in this round.
2007-11-22 11:29:19: ERROR: Target[192.168.0.4][_IN_] ' $target->[0]{$mode} ' did not eval into defined data
2007-11-22 11:29:19: ERROR: Target[192.168.0.4][_OUT_] ' $target->[0]{$mode} ' did not eval into defined data
2007-11-22 11:29:19: ERROR: Target[2xx.xx.xxx.x][_IN_] ' $target->[1]{$mode} ' did not eval into defined data
2007-11-22 11:29:19: ERROR: Target[2xx.xx.xxx.x][_OUT_] ' $target->[1]{$mode} ' did not eval into defined data


O meu mrtg.cfg está assim:

### Diretorios
WorkDir: /var/www/mrtg/work
Htmldir: /var/www/mrtg/html
Imagedir: /var/www/mrtg/image
Logdir: /var/log/mrtg/
ThreshDir: /var/www/mrtg/thresh

Interval: 5
Language: portuguese
RunAsDaemon: No


Target[192.168.0.4]: 2:public@192.168.0.4
SetEnv[192.168.0.4]: MRTG_INT_IP="192.168.1.0/24" MRTG_INT_DESCR="eth0"
MaxBytes[192.168.0.4]: 1250000
Title[192.168.0.4]: MRTG - Analise de trafego da server (firewall)
Options[192.168.0.4]:gauge,growright,nopercent,avgpeak

Target[2x.x.x.x]: 2:public@2x.x.x.x
SetEnv[2x.x.x.x]: MRTG_INT_IP="2x.x.x.x" MRTG_INT_DESCR="eth1"
MaxBytes[2x.x.x.x]: 1250000
Title[2x.x.x.x]: MRTG - Analise de trafego da server2 (internet)
Options[2x.x.x.x]:gauge,growright,nopercent,avgpeak

[21] Comentário enviado por neturnoxd em 10/09/2009 - 11:15h

ok men
bom bom bom ta neh...
mas eu fiz tudo e nao consigo fazer os graficos se atualizarem
tipo vejo os graficos mas ta em branco
qual eh o problema

flw



(nao coloquei acentos porque nao da =])

[22] Comentário enviado por neturnoxd em 10/09/2009 - 11:16h



[23] Comentário enviado por neturnoxd em 10/09/2009 - 11:27h

o0 que nao vai responder?
se vo nao responder o comentario [21]
eu vou mandar + 10 comentarios
mu haaaa [o.o"]

[24] Comentário enviado por c.rafael em 10/09/2009 - 11:34h

neturnoxd !!

Por padrão o MRTG atualiza os gráficos a cada 5 minutos, você pode colocar ele como daemon e aí informar de tempos em tempos para ele atualizar ou colocar no crontab .

Faz o teste das duas formas e espere por 1 hora, .. que provavelmente irá gerar gráficos.

[25] Comentário enviado por neturnoxd em 10/09/2009 - 18:17h

pois é
coloquei no crontab mas mesmo assim nao funfo
tipo os graficos aparecem certinho mais nao mostra nada.

[26] Comentário enviado por manoserpa em 07/04/2010 - 14:02h

Olá.

Eu estou configurando o Apache com PHP no Fedora e quando tento abrir a página PHP ele abre a janela de download, vc sabe o que pode ser?

Valeu.

[27] Comentário enviado por c.rafael em 07/04/2010 - 14:32h

A integraçã do Apeche e PHP ainda não está funcionando, você pode veridicar os seguintes itens:

1) Em "DirectoryIndex" Verifica se o index.php está incluido.
2) Verificar os seguintes itens se estão OK.
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps


Pode ser que não tenho no arquivo do apache essas linhas, mas terá um INCLUDE do modulo de php algo tipo:

Include diretorio/modulephp.conf

[28] Comentário enviado por manoserpa em 08/04/2010 - 11:06h

Bom dia.

Valeu Rafael, resolvido!

=D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts