Archive for the ‘apache’ tag
Gráficas de uso de memoria de passenger con Munin
Estaba instalando algunos plugins adicionales en el munin para monitorizar el estado de las peticiones que entran por Apache.
He encontrado uno para monitorizar el uso de memoria pero se ha quedado anticuado con respecto a ciertos cambios que ha sufrido la salida del comando passenger-memory-stats. Por lo tanto ya no sirve.
Basándome en dicho plugin y en este otro, he hecho algunos cambios y el código resultante es el siguiente:
#!/usr/bin/env ruby
def output_config
puts <<-END
graph_category Passenger
graph_title passenger memory stats
graph_vlabel megabytes
apache_memory.label apache_memory
passenger_memory.label passenger_memory
END
exit 0
end
def output_values
memory_stats_command = '/usr/bin/passenger-memory-stats'
memory = {}
apache_header = "Apache processes"
passenger_header = "Passenger processes"
nginx_header = "Nginx processes"
section = nil
`#{memory_stats_command}`.each_line do |line|
if line.include?(apache_header)
section = "apache"
elsif line.include?(nginx_header)
section = "nginx"
elsif line.include?(passenger_header)
section = "passenger"
elsif /### Total private dirty RSS: (\d+\.\d+) MB/.match(line)
memory[section] = $1
else
next
end
end
puts "apache_memory.value #{memory['apache']}"
puts "passenger_memory.value #{memory['passenger']}"
#puts "nginx_memory.value #{memory['nginx']}"
end
if ARGV[0] == "config"
output_config
else
output_values
end
El plugin parsea los totales de memoria tanto de apache, como de nginx, como de apache passenger. En mi caso solo muestro los valores de apache y de passenger, pero si se quisiera mostrar los de nginx, bastaría con descomentar la linea:
puts "nginx_memory.value #{memory['nginx']}"
ServerName y ServerAlias en Apache
En el servidor web apache, dentro de un VirtualHost se puede incluir un ServerName para que Apache sepa que ha de aplicar la configuración contenida en ese VirtualHost a las peticiones dirigidas al DNS de dicho ServerName.
También se puede incluir uno o varios ServerAlias dentro del mismo VirtualHost por si el site definido en dicho VirtualHost puede ser accedido a través de más de un DNS diferente.
Ahora bien, la diferencia entre ServerName y ServerAlias es que el ServerAlias acepta wildcards y el ServerName no.
Yo puedo hacer lo siguiente:
<VirtualHost> ServerName example.com ServerAlias *.example.com ... </VirtualHost>
pero no puedo hacer esto:
<VirtualHost> ServerName *.example.com ... </VirtualHost>