Linux
LAMP + monitoring Zabbix sur un serveur virtuel avec 256 Mo de RAM
Est-il possible d’avoir un serveur web avec PHP + MySQL + des virtual hosts, ainsi qu’un service de monitoring (Zabbix), tout ça dans un VPS avec seulement 256 Mo de RAM ? Et en plus pour 4 € / mois ? Difficile, n’est-ce pas ? :-) En fait non, c’est même large… 140 Mo de RAM suffisent ! En m’inspirant d’un article sur lowendbox.com, et en utilisant un VPS chez l’excellent QuickWeb (OpenVZ VPS Germany 256 à $6/mois), voici rapidement la procédure d’installation sur une base d’install Ubuntu 10.10 toute fraiche :
- On fait un peu de ménage en virant rsyslog, et on installe syslog-ng à la place. Dans la foulée on bazarde portmap, ainsi que bind9 (les DNS de QuickWeb font parfaitement l’affaire) :
apt-get install syslog-ng && dpkg --purge rsyslog apt-get remove --purge portmap apt-get remove --purge bind9
- On supprime openssh, et on installe le tout petit dropbear à la place :
touch /etc/ssh/sshd_not_to_be_run apt-get install dropbear sed -i "s/NO_START=1/NO_START=0/" /etc/default/dropbear /etc/init.d/ssh stop && /etc/init.d/dropbear start echo -e "PATH=/usr/bin:/bin:/usr/sbin:/sbin\nexport PATH" >> ~/.bashrc
- Voilà, on a déjà gagné quelques megs. Passons aux poids lourds… Apache en premier, qui va poliment laisser sa place à lighttpd (et son module de gestion des vhosts) :
/etc/init.d/apache2 stop update-rc.d -f apache2 remove apt-get remove --purge apache2 apt-get install lighttpd mkdir -p /var/www/monitoring.monsite.fr/html lighttpd-enable-mod simple-vhost /etc/init.d/lighttpd force-reload
- Que serait le web sans PHP et MySQL ?
apt-get install mysql-server php5-cgi php5-mysql
cat > /etc/lighttpd/conf-enabled/10-cgi-php.conf
server.modules += ("mod_cgi")
cgi.assign = (".php" => "/usr/bin/php5-cgi")
^D
/etc/lighttpd/conf-enabled/10-simple-vhost.conf :
simple-vhost.server-root = "/var/www"
simple-vhost.document-root = "html"
/etc/init.d/lighttpd force-reload
- On va immédiatement calmer le gros apétit de MySQL :
cat > /etc/mysql/conf.d/mon_tuning.cnf [mysqld] key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K query_cache_limit = 256K query_cache_size = 1M ^D
- Au tour de Zabbix !
apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent le pass root mysql puis le pass db zabbix mysql puis le pass frontend zabbix ln -s /usr/share/zabbix /var/www/monitoring.monsite.fr/html
- On customise un peu le /etc/php5/cgi/php.ini pour faire plaisir à Zabbix :
date.timezone = Europe/Paris post_max_size = 16M max_execution_time = 300 max_input_time = 300
- Un peu de SSL pour sécuriser le tout :
cd /etc/lighttpd/conf-available/ ln -s /etc/lighttpd/conf-available/10-ssl.conf openssl req -new -x509 -keyout server.pem -out server.pem -days 3650 -nodes du bla bla pour generer le certificat... :-) /etc/init.d/lighttpd restart
- Et voilà, secouez bien fort votre VPS, et Zabbix s’offre à vous :
https://monitoring.monsite.fr
Pour 4 petits € / mois, voilà un beau serveur de monitoring, oui ma bonne dame :-) Et rassurez vous, il reste de la RAM dispo, vous pourrez donc y installer encore quelques vhosts (puisqu’il y a du PHP/MySQL, autant se faire plaisir) :
root@quickweb:~# free -m total used free shared buffers cached Mem: 384 138 245 0 0 0 -/+ buffers/cache: 138 245 Swap: 0 0 0
I/O consommés par un process
/proc regorge d’informations sympathiques. On pourra par exemple y voir les I/O consommés par un process. Pour cela, on va regarder dans le /proc/<pid>/io. En regardant ce « fichier » pour un PID donné, on peut entre autres voir le nombre d’octets lus et écrits sur/depuis les disques, avec les champs rchar et wchar. Voilà un petit exemple :
$ dd if=/dev/zero of=bidon bs=1M count=1000 & [1] 5224 $ cat /proc/5224/io rchar: 793778451 wchar: 1587738016 syscr: 194481 syscw: 388188 read_bytes: 0 write_bytes: 795377664 cancelled_write_bytes: 0
Il s’agit de compteurs incrémentaux, un peu comme dans /proc/net/dev pour mesurer les débits sur les interfaces réseau. En faisant la différence entre deux mesures, divisé par le temps entre les deux mesures, on peut ainsi facilement obtenir les débits en lecture et écriture sur les disques du process mesuré ! Ou bien sinon, plus simple : iotop fait ça très bien. Il permet de voir quels process sont en train de tuer vos disques durs, à la manière de top pour les CPU :-)
Serveur dédié (virtuel) à pas cher
Tout bon geek qui se respecte (et qui ne travaille pas chez un hébergeur) a un dédié, en général du low cost à 15 € par mois chez OVH (Kimsufi) ou chez Free/Iliad (Dedibox). Mais parfois, on a envie de bidouiller, tester, jouer avec IPv6, avoir un petit serveur OpenVPN sous le coude (pour sortir avec une IP américaine, pour prendre un exemple totalement au hasard), avoir un serveur de backup distant, etc… Bref, c’est là qu’entre en jeu le dédié virtuel : ça sent le dédié, ça ressemble au dédié (si on accepte de ne pas toucher à son kernel), mais c’est moins cher que du dédié !
En France, on peut par exemple se tourner vers Phpnux qui propose des VDS de qualité à seulement 8.25 € HT / mois. Mais si on se tourne de l’autre côté de l’Atlantique, les prix s’écroulent :
- 123systems : le VDS (sous OpenVZ) avec 256 Mo de RAM burstable à 512 Mo, 10 Go de disque, une adresse IP(v4) à Dallas (USA) est à $3 / mois ! Et pour le double ($6 / mois), vous avec 512 Mo de RAM burstable à 1 Go, et 20 Go d’espace disque.
- QuickWeb : le VDS (sous OpenVZ) avec 256 Mo de RAM, 12 Go de disque, une adresse IP(v4) en Allemagne, est à $6 / mois (env 4.32 €). C’est un tout petit peu plus cher que les deux suivants (enfin on parle de quelques euros / an…), mais leurs VDS sont d’excellente qualité et surtout ils sont très stables. J’aurais donc tendance à recommander ce prestataire, d’autant qu’il propose des serveurs aux USA, mais également en Europe (en Allemagne), donc avec des pings largement plus raisonnables que New York ou Los Angeles ! ;-)
- Enotch Networks : le VDS (sous OpenVZ) avec 512 Mo de RAM, 20 Go de disque, deux adresses IP(v4) et du net à 10 Mb/s, est à $5.95 / mois (env. 4.31 €), ou bien $50.95 / an (env. 36.91 €) !
- 2Host : le VDS (sous Xen) avec 256 de RAM + 512 Mo de swap, 5 Go de disque, 10 To de transit IP par mois (!!!), une adresse IP(v4), est à $4.99 / mois (env. 3.61€ ), ou bien $47.88 (env. 34.69 €) !
J’ai personnellement testé ces prestataires depuis plusieurs mois (années pour certains), et ça fonctionne très bien, c’est même assez bluffant vu le prix… Bon, bien sûr, il ne faut pas s’attendre à avoir les perfs d’un Bi-Xeon, et il faut accepter les pings > 100 ms (puisque tout est souvent aux USA). Certes, mais pour moins de 4 € par mois on a un serveur de tests (et un VPN) cassable et réinstallable à loisir :-) Et c’est payable mensuellement, sans aucun engagement ! Ils sont forts (des fois) ces américains.
(Mise à jour : 31/01/2012)
VimGolf
Tu as fini Angry Birds, et tu t’ennuies pendant tes vacances de Noël ? Si tu penses connaitre tous les raccourcis clavier de VIM, dégaine tes plus beaux (gros) doigts, sors ton xterm favori et viens affronter le reste de l’univers sur VimGolf ! L’objectif est très simple : un fichier source, un fichier destination, et il faut arriver à passer de l’un à l’autre avec le moins de frappes de touches possibles (on parle de vim, bien évidemment). Ca ne sert à rien, c’est donc merveilleux pour passer les fêtes de fin d’année ;-)
FRsAG : Liste de diffusion pour les sysadmins
Il existe le fameux FRnOG pour le réseau, et… maintenant FRsAG pour les sysadmins ! Vous l’aurez peut être compris, une nouvelle liste de diffusion dédiée aux sysadmins vient de voir le jour : http://www.frsag.org/
Pour s’y inscrire, rendez-vous sur http://www.frsag.org/mailman/listinfo/frsag
Excellente initiative, merci Greg ;-)
