Archive for November, 2009
Smokeping Alexa World Top 100 Web Sites 監控…
最近 NI 同仁提出了一個需求,需要能監控公司對 Alexa 上世界排名前 100 的網站的連線品質,因此用 Perl 寫了這支 Scripts,使用非常簡單,只要先在 smokeping 的 config 裡加上 @include /usr/local/smokeping/alexaworld,然後再把下面這支程式放到 Crontab 去跑,這樣就能夠動態的產生 World Top 100 的列表並由 Smokeping 監控了。
#!/usr/bin/perl # Smokeping Alexa World Top 100 Web Sites Configuration Generater # Jasont(AT)batlab.net 2009/11/17 use strict; use Encode; use LWP::Simple; use URI::URL; my $worldtop_url = "http://www.alexa.com/topsites/global;"; # Get WorldTop my $topid = 1; my @worldtops_name; my @worldtops_link; for ( my $i = 0; $i < 5; $i++ ) { my $url = url($worldtop_url.$i); my $page = get($url); if ( $page ) { Encode::from_to($page, "utf-8", "Big5"); my @lines = split('\n', $page); foreach ( @lines ) { if ( / \>\<strong\>(.*)\<\/strong\>\<\/a\> \<br\/>/ ) { $worldtops_name[$topid] = $1; next; } if ( /class=\"offsite\"\>(.*)\<\/a\>/ ) { $worldtops_link[$topid] = $1; $topid++; next; } } } } # Create Smokeping Config - WorldTop 100 `/bin/echo "+ WorldTop100\n\nmenu = WorldTop100\ntitle = Alexa World Top 100 Sites\n" > /tmp/alexaworld`; foreach my $index ( 1..$#worldtops_name ) { #print "$index: $worldtops_name[$index]\t$worldtops_link[$index]\n"; if ( $index%20 == 1 ) { my $indexdif = $index+19; `/bin/echo "++ Top\"$index\"-\"$indexdif\"\n\nmenu = WorldTop\"$index\"~\"$indexdif\"\ntitle = WorldTop\"$index\"~\"$indexdif\"\n" >> /tmp/alexaworld`; } `/bin/echo "+++ Top\"$index\"\n\nmenu = Top\"$index\"_$worldtops_link[$index]\ntitle = Top\"$index\"_$worldtops_link[$index]\nhost = $worldtops_link[$index]\n" >> /tmp/alexaworld`; } `/bin/cp -f /tmp/alexaworld /usr/local/smokeping/etc/`; `/bin/ps -ef|/bin/grep smokeping | /bin/grep FPing | /bin/awk '{ print "kill -1 "$2}' | /bin/sh`; exit;
虛到不能再虛…
上週和朋友去了一次全身筋絡按摩,特地還點了上次按過,覺得是有史以來最不保留用盡全力在按我的師父,雖然這次按完覺得沒有上次痛,自認為應該是身體比較好了,但是按完的這兩天真是有夠難過,全身筋骨都不對勁,昨天早上還打噴嚏打了一早上,是我的身體在調節勒,還是根本是我快感冒了。
昨天晚上特別穿了長袖睡覺,睡到早上是都很暖,但到公司中午吃完飯後又不對勁了,全身發熱酸軟,一整個覺得我應該快感冒了吧!痛苦的要命啊…..
看樣子下次我應該去按腳就好,全身這種事,我想真要的還是留給漂亮妹妹幫忙就好,我應該不適合這這硬底子的技術伺候….
狀況不佳,一直呈現一個混沌的情況在工作,非常有行屍走肉的感覺。
PPTP VPN Client 使用…
客戶最近買了 SoftLayer 的 CDN 服務,需要透過 VPN 連接來管理 Cache 上的檔案,因此提出了需要以 PPTP 連接 VPN 的需求。
PPTP 安裝和設定其實很簡單,Yum 裡是沒有 PPTP Client,所以要另外到 PPTP Client 去下載 RPM,安裝完以後設定也很簡單,只要利用 pptpsetup 指令就好,完全不需要自己慢慢編寫設定檔。
這次用了一天多的時間在搞這個,PPTP 主要的問題是他利用 GRE 協定來做傳輸溝通,但有些 Firewall 或 NAT 設備會不知道怎麼處理這些封包,導至無法順利和伺服器連接,這次我就遇到這問題了,照 PPTP Client Diagnosis Howto 裡講的,利用 TCP Dump 可以看出 GRE Packet 只有送出沒有回來,如果只單純用 pptp debug 會發現只有一直送出 LCP 的 Packet 訊息,但沒有 recv ,不過 A10 的設備上我找不到任何相關的設定,最後只好請廠商協助。
最後的正解就是因為 NAT 內的機器出去是帶設備的 Gateway IP,導至 GRE Packet 要回來時會不知道要繞給誰,因此把機器出去綁定到特定 IP,並且將除 TCP/UDP 外的一個其他類型的 Packet 都繞給這台,這樣就通了。
真是難用,相較於我那台 Linksys + Tomato 都還沒這問題。
Apache2 Virtual Host Log 送到 Log Server 上…
Log Server 是使用 Syslog-ng,怎麼安裝和使用就不贅述了,因為之前在公司用的時候還是 2.x 版,裝的時候會需要使用到 eventlog ,但裝的時候會遇到跟你說找不到 pkg_config ,所以需要下下面這行指令(太久沒用安裝的文件也不知飛去那,害我又用了大神搜尋了一下)。
export PKG_CONFIG_PATH=/usr/local/eventlog/lib/pkgconfig
而 Apache2 要將 access_log 與 error_log 送到 log server,都需要透過 logger 這支程式來代轉,目前的做法是下面這樣,把 log 送給 local0 的 level 去,error 就當 err,accesslog 就當 info 來處理,主要要注意的是 -t 後面接的參數,這是之後在 syslog-ng 裡,要用來設定 filter 的 program 欄位,這樣才有辦法辨別是那個 vh 來的 log。
ErrorLog “|/usr/bin/logger -t apache_batlab -p local0.err”
CustomLog “|/usr/bin/logger -t apache_batlab -p local0.info” combined env=!dontlog
後面那個 env=!dontlog 主要是因為 apache2 會有檢查 proccess 之類的 function 會產生一堆對本機的連線,在 log 裡會一直跑,所以在 httpd.conf 裡設定下面這個把他過濾掉,
SetEnvIf Remote_Addr “::1″ dontlog
最後就是在 /etc/syslog.conf 裡,要把 local0.none 設定加到 /var/log/messages 那行,不然本地也會一直把 access_log 寫到本地檔去,然後再加上下面這樣。
local0.* @ip_of_logserver
把 source host 的 syslog 重啟,就可以囉!
SkyDrive Explorer…
之前使用 Dropbox,方便是他的 Client 端可以整合進檔案總管,可以直接像目錄方式來進行使用,唯一美中不足的是免費的只有 2.5G 的空間,其實有點少,看一看電腦裡光案子的東西就要 5G 多,更別提相片留底的部份。
微軟的 Live 裡有個 SkyDrive 空間,一個人有 25G 的空間,不過只有 Web Based,而 SkyDrive Explorer 就是一個類似 Dropbox Client 端的免費軟體,一樣可以整合進檔案總管,但是是針對 SkyDrive 的,因此使用了這個,就可以把 Dropbox 丟掉了,一下子從 2.5G 升級到 25G,Dropbox 50G 每個月要 $9.99 ,算台幣大概要三百五,25G 等於一百七十左右,換用 SkyDriver 就幫我省下了一百七啊!
應該要認真考慮 Donate 給作者一點的。
SkyDrive Explorer 網址:http://skydriveexplorer.com/
Update:我還是用回 Dropbox,Skydrive 會卡住,有時後要丟檔會自己關掉視窗然後就沒上傳,超怪…