2016年2月29日 星期一

wordpress.com

內容管理系統 (CMS, Content Management System) 像 Wordpress,Joomla!,Drupal這些軟體,拿來建網站挺方便的,但運行久了,還是得面對維護,安全性升級,穩定性問題。不少Container based PaaS (Platform as a Service,平台即服務的雲架構) 建起網站來超快,像Red Hat OpenShift,Parallels OpenVZ 等等,因為實在太方便了,更容易讓MIS產生好簡單沒問題的錯覺。

最近就看到一例自建Wordpress,基礎系統PHP被換掉一大半,植入一堆怪異連結,不知道是版本太舊還是外掛漏洞造成。真是...不知道改用SaaS (Software as a Service,軟體即服務的雲架構),像是Wordpress自家的 wordpress.com,乾脆連網站軟體都給人家管起來,會不會有更好的維護效益呢?

d20 system

d20是二十面骰,Wizards of the Coast 所提倡的 d20 system的主要檢定道具,以 Open Game License釋出。骰子這東西挺有趣的,以前我沒特別留意它的意義,而比較偏好deterministic (決定性) 的流程或系統,像紙牌,棋藝之類的。但其實這個世界的構成,對人來說,比較是probabilistic (機率性)的,而擲骰子能時時提醒自己,順天應人,像明代大儒方孝孺「深慮論」講的那樣,才是正道啊。

d20 system 是一套簡化的世界建構規則,算是經典TRPG--龍與地下城(D&D)的簡化版,從中或能啟發相當的系統建制的idea喔。可以花點時間看看。六大屬性,人物,技能,裝備,都相當具有巧思。卻又能簡化為d20,真是有簡約之美 : )

Revised (v.3.5) System Reference Document
http://www.wizards.com/default.asp?x=d20/article/srd35

2016年2月27日 星期六

新媒體時代的契機(節錄)

二十一世紀伊始,「新媒體」的火苗已在美國延燒。上個世紀末,「Napster 音樂分享服務」開了第一槍,讓音樂CD大量轉換成mp3數位檔案,在網際網路廣泛流傳。雖點燃了前所未見的大規模侵權爭議,卻也極大的影響了人們使用網路與媒體的習慣。Apple公司乘勢而起,用「iTunes音樂服務」綁定「iPod音樂播放器」,發展出一套全新的銷售模式:訂閱我的服務,我就把媒體內容 (歌曲) 用網路直接播送給你,內容隨選,不必再依賴實體媒介 (光碟片) 。2007年又激起另一波高潮,第一代iPhone與Android智慧型手機先後發表,往後數年,App Store也藉由智慧手機的綁定,賣出了大量的App與音樂,讓稱霸市場已久的BlackBerry黑莓機黯然失色,老牌手機大廠Nokia默默退場。2010年,第一代iPad以十吋智慧平板姿態亮相,用相同的綁定模式席捲需要更大螢幕的行動影音與書籍市場, 再度售出大量的線上影音與書籍,撼動了傳統租片與書店生態。自此而後,不同大小多種款式的智慧手機與平板紛紛推出,在最近五年中快速改變了大家的玩樂,閱讀,與收視習慣。Apple與Google也以各自的App Store與Play Store線上商店,盤踞了絕大多數的「行動應用」市場。

「電視應用」市場在這段期間也沒有閒著。2008年,目前市佔第一的美國機上盒製造商Roku,攜手線上租片服務Netflix,推出其第一代線上影音機上盒。隨著新媒體技術的突飛猛進,以及民眾被App Store改變的生活習慣,大廠們也紛紛推出自家的電視應用,如Apple TV,Google Chromecast,Fire TV, Android TV 等等,機上盒愈做愈小,功能也愈做愈多。線上片商除Netflix之外,Hulu, Amazon也各自打出了一片天,在電影,戲劇,原創影集等等領域各領風騷。傳統的電視業者,也在影音數位化的國家政策推動下,自行推出各自的機上盒加入戰局。台灣的廣電數位匯流雖晚於歐美,但從中華電信經營多年的MOD開始,到近年有線系統台的紛紛數位化,到Apple TV,Google Chromcast 在本地逐步的打開市場,再到Netflix於今年初正式登台服務,也算跟上了數位匯流的全球浪潮。

另外值得一提的是社交平台服務,如 Facebook (臉書),Twitter (推特),LINE,YouTube 等等,也隨著「行動應用」的普及,自成一幫新興媒體的山頭。除了YouTube本來就只經營影音之外,其他平台在經營了自家的圖文服務幾年後,也紛紛推出影音分享服務。「社群媒體」的勢力,在新媒體百家爭鳴的今日,也成了一股不可小覷的力量。

新媒體給全世界帶來了什麼?簡言之,視聽選擇的自由。國家地理的藩籬,資訊流通的管制,政府財團的壟斷,面對五花八門目不暇給的各種各樣新穎技術,都擋不住新媒體平台無所不在的傳播效應。新媒體基於網際網路的開放本質,為世界奠定了全面溝通的傳播技術平台。民眾通過新媒體平台,能夠找到更合用的資訊,能夠更全面的掌握事實真相,也就能夠為自己與家人選擇幸福的未來。

其實,不管時代怎麼變,技術怎麼演進,不變的傳媒價值仍是 "Content is King” (內容為王)。傳統媒介主宰的時代,Content 容易妥協於政商的壟斷,而新媒體興起的年代,Content 容易隨著技術更新而起舞,同樣不易守住自身的媒體價值定位。時代在變,技術在變,我們期許:傳媒價值恆久不變,為閱聽大眾守住良善與真實的底線。

(版權所有,轉載請註明出處)

2016年2月25日 星期四

LINE analysis, part 3

用 Google Analytics來追蹤特定URL超方便的。行為->網站內容->所有網頁,輸入你設的關鍵字如LINE或PTT,就一目瞭然了。

LINE analysis, part 2

用特定URL來追蹤LINE,或是其他也難以追蹤的來源,會是有效的方法。產生特定URL的做法可以很簡單,例如在html後綴加上 html?LINE 之類的關鍵字,分析web log時,抓出關鍵字就可以抓出瀏覽量啦。

其他熱門網站像PTT也可以仿照此法。如果不設計這種URL,用client app來抓是相對麻煩且不精確的喔。

trace vs analytics

在系統開發團隊中,若能很好的協調寫code的人做trace,分析的人統計結果,應該就能像數學極限一樣,在x軸由小到大,由大到小,雙向收斂而求解了吧。這會比單向努力要省事的多。

  • 從分析結果中,Time series分析系統測試或上線的出錯率,從次數,種類,嚴重性等面向,小結應該trace的地方。這是從結果往原因推。
  • coder在程式碼中加更多trace,從邏輯中導出可能的原因,並修正之。
  • analytics再從修正版本中,監測結果是否有所改善,再回推進一步修正的方向。

2016年2月23日 星期二

visual ping & traceroute

要查Internet問題,ping與traceroute必不可少。若能加上視覺輔助,如統計值呈現,國別呈現等等,能大大加快解決問題的效率。

ping工具的圖形化蠻普及的。cmd看個十幾行還可以腦補一下平均狀態,次數多了還是看一下statistics吧。

traceroute能反解DNS並顯示國別的話,比較容易看出是哪國哪家ISP的問題。

更乾脆的就是顯示visual route,從世界的觀點看你的問題。不過可能會失去很多細節,簡報是挺好用挺大氣的。

2016年2月22日 星期一

Check_MK RAW edition, part 4.

Check_MK的一個好處就是結構單純,不用資料庫,就是一堆文字檔來設定,並且用超有效率的RRD來儲存data。RRD對質性分析(qualitative analysis)已足矣,真要留存原始資料自己寫script導出存檔(相信我,90%以上情況你不需要,我自己做分析都很夠用了)。而文字檔設定則是很Unix-like style,MIS維護很方便,至於效能...上百台都還不錯,更多就不知道了。

設定檔都是以*.mk結尾的,從主要設定檔main.mk,到autochecks抓到的還有一堆*.mk,自己到Multisite目錄下的 ~/etc/ 可以找到他們。記得改完後要跑一下 cmk -R,因為Check_MK使用的Nagios核心也需要更新規則,不然mk改完後不會生效喔。

2016年2月21日 星期日

FIN_WAIT不結束?

以前一直困擾著,一些daemon強制結束後,卻無法再啟動,原因是port一直被佔用。昨天無意netstat看一下,發現FIN的狀態一直不結束,才想起來:那麼是否強制關掉另一端發FIN的daemon,就可以解決佔用問題啦?

結果確實如此。以前都是重開機其中一端,現在就是重啟兩端daemon,就好啦。

VDI deployment

VDI (Virtual Desktop Infrastructure),好幾年前就在Citrix那兒聽過,就是想讓使用者遠端連入VM桌面,用起來像本機一樣。就比server虛擬化要多了:

  • video / audio output 要好用。
  • usb 等等外接設備要能接上。

以前用過Red Hat免費的SPICE,A/V的即時效果確實令人驚艷,而USB的遠端接入當時還在開發中。不過在雲端服務發達的今日,VDI沒有USB外接好像也不是那麼重要了,並且網速也逐增快,若不跑A/V相關應用的話,一般的remote desktop展開到全螢幕,跑起來也很有VDI的fu嘛。這樣,用一台先進的Netbook如ChromeOS,或舊款的PC,遠端桌面連進一台Windows 10 VM去作業,就達到 Console ----> VDI 這種架構啦。(咦,Microsoft當年好像就是推他家的遠端桌面作為VDI?)

Check_MK RAW edition, part 3.

Splunk標榜自己可以為客戶提供Operational Intelligence,其維運智慧來自於大量log在時間上的correlation analysis,即時間序列(Time series)上的相關分析。應該也稱的上是人工智慧的某種基本型態吧,畢竟 Time series 可以推論因果與關聯性,挺像人的基本思考模式的。

把多台Check_MK的logwatch打開後,警告訊息會集中出現在Multisite介面的中央Service  Problems與Events of recent 4 hours。就很方便比對同一時間,不同主機不同嚴重程度的log。雖然不像Splunk還可以用SPL(Splunk Processing Language),進一步批次分析相關log,Multisite的這種時間集中警示,對小家碧玉的系統debug算是很夠用啦。畢竟一行SPL都沒花時間寫,就可以做基本的Time series analysis呢,呵呵。

2016年2月19日 星期五

BSD on AWS

想在AWS用BSD的話,目前只有FreeBSD的AMI在Market place可供選擇,是由FreeBSD的團隊提供的。除非是要跑BSD kernel獨有的pf之類的功能,不然userland的東西,大可用Ubuntu或CentOS的AMI來跑。但若要移入現有BSD的ftp-proxy服務的話,還是得用FreeBSD啟用pf anchor的方式來實現。
  • 在 /etc/rc.conf 新增 pf_enable=YES。
  • vi /etc/pf.conf。至少新增一行pass。預設是keep state的。
  • reboot. pf should be enabled.

Check_MK RAW edition, part 2.

logwatch是另一個很重要的功能,要debug 應用程式主要靠他。Splunk也是著重在log分析的。Windows因為有集中式的event log 即事件檢視器的管理,Check_MK的auto discovery可以自動新增監測項目。而Unix-like就要自己手動新增了。
  1. 到左欄底 WATO configuration 的 Monitoring Agents 中,下載 logwatch.cfg 與 mk_logwatch。cfg丟進被監測主機的 /etc/check_mk,而mk_logwatch則丟進 /usr/lib/check_mk_agent/plugins/。
  2.  vi logwatch.cfg,照裡面的範例增加被監測的log檔案。該主機的Check_MK Discovery就會提醒你要新增監測項目啦。
  3. Log警示管理也很方便。當警告出現在右欄Service Problems中,在Icons會有一個Open Log的圖示,讀完或處理完Log所示問題後,可選擇Clear log。

2016年2月18日 星期四

LINE analysis

若用LINE app打開網址閱讀,在web server log可以看到記錄,會顯示出 Safari 以及 Line 版本號,例如5.9之類的。然而,只能track到iOS如iPhone, iPad的log,卻不能track到Android的。這應該是因為iOS是in-app呼叫mobile safari,而非open-as,但Android卻是直接用另一個瀏覽器app,例如Chrome來打開。唉,這樣就增加分析的難度了。只能略估:

  • 針對LINE用戶發送特定URL來追蹤行銷成效,就像特定的電話號碼放在電視廣告那樣。精準但很麻煩。
  • 用全站或特定類別內容的Android/iOS比例推算。不精確,需要多抓一些比例才估的校準。例如八十比二十,這通常是台灣用戶的比例。

2016年2月15日 星期一

Check_MK RAW edition, part 1.

到Check_MK官網 (http://mathias-kettner.com/check_mk.html) 下載安裝 Raw Edition,就可以開始增加被監測主機了。

  • 登入multisite後,左欄下捲到底端的WATO Configuration。
  • 進入Monitoring Agents,下載給被監測主機的agent,Linux rpm, deb, Windows msi應有盡有。上傳到該主機並安裝之,agent使用的預設埠位為6556。記得該主機防火牆要開放通行。
  • 回到WATO,進入Hosts -> New Host,填上Hostname,勾IP address,勾Agent Type選預設Check_MK,Save & goto Services後,auto discovery就會自動掃出一堆監測項目啦。Save後就完成了!

Windows Internals Training

想照RHCE的深度訓練來教Windows,Windows Internals是很好的教材。System Administration (RH133) 的對應大綱如下:
  • Filesystem management (Ch. 12).
  • Startup & Shutdown (Ch. 5)
  • Management Mechanisms (Ch. 4, 8)
  • Networking (Ch. 13)
  • Kernel & System Architecture (Ch. 2)

2016年2月13日 星期六

IT監控系統的選擇(續)

承上篇,若從人力財力的角度來分類,可以得出以下小結:


  • 有錢有人,可以考慮發展Splunk,或Nagios XI,或Zabbix。就根據組織對彈性與內建功能之間的平衡如何拿捏了。
  • 有錢沒人,可能從內建較完整的Zabbix開始吧。雖然Splunk可以包給廠商做,但要刻的東西不少喔,沒人後續維護的話,會很麻煩。
  • 沒錢有人,Cacti,或Nagios,或Check_MK,接著再花人力刻出要的功能吧。或是直接用Zabbix應該也行,但系統資源要比較夠力一點。
  • 沒錢沒人,大概只剩Check_MK的自動功能可依賴了,而且他基於Nagios的本質,資源消耗也較少。若監測的環境較小,Cacti或Nagios的少量template也堪用。

2016年2月12日 星期五

IT監控系統的選擇

選擇的依據,不外乎:公司要求的,自己喜歡的,人力與財力負擔得起的。總之,最後還是用的順手最重要,以確實達到即時「監控」的目標。

  • 公司要求的
公司已經有既定的傳統,就照著發揚光大吧。主要原因,是該系統的know how應該已經累積不少了,客製化監測,教育訓練,作業SOP等等,這些都需要時間去建置,並且不容易直接從外部導入的珍貴資產。

  • 自己喜歡的
你會看這篇文章,大概因為你是被指定要建置監控系統的承辦人。那麼為了讓這件工作更有趣,找個自己喜歡的系統玩玩吧。至少自己喜歡,學習跟維護的熱情會比較大,這也是系統能夠成功的關鍵因素之一。

  • 人力與財力負擔得起的
公司的規模,老闆的口袋,團隊的質量,都直接影響到IT監控系統的選擇。就像開船一樣,大船承載能力強,但需要水手多,耗材多,而小船雖然成本都低,但承載力不盡人意。從管理的角度來抓出最適當的平衡,就很重要了。


以下就從這個面向,來談談幾個我用過的系統。

  • Cacti
很多網管是從這個入門的。他最大的優點是資料視覺化 (data visualization) 很方便,並且使用RRD作為資料格式,儲存空間需求低,對於需要進階分析 (analytics) 的團隊很好用。然而他 data fetching (採資料) 的能力稍弱,主要靠SNMP,還有自己客製的script。這是兩大煩惱:SNMP template 很多需要自己刻 (有團隊就派給專人刻),寫script也要花時間 (有專人最好),可怕的是當你監測很多主機時,script的效率,Cacti的負載就面臨考驗了。所以最好是把 data fetching 交給別的系統做,Cacti做好最擅長的 visualization 就可以了。

那麼 SNMP template 可以考慮嗎?見仁見智,如果你用過能夠做 auto discovery (自動列舉) 的系統,大概就不想自己刻了。並且 SNMP 是否足夠安全,也是需要考量的。有些系統則是發展自己的 agent (代理程式),既有自己的傳輸協定,又能像SNMP一樣大把抓資料。以下要談到的系統,通通有agent可以用。

  • Splunk
有錢有人的話,Splunk是個很好的選擇。他的 log analyzing (log分析) 很強,又可以分散式部署,visualization也很好用,template也一大堆,客製的彈性也大,社群與商業支援也很多,你能想到的他大概都想到了。但Splunk就是得花錢買,而且要調的東西很多,不是自己僱人做就是買人家的support,而且主機資源也不能太少, Splunk agent (Universal Forwarder) 跟主程式都要夠力的硬體才跑的好,畢竟他要做的事情很多很全面嘛。

  • Nagios

想打好自己做監控的基礎,Nagios不可或缺。沒摸過的話,市面的書不少,先抓幾本來看,不要急著裝起來。Nagios的設計有極簡約的美,core, plugins 各自做好自己的事,但若你不瞭解他的運作原理,裝起來只會呆掉無從下手。Nagios能調的地方非常多,外掛的功能也超多,就怕你自己不知道要監測什麼--沒錯,你得先規劃好自己的監測架構才行,然後才用Nagios組合出你要的架構,就像堆積木一樣。美中不足的是,Nagios 著眼在警報,若你想要 visualization,一定得自己外掛。如果你沒時間想沒時間做,不建議用Nagios Core,而是用商業版的Nagios XI,或Check_MK,這些基於Nagios但已經幫你架構好的監控系統。

Nagios也有個好用的 agent 叫 NRPE,很輕量,但你也得自己告訴他要去check什麼東西才行。 總的來說,Nagios的優點就是到處都能調。

  • Check_MK
如果你想要輕量如Nagios,又沒時間從頭做,Check_MK會是很好的選擇。他在Nagios的基礎上,掛好了RRD的data fetching與visualization的功能,並且也有自己的agent,會幫你做auto discovery,自動列舉主機需要監控的項目。支援的OS種類繁多,也支援SNMP亦有auto discovery (弱一些)。可惜的是文件不多,得自己K官網文件與系統說明了。

若想進一步客製化圖表,把RRD導給Cacti進一步處理,會是不錯的做法。
  • Zabbix
這個系統我是最近才裝起來看的。功能很多,能調的東西也很多,agent也有,不愧其名號 enterprise-class open source monitoring solution。但是啊,既然是enterprise,就算系統不花錢,僱人來調來維護也是必要的。這樣的話,用Nagios不就更有彈性嗎?若還有點預算,買Splunk不更全面嗎?若主機少一些,Cacti的SNMP大概就堪用了。所以,這個系統尚在觀察中,至少其龐雜的體系,值得其他系統借鑒。要說內建功能最完整的監控系統,Zabbix應該當之無愧。端看你是要彈性,還是內建功能齊全。