Beruflich Dokumente
Kultur Dokumente
LICENCIA
FUNCIONAMIENTO
VENTAJAS
IMPACTOENELMERCADO
LENGUAJEUTILIZADO
SISTEMASOPERATIVOSSOPORTADOS
SERVIDORWEBVIRTUAL
VIRTUALHOSTS
MLTIPLESDOMINIOS
Creacindelsitioweb.
Redireccinlocal
ConfiguracindelVirtualHost
Reiniciarelservidor
MLTIPLESDIRECCIONES
Hostvirtualbasadoenpuertos
SERVIDORWEBCONRESTRICCIONESDEUSUARIOS
AutenticacinBsica
SERVIDORWEBCONBALANCEODECARGA
SERVIDORWEBCONSEGURIDADHTTPS
MONITOREODERECURSOSCONMUNIN
ESTRUCTURADEMUNIN
INSTALACINYCONFIGURACIN
INSTALACINDEPLUGINS
PRUEBASYRESULTADOS
ServidordeArchivosestticos.
SoporteSSL.
SoporteHostVirtuales.
Proxyinverso.
BalanceodeCarga.
ControlesdeAcceso.
ReescrituraURL.
AutentificacinmedianteDigest.
Soporteparalenguajesperl,python,php.
Modulosdeautentificacin.
LICENCIA
ApacheLicense
FUNCIONAMIENTO
Laspeticiones(requests)semandanatravsdecomandos:
Comando
Descripcin
GET
SolicitaelrecursoubicadoenlaURLespecificada
HEAD
SolicitaelencabezadodelrecursoubicadoenlaURLespecificada
POST
EnvadatosalprogramaubicadoenlaURLespecificada
PUT
EnvadatosalaURLespecificada
DELETE
BorraelrecursoubicadoenlaURLespecificada
Lasrespuestasenviadasalclientetienenuncodigoderespuesta:
Cdigo
Mensaje
Descripcin
10x
Mensajedeinformacin
Estoscdigosnoseutilizanenlaversin1.0delprotocolo
20x
xito
Estoscdigosindicanlacorrectaejecucindelatransaccin
200
OK
Lasolicitudsellevacabodemaneracorrecta
201
CREATED
202
ACCEPTED
203
PARTIALINFORMATION
204
NORESPONSE
205
RESETCONTENT
206
PARTIALCONTENT
30x
Redireccin
301
MOVED
Losdatossolicitadoshansidotransferidosaunanuevadireccin
302
FOUND
303
METHOD
GET
304
NOTMODIFIED
40x
Errordebidoalcliente
Estoscdigosindicanquelasolicitudesincorrecta
400
BADREQUEST
401
UNAUTHORIZED
402
PAYMENTREQUIRED
Elclientedebereformularlasolicitudconlosdatosdepagocorrectos
403
FORBIDDEN
Elaccesoalrecursosimplementesedeniega
404
NOTFOUND
50x
Errordebidoalservidor
Estoscdigosindicanqueexisteunerrorinternoenelservidor
500
INTERNALERROR
501
NOTIMPLEMENTED
Elservidornoadmiteelserviciosolicitado(nopuedesaberlotodo...)
502
BADGATEWAY
503
SERVICEUNAVAILABLE
504
GATEWAYTIMEOUT
Adems, Apache2 tambin permite mltiples configuraciones para administrar los dominios,
para ello se hace uso de Virtual Hosts, que permiten correr en un solo servidor varios
dominios.Entrelasmltiplesconfiguracionesdelosvirtualhosttenemos:
Ejecutarmltiplessitioswebbasadosennombre,enunasoladireccinIP.
HostbasadosennombreenmsdeunadireccinIP.
Corrermltiplessitiosendiferentespuertos.
HostingvirtualbasadoenIP
HostingbasadoenIPypuertos.
Balanceodecargaatravsdemod_proxy.
VENTAJAS
Entrelasmltiplesventajasquetieneelservidorapachepodemosencontrar:
Configuracinpormodulos
Permitecrearservidoresvirtuales
Permitecrearservidoresseguroshttps
Permitecrearsitiosprivados
Creacindesitiosdeusuario
Multiplataforma,sistemasUNIX,OSX,Windows
Soporte
Cdigoabierto
IMPACTO EN EL MERCADO
Segnlapginaoficialdelproyecto
http://httpd.apache.org/
,apacheeselservidornmero
unoenInternet.
EnelconcursodelarevistadifundidaanivelmundialLinuxJournal,enelao2009,apache
fueelganadorporloslectores,siendoelservidorwebpreferidoporel89%delosmismos.
LENGUAJE UTILIZADO
ApacheWebServeresunproyectodesarrolladoenC,ForthyXML.
ApacheesunservidorwebquetienesoportemultiplataformaparasistemasUNIX,FreeBDS
yWindows.
ParalaconfiguracindelservidorvirtualutilizamoselprogramaVMWAREparala
virtualizacindelmismo.Suscaractersticassonlassiguientes:
SistemaOperativo:Ubuntu12.04LTS
15GBHDD
1GBRAM
Servidorweb:apache2
Paralosnodosqueparticipancomolosbackendsenelbalanceodecarga,setienenlas
siguientescaractersticas:
Nodo1:
SistemaOperativo:MACOSX10.9.2Mavericks
500GBHDD
7
4GBRAM
Servidorweb:ApacheTomcat7
ProcesadorIntelCorei52.4GHz
Nodo2:
SistemaOperativo:Ubuntu12.04LTS(VirtualizadoVMWARE)
15GBHDD
1GBRAM
Servidorweb:ApacheTomcat7
VIRTUAL HOSTS
TrabajarconHostsVirtualesconsisteenejecutarmsdeunsitiowebenelmismoservidor.
Mediante los hosts virtuales,Apache2 permitelaposibilidaddealojarvariosdominiosenuna
solamquina.
Deesa forma, cuando unapeticin entra enelservidorApache2desdeunnavegadorweb atravsde una
IP dada, Apache2 comprueba el nombre de dominio que se est solicitando y muestra el contenido
asociadoadichonombrededominio.
La utilizacin de hosts virtuales tiene como ventajas la versatilidad para crear diferentes sitios web
configurables el precio, ya que se necesita slo una mquina para alojar varios servidores web una
configuracin del sistema sirve para todos los servidores web se actualiza slo una vez y no requiere
ningnsoftwarenihardwareadicional.
Apachesoportadostiposdehostsvirtuales:
Hostsvirtualesbasadosennombres
Permitenalojarvariosnombresdehost(odominios)enunamismamquina(IP).Todos
loshostsvirtualesquecompartenlamismaIPdebendeclararsemedianteladirectiva
NameVirtualHost
.
HostsvirtualesbasadosenIP
UnamquinarespondedediferentemaneraadiferentesdireccionesIP.Esdecir,tenemos
mltiplesIPsasignadasalsistemayqueremosquecadaunadeellassoporteunsitioweb.
Paraladefinicindehostsvirtualesseutilizalaseccin
<VirtualHost>
yenellaseincluyenlasdirectivas
queseaplicanaundeterminadohostvirtual.Comomnimodebeincluirladirectiva
DocumentRooty
ServerName
.
MLTIPLES DOMINIOS
Comoprimerpasorealizaremoslacreacindenuestrositioweb,elcualpondremosenla
siguientedireccin:
/var/www
Sedebecrearunacarpetadentrodeladireccinanterior,enlacualsealmacenarlas
pginaswebquemostraremos.
mkdirajedrez.org
Pararealizarlapruebasimplementeescribiremosunarchivohtml,dentrodelacarpeta
ajedrez.org,conelnombredeindex.html.
Redireccin local
Paraqueelnavegadornobusqueporinternetnuestrositio,ylolocalicelocalmentees
necesarioqueeditemoselarchivosiguiente:
/etc/hosts
Dentrodeestearchivopondremoslosiguiente,paraquebusqueennuestramquinaoenla
mquinadondeestelservidorapache.
IP
www.ajedrez.org
127.0.0.1
www.ajedrez.org
(Local)
PorcadaVirtualHostquenecesitemosteneresnecesariorealizarlosiguiente:
Iraladireccin
/etc/apache2/sitesavailable
Crearelarchivodeconfiguracin,paranuestroejemploserajedrez.org
touchajedrez.org
9
Editarelarchivocreadoenelpasoanterior,agregandolosiguiente.
nanoajedrez.org
<VirtualHost*:80>
ServerName
www.ajedrez.org
DocumentRoot/var/www/ajedrez.org
</VirtualHost>
HabilitarVirtualHost
UnavezcreadoelarchivodeconfiguracincorrespondienteanuestroVirtualHostes
necesariohabilitarlo,paraqueapachesepaqueestdisponible.Paraelloesnecesario
ejecutarlosiguiente:
a2ensiteajedrez.org
Reiniciar el servidor
Finalmenteserequierereiniciarelservidorapache,paraquecarguelanuevaconfiguracin
quehemosrealizado,paraelloejecutamos:
/etc/init.d/apache2reload
Ypodremosaccederalnavegadoryejecutarladireccin
www.ajedrez.org
,elcualnos
mostrarloquehayamospuestoennuestrodocumentoindex.html.
MLTIPLES DIRECCIONES
Si se tiene unsistemaque disponede varias direccionesIP yse quiere que cada una de ellassoporteun
sitiowebsedebercrearunaseccinvirtualparacadadireccinIP.
Eneste casolos servidores virtualesdefinidosreciben las solicitudesen funcin delaIPrequerida,nodel
nombredelservidor.
Si no se dispone de un equipo con varias interfaces de red se puede probar creando aliasde la tarjeta
disponible.
Paraellohayqueeditarelarchivointerfacesaadiendolosiguiente:
/etc/network/interfaces
10
autoeth0:0
ifaceeth0:0inetstatic
addressIP_nuevaporejemplo192.168.1.2
netmask255.255.255.0
network192.168.1.0
Seestcreandounaliasdelatarjetaetherneteth0yseleasignalaIP192.168.1.2.Sesuponequelatj
eth0tieneIP192.168.1.1.
Apartirdeestemomentoelsistemayadisponede2interfacesdered,unarealyunaliasquepermite
definirunhostvirtualalojadoenelmismoservidorweb
.
PararealizarestaconfiguracinrepetimoselprocesodelacreaciondeunHostVirtualdescrita
anteriormenteperoahoraelarchivodeconfiguracindentrode
sitesavailable
:
<VirtualHost192.168.1.2>
ServerNamevirtual.dominio.com
DocumentRoot/var/www/virtual
ErrorLog/var/log/apache2/virtualerror.log
</VirtualHost>
Tambinesposibleconfigurarhostsvirtualesmixtos,esdecirbasadosennombresyenIP.
NameVirtualHost192.168.1.1:80
<VirtualHost192.168.1.1:80>
ServerNameservidor.dominio.com
DocumentRoot/var/www/servidor80
</VirtualHost>
<VirtualHost192.168.1.1:443>
ServerNameservidor.dominio.com
DocumentRoot/var/www/servidor443
11
</VirtualHost>
En este caso el acceso al servidor web, si se llama igual, debe incluir el puerto porel cualserealizala
peticinHTTP.EnlaURLhabrqueescribir:
http://servidor.dominio.com:443/
Si se utiliza un puerto diferente al 80 (por defecto) hay querevisarelarchivo
/etc/apache2/ports.conf
e
incluirlaslneas
Listen
correspondientesalosnuevospuertosdeescuchadeApache2.
RespectoalprocesodeAutenticacindeusuariosenApache2existendosmtodos:
Bsico o Simple: el usuario en el navegador web introduce su login o nombre de
usuarioycontraseayseenvanalservidor
sincifrar
.
Digest: el usuario enel navegadorweb introducesulogin y contraseayseenvanal
servidor
cifrados
.
Estos dos mtodos slo autentican al usuario cuando intenta acceder a un recurso.
Pero en ninguno de los dos mtodos los datos que a continuacin se envan del
navegador web al servidor o viceversa van cifrados. Son mtodos que
controlan el
acceso a los recursos
, pero
no protegen la informacin intercambiada en la
comunicacinclienteservidorunavezsehacomprobadoqueelaccesoesvlido.
Autenticacin Bsica
Esta autenticacinguardalosusuariosysuscontraseaencriptadasenunarchivo.Los
usuarios y contraseas se tienen que ir metiendo uno a uno. Este mdulodeapache
viene activadopor defecto.Parautilizarlo en nuestrapginaaadiremoslassiguientes
lneasalarchivodeconfiguracinen
/etc/apache2/sitesavailable
AuthTypebasic
AuthNameIdentifiquese
AuthUserFile/etc/apache2/passwd/passwords
Requirevaliduser
12
Unejemplodeintegracinseraelsiguiente:
<VirtualHost*:80>
ServerName
www.ajedrez.org
DocumentRoot/var/www/ajedrez.org
<Directory/var/www/ajedrez.org>
AuthTypebasic
AuthNameIdentifiquese
AuthUserFile/etc/apache2/passwd/passwords
Requirevaliduser
</Directory>
</VirtualHost>
AuthTypebasic:
Leespecificamosqueesautenticacinbsica.
AuthName Identifquese :
Este ser el mensaje que nos aparecer al pedir la
contrasea.
AuthUserFile:
Estaeslaubicacindelficheroconlosusuariosysuscontraseas.
Require validuser: Le indicamos que requiere un usuario vlido. Tambin se podra
ponerunoovariosusuariosponiendoporejemploRequireuserjuan,jose,maria.
Por ltimo para crear el archivo donde se guardan los passwords, utilizamos el
comando
htpasswd
.
La primera vez que lo utilicemos tenemos que ponerle la opcin c, para crear el
archivo.
Agregamoselusuariomediante:
htpasswdc/etc/apache/passwd/passwordsusuario
Newpassword:
Retypenewpassword:
Siqueremosaadirotrousuarionolepondremoslaopcinc.
13
seutilizandiversosalgoritmosdeorganizacinperolosmsutilizadosson:
ROUND ROBIN
: los usuarios son repartidos aleatoriamente por los servidores
quecomponenelsistema
IPHASH
: las direcciones ip de los visitantes son comparadas con una tabla
definidaenelservidorydependiendodesuexistenciasonredirigidos
LEAST CONNECTIONS
: el recurso de cada servidor es detectado
automticamenteyseefecta unredireccionamientodecadausuarioal servidor
commasrecursosdisponibles.
2)a2enmodproxy_balancer:implementaelfuncionamientoparaelbalanceodecarga.
3)a2enmodproxy_http:aadesoportealproxiparalaspeticioneshttp.
Unvezinstaladoyactivadoelmoduloenapache,necesitamosrealizarlaconfiguracinpara
realizarelbalanceo(/etc/apache2/sitesavailable)dentrodeunVirtualHost.Teniendola
estructuracomosigue:
<VirtualHost*:80>
14
Servernamewww.balanceo.com
ProxyRequestsOff
ProxyPassReverse/http://192.168.189.155:8080
ProxyPassReverse/http://192.168.1.65:8080
<Proxybalancer://testcluster>
BalancerMemberhttp://192.168.189.155:8080/balanceoroute=nodo1
BalancerMemberhttp://192.168.1.65:8080/balanceoroute=nodo2
ProxySetlbmethod=byrequests
</Proxy>
ProxyPass/balancermanager!
ProxyPass/balancer://testcluster/nofailover=On
<Location/balancer_manager>
SetHandlerbalancermanager
Orderdeny,allow
Allowfromall
</Location>
</VirtualHost>
Primeroesnecesariohabilitarlasiguientelnea
<Enginename=CatalinadefaultHost=localhostjvmRoute=nodo1>
donde
nodo1 es la ruta del protocolo jvm para el balanceador. Para el tomcat2 ser
nodo2. Luego es necesario desactivar la lnea de la implementacin del clster del
servidor
<ClusterclassName=org.apache.catalina.ha.tcp.SimpleTcpCluster/>
Porltimoseguardaelarchivoysereiniciaelservidor.
15
Para la implementacin, necesitamos habilitar el mdulo SSL (Secure Sockets Layer) para
apache y obtener un certificado que est firmado con el fin de poder distribuir una llave
pblica. Este certificado debe de tener unafirmaqueennuestrocasoserautofirmada,pero
se puede pagar la firma de nuestro propio certificado a empresas comoVeriSign para que
seareconocidoenlosnavegadoreswebmodernos.
Creandoelcertificado
Para la creacin del certificado haremos uso de la aplicacin open ssl, en la terminal
ejecutamoslosiguiente:
opensslgenrsaoutca.key1024
EnlaculestamosindicandoengenrsaqueutiliceelalgoritmoRSAcon1024bits.
Ahora generamos el CSR (Certificate Signing Request), que crea una entidad parapedirlea
unaterceraquelofirme,verificandoasquelosdatosdelaprimeraentidadsoncorrectos.
Enconsola:
opensslreqnewkeyca.keyoutca.csr
Debido a que no contamos con recursos para pagar la firma del certificado, nos lo
autofirmamos:
opensslx509reqdays365inca.csrsignkeyca.keyoutca.crt
Dondeelparmetrodaysespecificaeltiempodevalidezdelcertificado,enestecasounao.
Ahora, procedemos a mover los archivos creados a la ruta donde sern lozalizados con
apache:
mvca.crt/etc/ssl/certs
mvca.key/etc/ssl/private/ca.key
mvca.csr/etc/ssl/private/ca.csr
16
En el servidor apache hay que activar el mdulo SSL, para ello nos movemos a la carpeta
sitesavailabledeapacheycreamosunarchivoconlaconfiguracinquesedescribeabajo.
cd/etc/apache2/sitesavailable
touchsslconf
nanosslconf
Enelarchivossconf:
NameVirtualHost*:443
<VirtualHost*:443>
SSLEngineon
SSLCertificateFile/etc/ssl/certs/ca.crt
SSLCertificateKeyFile/etc/ssl/private/ca.key
AllowOverrideAll
DocumentRoot/var/www/sitiohttps
ServerNamesitiohttps.com
</VirtualHost>
Guardamosycerramoselarchivoylohabilitamos:
en2sitessconf
Porltimoreiniciamoselservicio:
sudo/etc/init.d/apache2restart
Conestopodemosentraralnavegadoreintroducireldominiodenuestrositioconelprefijo
https://.Cabesealarquealabrirlapginanossaldrunmensajedeavisosobreel
certificadoyaque,comoesautofirmadoelnavegadornoloreconoceylointerpretacomono
vlido.
Munin es una herramienta multiplataforma basada en
web, utilizadaen el monitoreo
de los recursos en red. Las principales caractersticas de esta herramienta son las
siguientes:
17
Cuentaconunainterfazwebquemuestraelusoderecursoshistricamente.
Monitoreacadamquinaconfiguradaenelarchivomunin.conf.
Losprincipalesrecursosmonitoreadossondisco,red,CPU,RAM,entreotros.
Genera grficas por da, semana, mes y ao de cada uno de los recursos
monitoreados.
Esposibleconfigurarumbralesdealertaparaestadodeadvertenciaycrtico.
ESTRUCTURA DE MUNIN
Muninseencuentraconformadoportrescomponentesprincipales.
Servidor
: Un demonio que corre en todas las mquinas monitoreadas, por
default en el puerto 4949. Su funcin es configurar y llamar a los plugins.
Cuandosehablademuninnode,serefierealservidor.
Plugins
: Cada uno de los agentes de recoleccin dedatos queson invocados
por muninnode. Dan lainformacinque monitorean,ysontambin capaces de
describirsufuncinyconfiguracin.
Cliente
: Proceso que corre peridicamente (normalmente cada 5 minutos)
desdeun nodo central, interrogandoacadaunodelosservidoresmuninnode,y
generandolaspginasWeb.
INSTALACIN Y CONFIGURACIN
Ya
aptgetinstallmuninmuninnode
ConestotendremoslistoelServidoryunnodoquerepresentaalaestructuracliente.
18
dbdir/var/lib/munin
htmldir/var/cache/munin/www
logdir/var/log/munin
rundir/var/run/munin
#
#WheretolookfortheHTMLtemplate
tmpldir/etc/munin/templates
#asimplehosttree
[server.org]
address192.168.1.65
use_node_nameyes
EstoesnecesarioyaqueseleindicaaMuninlosdirectoriosdetrabajo.
Luego especificamos las direcciones ip de los nodos a monitorear. Para configurar
nuestro nodo, es decir, la parte de Munin que recoge losdatos, editaremosel fichero
/etc/munin/muninnode.conf.
log_level4
log_file/var/log/munin/muninnode.log
pid_file/var/run/munin/muninnode.pid
background1
setsid1
userroot
grouproot
ignore_file~$
ignore_fileDEADJOE$
ignore_file\.bak$
ignore_file%$
ignore_file\.dpkg(tmp|new|old|dist)$
ignore_file\.rpm(save|new)$
ignore_file\.pod$
host_namehost.mydomain.com
allow^127\.0\.0\.1$
allow^192\.168\.1\.65$
allow^192\.168\.1\.21$
host*
19
host127.0.0.1
host192.168.1.65
host192.168.1.21
port4949
Esteesnuestroarchivoconfiguradoconlosnodoscorrespondientes.
Despues de haber realizado la configuracin del servidor, solo queda dar inicio al
servicio,estoserealizarmedianteelsiguientecomando:
servicemuninnodestart
Parareiniciarelserviciotenemoselsiguientecomando:
servicemuninnoderestart
Paradetenerelserviciobastaconteclearlosiguiente:
servicemuninnodestop
Paraaadirotrosclientessolotenemosque instalarelnododelasiguientemaneraen
lamquinaquesedeseamonitorear.
aptgetinstallmuninnode
Ahoratansolotenemosqueeditarelarchivomuninnode.confdelasiguienteforma:
log_level4
log_file/var/log/munin/muninnode.log
pid_file/var/run/munin/muninnode.pid
background1
setsid1
userroot
grouproot
#Regexpsforfilestoignore
ignore_file~$
#ignore_file[#~]$#FIXdoesn'twork.'#'startsacomment
ignore_fileDEADJOE$
ignore_file\.bak$
ignore_file%$
ignore_file\.dpkg(tmp|new|old|dist)$
ignore_file\.rpm(save|new)$
ignore_file\.pod$
#Setthisiftheclientdoesn'treportthecorrecthostnamewhen
20
#telnettingtolocalhost,port4949
#
host_nameserver.org
#Alistofaddressesthatareallowedtoconnect.Thismustbea
#regularexpression,sinceNet::ServerdoesnotunderstandCIDRstyle
#networknotationunlesstheperlmoduleNet::CIDRisinstalled.You
#mayrepeattheallowlineasmanytimesasyou'dlike
#allow^127\.0\.0\.1$
allow^192\.168\.1\.65$
#IfyouhaveinstalledtheNet::CIDRperlmodule,youcanuse
#multiplecidr_allowandcidr_denyaddress/maskpatterns.A
#connectingclientmustmatchanycidr_allow,andnotmatchany
#cidr_deny.Example:
#cidr_allow127.0.0.1/32
#cidr_allow192.0.2.0/24
#cidr_deny192.0.2.42/32
#Whichaddresstobindto
#host*
host192.168.1.21
#Andwhichport
port4949
Enallowponemoslaipdelservidormunin
Enhostponemoslaipdeestenodo
[server2.org]
address192.168.1.21
use_node_nameyes
reiniciamoscon:
servicemuninnoderestart
Ahora resta obtener los datos del servidor apache, para esto es necesariocrear un
virtualhostdelasiguientemanera:
Primerocreamosundirectorioenelservidordeapache:
mkdir/var/www/server.org
Luegoescribimoselhostenelarchivo
/etc/hosts
delasiguientemanera:
21
192.168.1.65server.org
Ahora vamos a crear el archivos de configuracin para cada el VirtualHost. Lo
crearemos dentro de
/etc/apache2/sitesavailable con el nombre de la pgina para
distinguirlos fcilmente en este caso sera
server.org
dentro de este archivo
escribiremoslosiguiente:
<VirtualHost*:80>
ServerAdminwebmaster@server.org
ServerNameserver.org
DocumentRoot/var/cache/munin/www
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
LogLevelnotice
CustomLog/var/log/apache2/access.logcombined
ErrorLog/var/log/apache2/error.log
ServerSignatureOn
</VirtualHost>
Una vez que hemos creado el archivo VirtualHost solamente nos queda habilitarlo
para ello utilizaremos el comando
a2ensite server.org
dentro de la carpeta
/etc/apache2/sitesavailable
. FInalmente se ejecutalo siguiente para cargarlosdatos
enapache:
serviceapache2reload
Ahoraasignaremos eltiempoque tardar muninparaobtenerlosdatosygraficarlos,
paraestoejecutaremoselsiguientecomando
sudoumunincrontabe
Y agregaremos la siguiente lnea, con la cual obtendremos estos datos cada 5
minutos.
#mhdommondowcommand
*/5****munincron
22
http://direccin_ip/munin
Figura1.HerramientaMuninenApache.
INSTALACIN DE PLUGINS
Pararealizarelmejormonitoreoposibleconestaherramientaexisteloscomplementos
extra, estos son los plugins quenospermite incrementarlas caractersticas demunin,
estos se puedenencontrar enla webosepuedenrealizar en ellenguajeperlporotra
parteparainstalarlosesnecesarioseguirlossiguientespasos:
lns/usr/share/munin/plugins/plugname/etc/munin/plugins/plugname
chmod755/etc/munin/plugins/plugname
[plugname]
userroot
env.warning50
env.critical65
#optionsenv.procs,env.USERS,etc
/etc/munin/plugins/plugnameconfig
/etc/munin/plugins/plugnameautoconf
Finalmentesereinicianlosserviciosdemuninyapache,ahorasoloquedaesperarun
pocodetiempoparaquemuninobtengalosrecursosqueelpluginestamonitoreando.
servicemuninnoderestart
serviceapache2restart
PRUEBAS Y RESULTADOS
Comoprimeraspruebassehautilizadolaaplicacin
ApacheBench
lacualesuna
herramientaquenospermitemedirelrendimientodesuservidor,detalformaque
crearemosunpooldeconexionesalservidorapache,paraquemunincapturelosdatos
deconsumoderecurso,pararealizarestoejecutaremoslosiguiente:
abn8000000c10
http://192.168.1.65/
24
Con estolo queestamos realizando es unaconexinde8000000declientesen10
hilos a la direccion
http://192.168.1.65/ donde tenemos alojada nuestra pagina WEB,
despus de haber realizadoestotenemoslafigura2dondese muestralosaccesospor
dia al servidor apache, que es aproximado a las peticiones que hemos hecho con
ApacheBench.
Figura2.AccesospordaalservidorApache.
Enlafigura3semuestralosdatosobtenidospormunincorrespondientealacantidad
deprocesosde apache enundeterminadotiempo,seobserva unpequeoperiodode
una cantidad considerable deprocesosestoesacausa de laspeticionescreadaspor
partedeApacheBench.
25
Figura3.ProcesosdeApacheconpeticionesdeconexin.
Ahora en la figura 4 se observa el porcentaje de uso del cpu por parte de los
procesosdeapacheenelperiododetiempoendondesevenaltosporcentajesdeuso
decpuesdebidoalosclientesgeneradosporApacheBench.
Figura4.PorcentajedeusodelCPUporpartedeApache.
26
Figura5.SegmentodeMemoriaRamutilizadaporApache.
FInalmente se muestraenlafigura6lospaquetesrecibidosporpartedelatarjetade
redcorrespondientealfirewalldeapache.
Figura6.PaquetesrecibidosyenviadosporminutoporApache.
27
contact.me.commandmails"Muninnotification${var:host}"user@host.tld
contact.me.always_sendwarningcritical
Finalmente nos hemos tomado la tarea de llevar elservidoraun punto crtico, para
que la herramienta Munin nos de un aviso, para estohemosde crear15hiloscon 10
000 000 de clientes en ApacheBench tomandocomorecurso el porcentaje de usode
cpu, colocando un niveldewarningdel160%yunnivelcrticodel180%.Losresultados
obtenidos se muestran enlafigura7,enlacualsemuestraquesehasuperadoniveles
warning y enla figura 8 se muestrala notificacin de un warning enel usodelcpupor
elservidordeapache.
Figura7.Servidorsuperandousoderecursos.
28
Figura8.Notificacionesdewarning.
29