You are hereinternet / Drupal
Drupal
Todo-lijstje
Ik maak voor mezelf eventjes een lijstje van dingen die ik eens zou moeten doen.
Debian upgrade op m'n webserver- DONE- Websites upgraden naar Drupal 7
- Webserver IPv6-ready maken (voor World IPv6 Day 2012)
- OpenVPN tunnel leggen van de router thuis naar de webserver
- Twitter API bestuderen en er iets nuttig mee doen
- Netbook (Acer Aspire One) herinstalleren met een barebones Ubuntu installatie.
- Prutsen met de Toshiba AC100 tot ik er een Android Market op krijg.
- Blogpost schrijven over de AC100 voor The Mobile Revolution.
- Partities op pc reorganiseren en btrfs in gebruik nemen.
- App schrijven voor mijn Karotz
- NAS aanschaffen
- Gaming pc kopen voor Annette
- Latijn leren
- Alle boeken lezen die ik de afgelopen 2 jaar gekocht heb
- Deftig werk maken van backups
- Schouw afbreken in bureau
- Badkamer renoveren
- Zolder isoleren en afwerken
To be continued...
Drupal blok: Mobile Vikings referrers
<style>
#inline-list {
border: 0px solid #000;
margin: 0em;
width: 80%;
// width: 120px;
right: ;
//text-align: right;
padding: 0px;
font-family: Verdana, sans-serif;
}
#inline-list p {
display: inline;
}
#inline-list ul, #inline-list li {
display: inline;
margin: ;
padding: ;
color: #339;
font-weight: bold;
}
#inline-list ul li:after {
content: ", ";
}
#inline-list ul li.beforelast:after {
content: " en ";
}
#inline-list ul li.last:after {
content: " ";
}
</style>
<div id="inline-list">
Met dank aan
<ul>
<?php
$url = 'https://username:password@mobilevikings.com/api/2.0/basic/points/referrals.json?msisdn=phonenumber';
$contents = file_get_contents($url);
$contents = utf8_encode($contents);
$results = json_decode($contents, true);
$i = ;
foreach ($results as $item) {
echo (' <li');
switch ($i) {
case count($results) - 2:
echo (' class="beforelast"');
break;
case count($results) - 1:
echo (' class="last"');
break;
}
printf ('>%s</li>' . PHP_EOL, trim($item['name']));
$i++;
}
?>
</ul>
om mij een gratis herlading twv €15 te bezorgen!
<!-- code from https://mobilevikings.com/nl/myviking/points/referral-links/ -->
<p align="right"><a
href="http://mobilevikings.com/referral/nWDDPmWjqDNslgWicXgSmAmjpcuOgUEB/"
title="Word een Viking"><img
src="http://mobilevikings.com/nl/referral/image/nWDDPmWjqDNslgWicXgSmAmjpcuOgUEB/banner2.jpg/"
title="Word een Viking" /></a></p>
</div>
Code review is altijd welkom. Het is ondertussen al een paar jaar geleden dat ik nog PHP aangeraakt heb, en het is de allereerste keer dat ik iets met JSON doe.
EDIT: oops, er loopt iets mis... even geduld aub!
EDIT2: probleem opgelost, ik heb direct na de file_get_contents nog een if ($contents === false) blok toegevoegd. De volledige code staat nu op Github: https://github.com/amedee/MobileVikings
URL Icon is een traffiekvretertje
Het was me al opgevallen dat de server veel traffiek trekt. Abnormaal veel.
In cijfers:
eth0 / monthly
month rx | tx | total
-------------------------+--------------+--------------------------------------
Jun '09 38.69 GB | 1.33 GB | 40.02 GB %%
Jul '09 337.14 GB | 43.20 GB | 380.34 GB %%%%%%%%%%%%%%%%%%%%::
Aug '09 17.33 GB | 4.47 GB | 21.80 GB %
-------------------------+--------------+--------------------------------------
estimated 95.51 GB | 24.66 GB | 120.17 GB
eth0 / weekly
rx | tx | total
----------------------------+---------------+--------------
last 7 days 32.93 GB | 5.02 GB | 37.95 GB
last week 69.42 GB | 4.25 GB | 73.67 GB
current week 2.62 GB | 3.56 GB | 6.19 GB
----------------------------+---------------+--------------
estimated 5.06 GB | 6.88 GB | 11.95 GB
eth0 / daily
day rx | tx | total
------------------------+-------------+----------------------------------------
08.07. 8.04 GB | 348.55 MB | 8.38 GB %%%%%
09.07. 10.58 GB | 389.05 MB | 10.96 GB %%%%%%%
10.07. 19.15 GB | 17.26 GB | 36.41 GB %%%%%%%%%%%%%::::::::::::
11.07. 14.92 GB | 3.34 GB | 18.26 GB %%%%%%%%%%::
12.07. 13.91 GB | 2.23 GB | 16.14 GB %%%%%%%%%::
13.07. 14.42 GB | 2.08 GB | 16.50 GB %%%%%%%%%%:
14.07. 20.49 GB | 1.50 GB | 21.99 GB %%%%%%%%%%%%%%:
15.07. 16.14 GB | 1.61 GB | 17.76 GB %%%%%%%%%%%:
16.07. 14.86 GB | 1.10 GB | 15.96 GB %%%%%%%%%:
17.07. 17.26 GB | 1.20 GB | 18.46 GB %%%%%%%%%%%:
18.07. 13.49 GB | 1.26 GB | 14.74 GB %%%%%%%%%:
19.07. 12.97 GB | 980.82 MB | 13.93 GB %%%%%%%%:
20.07. 13.81 GB | 1.01 GB | 14.82 GB %%%%%%%%%:
21.07. 8.44 GB | 704.84 MB | 9.13 GB %%%%%%
22.07. 10.88 GB | 0.99 GB | 11.86 GB %%%%%%%:
23.07. 9.01 GB | 980.68 MB | 9.97 GB %%%%%:
24.07. 7.39 GB | 583.17 MB | 7.96 GB %%%%%
25.07. 6.23 GB | 484.04 MB | 6.70 GB %%%%
26.07. 8.19 GB | 395.95 MB | 8.58 GB %%%%%
27.07. 12.87 GB | 883.55 MB | 13.73 GB %%%%%%%%:
28.07. 8.83 GB | 762.62 MB | 9.57 GB %%%%%%
29.07. 8.65 GB | 631.73 MB | 9.27 GB %%%%%%
30.07. 8.76 GB | 587.09 MB | 9.34 GB %%%%%%
31.07. 15.60 GB | 558.70 MB | 16.15 GB %%%%%%%%%%%
01.08. 13.45 GB | 606.42 MB | 14.05 GB %%%%%%%%%
02.08. 1.25 GB | 326.41 MB | 1.57 GB %
03.08. 130.79 MB | 410.80 MB | 541.59 MB
04.08. 143.49 MB | 414.06 MB | 557.55 MB
05.08. 2.28 GB | 2.50 GB | 4.78 GB %::
06.08. 33.89 MB | 134.54 MB | 168.43 MB
------------------------+-------------+----------------------------------------
estimated 69 MB | 280 MB | 349 MB
eth0 / top 10
# day rx | tx | total
-------------------------------+-------------+---------------------------------
1 10.07.09 19.15 GB | 17.26 GB | 36.41 GB %%%%%%%%%:::::::::
2 14.07.09 20.49 GB | 1.50 GB | 21.99 GB %%%%%%%%%:
3 17.07.09 17.26 GB | 1.20 GB | 18.46 GB %%%%%%%%:
4 11.07.09 14.92 GB | 3.34 GB | 18.26 GB %%%%%%%::
5 15.07.09 16.14 GB | 1.61 GB | 17.76 GB %%%%%%%:
6 13.07.09 14.42 GB | 2.08 GB | 16.50 GB %%%%%%%:
7 31.07.09 15.60 GB | 558.70 MB | 16.15 GB %%%%%%%
8 12.07.09 13.91 GB | 2.23 GB | 16.14 GB %%%%%%:
9 16.07.09 14.86 GB | 1.10 GB | 15.96 GB %%%%%%%
10 20.07.09 13.81 GB | 1.01 GB | 14.82 GB %%%%%%%
-------------------------------+-------------+---------------------------------
Het is zeker niet omdat de foutparkeerders website zo populair is, want die is maar op 10 juli opgepikt door de pers, en de traffiek was er daarvoor ook al.
Ik heb er aanvankelijk niet veel aandacht aan besteed omdat de server er voor de rest blijkbaar niet veel last van had. Tot ik een mailtje kreeg van Luc dat hij traffiekwaarschuwingen begon te krijgen van Hetzner. Oeps, sorry Luc!
Na advies van een aantal mensen (op Facebook, Twitter, mailinglijsten) heb ik iptraf en ntop geïnstalleerd. Iptraf om live de traffiek op te volgen, ntop om het wat meer in detail te bekijken. Het was nog niet onmiddelijk duidelijk waar het probleem zat, maar het viel me wel op dat er enorm veel inkomend http-verkeer was van 193.190.67.15, beter bekend als http://ftp.belnet.be/
Als noodmaatregel heb ik dan maar 193.190.67.15 geblacklist in shorewall.
Ondertussen heeft Luc, die de Dom0 van de server beheert, een capture gemaakt van het netwerkverkeer (pcap). Na 1 uur was de dumpfile al 700 MB groot!
Een eerste voorlopige analyse bevestigt dat 193.190.67.15 voor veel verkeer zorgt:
193.190.67.15,http,679101,696498644,452050,684235136,227051,12263508
188.40.34.110,hbci,88540,13756794,44074,6047109,44466,7709685
188.40.34.110,33667,117284,119561882,39723,2145218,77561,117416664
188.40.34.110,42873,116327,119298488,38899,2100722,77428,117197766
188.40.34.110,35777,115051,117747404,38648,2087168,76403,115660236
188.40.34.110,53186,114977,117801752,38539,2081282,76438,115720470
188.40.34.110,42862,113661,117683704,37249,2011622,76412,115672082
188.40.34.110,55430,101585,104311484,33885,1829966,67700,102481518
188.40.34.110,http,21232,19113987,13408,18174489,7824,939498
188.40.34.110,ssh,17563,4497320,11394,4047532,6169,449788
...
Volgende fase: analyse in Wireshark.
Nog in detail te schrijven, maar daaruit bleek dat de grote traffiek gepaard ging met een http-request vanuit mijn blog naar Belnet. Unk? Iets in Drupal?
Volgende stap: nie moeilijk doen, gewoon in de raw data van de database van Drupal kijken:
1765 Could not find favicon for URL <em>http://ftp.belnet.be/mirror/ubuntu.com/releases/8.10/</em> in metatags, trying webroot.
168 Could not find favicon for URL <em>http://ftp.belnet.be/mirror/ubuntu.com/releases/8.10/ubuntu-8.10-mid-lpia.img</em> in metatags, trying webroot.
Favicon? Een Ubuntu ISO? Dat kan alleen maar van deze blogpost komen. Wat blijkt: de Drupal module URL Icon, die vóór links naar externe sites een mooi favicon zet, trekt alle externe links binnen. ALLE. Dus ook die naar een ISO van 700 MB. Hargl.
Oplossing: uninstall van URL Icon en een bug gefileerd. Case closed.
Checklist servermigratie
Deze server verhuist binnenkort naar een nieuwe fysieke machine met volgende specs:
- Disk: 10 GiB / , 175 GiB /home , 512 MiB swap
- Memory: 2 GiB RAM
- CPU: 1 VCPU Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
Deze pagina is vooral bedoeld als documentatie voor mezelf.
Planning:
DONE 20090610: DNS TTL verlagen van amedee.be, vangasse.eu, dhertefelt.be bij Gandi.- BUSY 20090618: configuratie van intrepid².
DONE 20090620: configuratie testenDONE 20090621: migratie data van intrepid naar intrepid².DONE 20090622: DNS records aanpassen + TTL verhogen van amedee.be, vangasse.eu, dhertefelt.be, alle andere domeinen.DONE 20090622: web + mail testenDONE 20090629: services down op intrepid
Te installeren/configureren op de nieuwe server (intrepid²):
- admin
- IPv6
- firewall
- ssh
- openvpn
- backup: backup2l
- logging/monitoring
- web
- apache
- mysql
- php5
- phpmyadmin
- drupal
- mail
- postfix
- postgrey
- dovecot
- procmail
- fetchmail
Zie ook logging configuratiewijzigingen.
Drupal from scratch
Ik was helemaal niet tevreden van mijn huidige site, en bovendien draaide er nog een véél te oude Drupal-versie op. Dus: alles weg, en opnieuw beginnen met een schone lei. Hopelijk vind ik nu ook nog de inspiratie om effectief te bloggen.