2018年3月29日 星期四

[經驗分享]開源知識管理平台 - BookStackApp



在專業領域精進的過程中,經驗的累積極其重要,從中可以淬取精華重新加以梳理之後整理成冊,做為後進者的操作指引。

而團隊作業或是企業經營,這樣的知識管理可以做為技能傳承,減少學習的時間;資料隨時查閱與同步,確保所有人使用的是最新版本。

在個人使用,則可當做自身的筆記資料,隨時回頭查閱。



需要項目


我在 2008 年開始導入知識管理平台,當時評估套件的重點項目如下:
  • 具有繁體中文介面,這一點根本是天條
  • 具有權限管理功能
  • 具有視覺化編輯器 (WYSIWYG),以降低使用者上手門檻
  • 支援目錄功能,以方便內容較多的知識可以快速翻閱
  • 支援匯出 PDF、HTML 等格式,方便傳送以及列印
  • 支援 LDAP/AD 驗證,達成單一簽入
  • 支援 Code Block,以便於程式碼內容閱讀
  • 支援插入圖片、附檔
  • 支援留言與回覆功能
  • 支援歷史版本功能
  • 支援標籤 (Tag) 功能



市面方案


在當時來說,我最一開始看到的方案,是它。




微軟產品的好處是上手容易,也方便與其它 Windows 系統搭配使用。










當時在比較階段,國內幾款也在我的名單之中,其中最讓我有興趣試試的是新人類資訊的 WebISO,具有文件管理與知識管理功能,操作介面也相當不錯。

但是,這幾套系統的價格費用都不低,所以我都用不起。





沒錢方案


沒錯,花錢能解決問題,但是承襲我過去的文章,各位都知道問題在那裡,一刀斃命。


這張投影片真好用,一次製作常常用到(誤)



山不轉路轉,路不轉人轉。

咱們改走開源軟體這條路。




開源方案一


最早在評估時是以 WebISO 為目標,所以首先找到的方案是它。




它功能眾多,介面看起來亦很專業... 用著用著發現社群版少了很多重要功能,果斷放棄。




開源方案二


接下來改變方向,以 Wiki 式的系統為主,所以陸續找到了幾款 Wiki Like 的平台。




既然說是 Wiki 式的系統,第一個當然看的是維基百科所採用的 MediaWiki。

不過在當時,他的功能還是以 Wiki 的 Code 語法來寫,在視覺化編輯還沒有良好支援,所以也捨棄它。



繼續尋找,終於讓我找到一套既是開源,功能又強大的套件了。




這一套 MindTouch Core 功能完整,模組豐富。有趣的是,雖然我把他安裝在 Linux 上,但他所運作的環境是 PHP 搭配 C#,很有意思。

用他做為研發知識庫使用非常理想,系統也很穩定,已經使用許多年。

不過看到這裡先不要高興,因為 MindTouch Core 社群版收起來了。





開源方案三


MindTouch Core 已經不再維護,原有架好的系統雖然還能繼續使用,但總是不太安心。




在評估了多款開源套件之後,暫時選定了 XWiki 做為下一個替代方案。

但我後來也沒有用他,除了運作效率較差以外,其它是有些功能用起來有點問題,或是我需要的功能剛好就是缺了那麼一點。

這並不代表 XWiki 不好,只是剛好我需要的他缺少。




開源方案四


天無絕人之路,亦可以說是絕處逢生,又或者是運氣不錯,2018 年找到了。



目前我已確定採用 BookStackApp 做為下一代的知識管理平台,它可以符合開頭我所列出的需求,操作介面也相當美觀與簡潔,這傢伙根本是為了我而開發的吧 (笑)

補充 BookStackApp 其它說明:

  • 自由與開源軟體,採 MIT 授權
  • 具有 MarkDown 編輯器,以免除研發者習慣轉換
  • 繁體中文介面我已製作 70%,近期會放上 Github
  • 整合外部驗證機制,包含 Github、Google、Slack、AzureAD... 等
  • 以「書本-章節-頁面」為知識建構的模式,適合收納相關內容以及閱讀習慣



功能:書本翻閱


進入系統後,最常用的就是書本清單,可以查看平台上已有的撰寫好的知識書本。

書本檢視



點選任意一本進入後,即可看到此書的介紹、章節與頁面資訊。

翻閱書本


依據想要查看的內容,點選章節或頁面,即可到達相關的知識內容。

查看頁面內容






功能:內容編輯


在頁面按下編輯後,即可切換至視覺畫編輯器模式(或是 MarkDown 編輯器,以設定為主)。

內容編輯


這個操作畫面清爽簡單,稍有文書概念者都能操作,對一般使用者來說並不困難,容易推行。

除了基本的圖文功能,BookStackApp 整合了 Draw.io 這款優秀的線上流程圖繪製工具,用起來幾乎就如在同一個系統內的無縫體驗。

點選視覺化編輯器上的流程圖按鈕,即會自動帶出 draw.io 的繪製畫面,當繪製完成以後按下存檔,內容就出現在我們的內容裡了。


整合 draw.io 繪製工具


內嵌 draw.io 繪製圖表


如果想要回頭編修流程圖,隨時在嵌入的流程圖上點兩下,立刻帶出 draw.io 繪製工具讓您進行修改。



功能:文件匯出


在知識傳遞上,總會有文件提交或是印製成冊的需求,在這部份 BookStackApp 也沒缺少,目前支援 PDF 文件檔、HTML 網頁檔、CSV 文字檔三種。

匯出為 HTML 網頁檔


匯出 HTML 網頁檔為例,所匯出的是單一檔案,圖片內嵌,而且支援了書本的目錄功能,直接點選就可以跳至相關章節或頁面,極其方便!

如果是匯出 PDF,還會有頁碼、版本、編修者等資訊,不過目前的版本匯出 PDF 後中文內容有問題,我還在修正中,待完成後會與繁體中文化一併釋出。




功能:繁體中文


官方版本雖然有內建中文,但它是簡體中文,對我們來說還是少了親切感。

增加繁體中文選擇


目前我正在製作繁體中文語系檔,待成熟度較高後會置於 Github 分享。




結論


我們使用 Wiki 式的知識管理多年,都已經具有高黏著度,在團隊作業下更是資料共通的重要系統。

在沒有經費的情況下,只要多花點心思與時間,總是能找到屬於你的開源套件,沒有好不好用,只有適不適合。






2018年3月21日 星期三

[套件更新]Inkscape 0.92.3 改善 Windows 版啟動過慢問題


Inkscape 在 Windows 環境下使用,一直有個因某些字形造成啟動過久的問題,困擾許久。

這個問題已經在 0.92.3 修復,原因出在第三方 fontconfig 函式庫。

更新以後,啟動幾乎是秒開,強烈建議更新。



參考資料

2018年3月16日 星期五

[套件分享]開源跨平台資料庫複寫軟體 - SymmetricDS


過去幾年有關注過 SymmetricDS 這一套資料庫複寫軟體,隨著時間推進版本提升不少,目前已經來到 3.9.0 版,漸漸成熟。


功能介紹

SymmetricDS 是資料庫複寫為主的軟體,重點功能:
  • 跨平台
  • 多執行緒設計
  • 自動回復機制
  • 交易處理
  • 支援多 Master
  • 傳輸時做篩選、轉換 
  • 以資料表為主的模式
  • 支援 Push 或 Pull 兩種傳輸模式
  • 採用 HTTP/HTTPS 傳輸
  • 提供 API


對於不支援複寫的資料庫系統,可以透過 SymmetricDS 來達到需求,或是因為特殊應用(如自訂多主多從)、授權費用議題。

同步機制提供 Push 與 Pull 兩種,對於不同的效能要求、資料即時或網路環境來活用,創造彈性。






異質整合


更棒的是,它也支援異質資料庫同步,大大提升資料庫架構設計的彈性。

依據官網所述,目前支援的資料庫項目有:
  • Amazon Redshift
  • Apache Derby
  • Apache Ignite
  • Firebird
  • Greenplum
  • DB2 for LUW
  • DB2 for i
  • DB2 for z/OS
  • H2
  • HSQLDB
  • Informix
  • Interbase
  • MariaDB
  • MongoDB
  • MySQL
  • NuoDB
  • Oracle
  • PostgreSQL
  • SQL Anywhere
  • SQL Server
  • SQL Server Azure
  • SQLite
  • Sybase ASE
  • Tibero
  • VoltDB

我想...在大部份情況下,應該夠用了吧。

我們可以假設一種場景,客戶希望主要的資料庫使用知名品牌,例如 Oracle、SQLServer 等,但複寫目標端因為經費不夠,採用開源的資料庫系統如 MariaDB、PostgreSQL。

在過去,可能會自行開發資料庫同步程式解決,但有了 SymmetricDS 之後,我們可以很容易的解決這個難題。



參考資料

2018年2月11日 星期日

[經驗分享]LibreOffice 功能推薦:記事本工具列 (Notebook Bar)



LibreOffice 是做為取代 Microsoft Office 的良好方案,但對於已經非常習慣  Ribbon 介面的我而言,沒有 Ribbon 確實會造成工作效率的降低,不得不說 Ribbon 介面設計極其優秀,一旦上手效率增進好幾倍,源自於我的使用經驗談。



Microsoft Office Ribbon


幸好 LibreOffice 開發團隊早就已經想到這件事,在 LibreOffice 5.x 版的時候已經以試驗性功能存在,名為「記事本工具列 / Notebook Bar」,使用者可以自行開啟但尚不完整,容易造成軟體崩潰或是許多按鈕缺少圖示。

在最新的 LibreOffice 6.0 開始,穩定度大幅提升,圖示也增加更多了,雖然仍然被放在試驗性功能裡,我已經開始使用它。



如何開啟



註:以下採用 Windows 版做為說明。

開啟 LibreOffice 任何一款編輯器(如 Writer),功能表 [工具] > [選項]


進入 LibreOffice 設定選項



開啟選項視窗後,左側 [進階],右側勾選 [啟用試驗性功能],按下 [確定],此時會要求重新啟動 LibreOffice,請依指示重新啟動。


啟用試驗性功能選項



重新啟動後,功能表 [檢視] > [工具列版面配置] > [記事本工具列],即可切換過去。






畫面展示


開啟完成後,就可以開始體驗「記事本工具列」(Notebook Bar) 啦!

Windows 版畫面



LibreOffice Writer 啟用「記事本工具列」




LibreOffice Calc 啟用「記事本工具列」




macOS 版畫面


LibreOffice Writer 啟用「記事本工具列」


LibreOffice Calc 啟用「記事本工具列」




2018年1月24日 星期三

[重磅新貨]開源郵件閘道伺服器 - Proxmox Mail Gateway



看到「PROXMOX」,大家第一個想法應該都是開源伺服器虛擬化平台 Proxmox VE 吧?

但事實上,這家開發商的「Proxmox Mail Gateway」才是真正的主力產品,郵件閘道伺服器器,簡稱「PMG」。

在過去,這套 PMG 本來是收費商品,但是... 直到來了這封信。

官方來信

就在昨天,官方宣布將 PMG 也變成開源專案,也就是說各位有了一款開源且又專業的郵件閘道器可以使用啦!


功能介紹


郵件閘道配置示意圖



做為一個商業方案,PMG 具有完整的郵件閘道功能項目:

  • 防病毒郵件
    基於 ClamAV 與 Google Safe Browsing 資料庫。
      
  • 防垃圾郵件
    以多種特徵方式與加權評分模式,確保垃圾郵件的判斷高精準度。
      
  • SMTP 收件檢測
    檢查收件者是否存在,可以避免郵件伺服器收下大量垃圾信件與資源耗損。
      
  • SPF 記錄檢測
    支援 SPF 機制可以驗證寄件人 IP 正確性,避免偽造來源的信件進入。
      
  • DNS 黑名單檢測
    參考網路上已公布的 IP 黑名單,阻擋可疑來源 IP 寄發的信件。
      
  • 自動學習過濾機制
    依據被判斷成垃圾郵件中經常出現的字眼,經過資料累積與訓練後列入條件使用,自動提升精準率。
      
  • 可疑 Uri 即時清單機制
    主要是針對電子郵件中的網站連結檢測,預先擋下可疑的網址。
      
  • 追蹤記錄中心
    提供郵件歷程與記錄查詢,對於管理員來說幾乎是必備功能,PMG 提供了詳細的資料機制,這個追蹤記錄中心支援 LDAP 驗證,開放使用者進入查詢自己的郵件變的更加容易。
      
  • 高可用性叢集
    提升郵件閘道器的運作可用性,也可以作為負載平衡機制使用。



在安裝使用上,PMG 的彈性更大,官方表示可以支援以下平台:

  • Proxmox VE (VM/CT)
  • VMware vSphere
  • Hyper-V
  • KVM
  • Virtual Box
  • Citrix XenServer
  • 任何一種基於 Debian Linux 的 Guest OS


理所當然的 Proxmox VE 放在第一順位,因為是同一家產品嘛!



畫面範例


在最新版本,PMG 介面已經與 Proxmox VE 介面一致,全網頁式管理介面,所以已經熟悉 Proxmox VE 的朋友,使用起來是再輕鬆不過了。


管理儀表版



追蹤記錄中心


參考資料





註:我曾幫客戶導過 PMG 搭配 Zimbra,非常推薦!


2017年12月31日 星期日

[工具推薦]開源記錄即時分析系統 - Graylog




資訊系統每日產生海量的記錄,主機數量也不少,如果沒有良好的集中管理機制,想要從中找到線索,無異於海底撈針。

在很多年以前,我就因此困擾不已,所以需要搭配好的工具加以輔助。


商業方案


有的,下面這一套就是我當時最喜歡的解決方案。(當然,現在還是)





毫不猶豫,Splunk 絕對是記錄分析界中的第一把交椅,功能強大、外掛眾多,不愧其號稱「Log 界的 Google」。

不過,Splunk 的計價模式也是驚人的名列前茅,但又很想用怎麼辦呢?沒關係,他有提供每日 500MB 流量的免費版本。(其實 500MB 一下子就滿了.....)

除此之外,還有另一家國際大廠也有類似產品,然而 Splunk 太過耀眼,相比之下稍微暗淡,但仍然是一款極好的產品。




其實,國內也有廠商開發出同類型的優秀產品。



儘管如此,這類產品的費用仍然較高,有些更是以流量計價的,如果流量過高買不起怎麼辦?


這張投影片真好用,一次製作常常用到(誤)




時機不好,穩穩的做吧,尤其是 Splunk 的流量方案,費用非常驚人。




開源軟體方案


別擔心,開源軟體方案依然為您點了一盞明燈,指引您通往偉大的寶藏。





在開源軟體陣營中,有許多套件分別具有不同的能力,將其組合起來可以收到接近的效果。

例如經典的「ELK」組合,Elasticsearch + Logstash + Kibana









這裡有幾篇我當時參考的文章:


引用最後一個網站的圖片來看看效果:






在好幾年前我有使用,這三個套套件分別負責資料搜集、搜尋分析、介面功能,但是在架設與整合上比較繁雜,用了一段時間後我就沒有再繼續使用。


後來找著找著,本人運氣實在是不錯,讓我找到另一個套件 Graylog2。

現在新的版本把「2」給拿掉,名字為「Graylog」。



Graylog 簡單來說,可以看成是「Splunk 替代版」,很多功能項目設計與 Splunk 使用上非常相似,對於喜愛使用 Splunk 的我來說,幾乎是無痛轉換。

更有趣的是,Graylog 還特別推出了「Graylog Plugin for Splunk」,讓 Graylog 與 Splunk 的記錄可以介接。



重點功能展示

Graylog 安裝容易,功能也眾多,直接看圖。


記錄查看頁面


記錄


介面上分為三大區塊,上方是搜尋列,左方是欄位選擇區,右方是結果列表。

[搜尋列]
可以用多種時間區段選擇,搜尋列可以使用專用語法來增加搜尋的彈性,其實有點類似 SQL Query。

[欄位區]
可以決定要顯示那些欄位,或是針對特定欄位結果直接呈現為「Quick Value」排行榜或圖表,單鍵點擊就能完成。

[結果列表]
上半部是時間軸圖表,可以一眼看出那些時間點的異常狀況,可以直接在上面拖拉選擇就直接代入時間搜尋條件。
結果列表下半部,點選任一個欄位結果,都可以自動帶入搜尋條件裡,再往下做更深入的篩選。


Quick Value 快速總覽



所以,我們可以將許多不同裝置的 Log 都收集到 Gralyog 中,再透過關鍵欄位就可以立即串出整個事件的進程,一份列表,一次解決。


成功串起相關裝置的事件始末



不過,手動分析事件固然功能強大,但如果每次都要如此勞師動眾,成本委實過高。


儀表版


沒關係,開源版的 Graylog 提供了 Dashboard 儀表版功能,我們可以任意的將查詢結果組合成儀表版上的區塊,區塊可以是總數、圖表、列表、地圖...等多種應用,並且隨時自動更新,還可以點選區塊,進去查看事件清單做其它的內容分析應用。

舉一個我最常看、也是許多 MIS 人員最需要的 AD 帳號相關事件來說,如果能有一個儀表版隨時查看帳號的異動、鎖定,就是天大的好物啊!

很不幸的,Graylog 剛好可以提供這樣的能力,而且不需要你花半毛錢。

儀表版應用:AD 帳號總覽 (1)



儀表版應用:AD 帳號總覽 (2)



儀表版應用:AD 登入事件



更過份的是,他連 Alerting 機制都一併提供了,我們可以設定條件,再發送警告給管理人員做即時處理。



帳號驗證


如果是多位管理者一同使用 Graylog,除了內建的帳號管理機制外,已直接整合 LDAP/AD 外部驗證機制,可以節省身份的管理時間與成本。

LDAP/AD 外部驗證






結論


對於記錄檔集中且即時分析有需求的朋友,Graylog 是一個非常理想的開源方案,在許多的應用場合都可以滿足使用需求。

如果仍有功能不夠或是需要支援者,Graylog 亦有推出商業解決方案,可以做為選項之一。


完整資料


更詳細的內容,請參閱官方網站。