Saturday, December 5, 2015

Redmine 101

Một dạng dashboard của RedmineCRM, mô tả khối lượng công việc của từng cá nhân nhóm theo trạng thái.
Nguồn: RedmineCRM

Xuất phát từ nhu cầu sử dụng 1 hệ thống mã mở, linh hoạt trong việc quản lý dự án, đồng thời cũng vì phải có 1 nơi lưu trữ quản lý các thay đổi đ/v hệ thống CNTT nói chung (do cty kiểm toán yêu cầu), chúng tôi tìm đến trac[1] trước tiên (chứ ko phải là Redmine[2]). trac về cơ bản khá tốt, đặc biệt phần quản lý tickets/issues, lại được viết bằng python, là ngôn ngữ lập trình mà cá nhân tôi rất thích. Nhưng trac cũng có cái dở, tồn tại 1 số vấn đề tương đối nghiêm trọng: đa số các chức năng quản trị chỉ được hỗ trợ thông qua dòng lệnh và còn tạo mỗi dự án 1 database riêng[3]... Các vấn đề này khiến cho việc quản trị trac khá vất vả. Vì thế sau khi dùng khoảng 2 năm, đến 2010, chúng tôi quyết định tìm phần mềm mới thay thế trac. Và Redmine sau bao nhiêu năm sử dụng, đã không phụ lòng mong mỏi của chúng tôi.

Công việc chuyển dữ liệu từ trac sang Redmine không quá khó khăn (dễ đến nỗi anh chàng phụ trách việc này ko kịp viết lại tài liệu :D). Kế đến, tất cả các chức năng quản trị như quản lý người dùng, nhóm, phân quyền, quản lý dự án... tất cả đều được thực hiện dễ dàng thông qua giao diện thay cho việc dùng dòng lệnh. Thế là chúng tôi nhào vào viết wiki, tạo issues (lúc này ko còn gọi là tickets theo cách gọi của trac nữa)... Mỗi nhân viên của team có 1 issue, gọi là CV của anh A, hoặc issue CV của anh B. Một số dự án lớn thì lại tạo issue riêng để lưu tất tần tật tài liệu, trao đổi... chỉ trong 1 issue đó. Sau này dùng lâu rồi, tôi mới hiểu có đồ chơi là 1 chuyện, nhưng dùng thế nào, cho việc gì và làm sao hiệu quả... thì là 1 chuyện khác.

Đi thẳng vào mục đích/lợi ích của Redmine, sau khoảng 7 năm dùng các hệ thống Issue Tracking riêng (trac, Redmine, JIRA)[4] cũng như module tích hợp trong các hệ thống github, Google Code..., là 1 lãnh đạo cần phải quản lý công việc của nhân viên dưới quyền, tôi nhận thấy Redmine dùng tốt cho 3 mục đích:
  • Quản lý dự án. Rất nhiều tài liệu, slides, blog posts trên Internet nói về chuyện dùng Redmine cho việc này. Tôi cũng sẽ đề cập 1 chút vv quản lý dự án nhưng xin hẹn ở 1 chủ đề riêng.
  • Quản lý tri thức. Nói tên nghe rất "kêu", nhưng ẩn đằng sau đó chỉ là Wiki mà thôi :D.
  • Quản lý vận hành, bao gồm cả những dạng quản lý hỗ trợ (Service Desk). Cái này đối với tôi là tinh hoa của việc vận dụng 1 hệ thống Issue Tracking. Cũng vì gọi chung là Issue Tracking thay vì Project Management mà tôi nhận thấy phải dùng Redmine cho cả việc vận hành/hỗ trợ người dùng này. Nói thêm 1 chút, một trong những thành quả lớn nhất mà tôi đạt được đó là, khi các bạn trong team của tôi nghỉ việc, tôi chỉ việc assign issues cho các bạn khác thay thế mà ko phải lo lắng xem quá trình bàn giao công việc có thiếu sót chỗ nào không. Tuyệt hơn nữa, các bạn mới cũng có thể lục lại những CV đã hoàn tất (closed issues) làm cho quá trình hoạt động của team không bị ngắt quãng, không bị mất thông tin của bất kỳ CV nào (nói thế chứ 1 số CV các bạn đó không lưu nên chuyện mất mát thông tin là vẫn xảy ra).

Tôi cũng quan sát khá nhiều công ty, khá nhiều chuyên gia CNTT, kể cả 1 số công ty tư vấn/kiểm toán quốc tế. Phần đông họ vẫn chỉ cần đến email, 1 số công cụ như Word, Excel, MS Project, Notes... và cảm thấy "đủ". Nhưng cũng khá nhiều nơi đã bị tôi thuyết phục sau khi họ cần tìm giải pháp cho 1 trong 3 vấn đề tôi nêu trên. Đặc biệt có 1 phòng ban trong công ty của tôi đã sử dụng Redmine khoảng 2 năm từ 2013 đến nay, đã lưu và xử lý hơn 15000 yêu cầu hỗ trợ với hơn 1000 người dùng, trên cùng 1 hệ thống dùng chung với team của chúng tôi.

Có lẽ với chừng này thông tin, tôi hi vọng đã thuyết phục được các bạn trong việc quyết định sử dụng Redmine (hoặc 1 hệ thống tương tự như JIRA) với 3 mục tiêu nêu trên. Chúc các bạn dùng công cụ này thành thạo & hiệu quả.

(Bắt đầu bớt email, chuyển sang Redmine thôi!!??!!)

(Còn tiếp)

PS. Khi đọc lại bài viết này, tôi nhận thấy bài viết chưa hay lắm khi tiêu đề nói về Redmine, nhưng đoạn đầu lại đề cập tới trac. Tôi đã thử nhưng thấy bản thân không thể viết lại hay hơn. Bạn đọc xem góp ý nhé.

----

[1]: http://trac.edgewall.org/
[2]: http://www.redmine.org/
[3]: http://trac.edgewall.org/wiki/TracAdmin
[4]: https://en.wikipedia.org/wiki/Issue_tracking_system, https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems

Thursday, July 9, 2015

Dùng Splunk thế nào hay là Bắt đầu với Splunk


1) Download, cài đặt. Viết hay cỡ nào cũng ko bằng Video. Truy cập  http://www.splunk.com/view/education-videos/SP-CAAAGB6, có hướng dẫn cho cả Windows lẫn Linux.

2) Chuyển dữ liệu vào Splunk. NSM thì luôn phải có dữ liệu (thường gọi là log) thì mới có thể báo cáo/cảnh báo. Đây là công việc chính của NSM cũng như Splunk nói riêng. Xem tiếp video "Getting Data into Splunk" cũng từ liên kết ở trên. Ngoài ra, ngay sau khi cài đặt thành công, Splunk sẽ cung cấp 1 ứng dụng web (có cổng mặc định là 8000, http (http://localhost:8000), username: admin, pass: changeme). Các bạn cứ truy cập Splunk web rồi làm theo giao diện hướng dẫn để làm việc chuyển dữ liệu.

3) Search, Report/Alert, Dashboard. Tiếp tục xem 2 video "Basic Searching in Splunk Enterprise" & "Creating Dashboards in Splunk Enterprise".

3.1) Nếu bạn cảm thấy yêu thích Splunk rồi hoặc thấy vẫn chưa đủ đô & còn thời gian thì học theo nội dung "Splunk Tutorial (e-learning)" http://www.splunk.com/view/SP-CAAAHSM & "Using Splunk 6" http://www.splunk.com/view/SP-CAAAH9A, google từng phần rồi học, cần tới đâu học tới đó. Sau khi đã "dính" rồi thì đọc http://docs.splunk.com/Documentation/Splunk.

4) Nghịch Splunk Appshttps://splunkbase.splunk.com/


Tôi viết bài này vì có nhiều bạn cứ hỏi tôi Splunk cài thế nào, dùng ra sao... nên dành thời gian tóm tắt, ghi lại những thông tin/links quan trọng ở trên. Hi vọng các bạn làm theo & thành công.

----

PS. Trên Splunk Apps/Splunk Base có câu "Extend the power of Splunk". Thực tình khi viết bài tích hợp Google Maps (http://quangchinh.blogspot.com/2015/02/tich-hop-google-maps-vao-splunk-e-gia.html) tôi không hề thấy khẩu hiệu này trước đó. Xem ra ý tưởng lớn nhỏ gặp nhau đây :D.

PS2. Giới thiệu các bạn http://splunkgeek.blogspot.it/p/blog-page.html (& http://www.georgestarcher.com/tag/splunk/) có khá nhiều nội dung hay nói về Splunk. Thực tế nếu google, các bạn cũng có thể tìm thấy nhiều sites khác. Cũng đừng quên theo dõi Splunk blog & các tin tức khác nói về Splunk.

PS3. Splunk bây giờ đã có nhiều sản phẩm hơn, ko chỉ còn là Splunk Free & Splunk Enterprise. Tôi sẽ viết 1 chút nếu có thời gian & được quan tâm.


An English topic that explains why you should run Syslog & Splunk interoperate

http://www.georgestarcher.com/splunk-success-with-syslog/ (from George. Plz don't ask me who is he lol).

I know this topic because I am a member of Splunk User Group on Linkedin > https://www.linkedin.com/grp/home?gid=1913714. I visited https://www.linkedin.com/grp/post/1913714-5963861876910608384?trk=groups-post-b-title and then it took me to George blog.


Have fun!

Monday, February 2, 2015

Tích hợp Google Maps vào Splunk để gia tăng sức mạnh cho Fraud Detection System


1) Collect data giao dịch để làm Fraud Detection System.

2) Tích hợp thông tin toạ độ của ATM cũng như toạ độ của các địa điểm phát sinh giao dịch nói chung. 1 cách đơn giản đó là tổ chức 1 file CSV có mã ATM và mã CN/PGD kèm theo toạ độ (Latittude + Longitude). Sau đó cấu hình Lookup Table File & Lookup Definition trên Splunk.

3) Cài đặt Google Maps (https://apps.splunk.com/app/368/) lên Splunk.

4) Search kèm theo lookup (để các giao dịch có thêm các thông tin toạ độ; sau đó kết thúc bằng lệnh | eval _geo=Latitude.",".Longitude. Kết quả xinh đẹp không thể tưởng tượng nổi :D


Kết hợp với tính năng Real-time search của Splunk nữa thì bản đồ được cập nhật y chang xi nê vậy.

Việc thể hiện dữ liệu trên bản đồ này sẽ giúp cho các ngân hàng & cty tài chính:
  • Nhìn trực quan để dễ dàng hỗ trợ khách hàng hoặc phát hiện các gian lận tài chính liên quan đến địa điểm.
  • Sử dụng Splunk để dễ dàng tìm kiếm phát hiện các gian lận rút tiền/GD tiền ở nhiều nơi (VD như người thường không thể có 2 GD rút tiền ở TP.HCM và Hà Nội trong vòng 1 tiếng).
  • Tiến đến là tích hợp việc chụp hình các camera tại ATM ngay sau khi giao dịch xảy ra; đối chiếu với các hình ảnh của các tài khoản đã giao dịch trước đó để phát hiện, phòng chống các giao dịch skimming.
Do đó, thay vì đầu tư 1 hệ thống Fraud Detection đắt tiền, sao không thử xây dựng 1 hệ thống mà không tốn 1 đồng license nào? Lại còn chủ động được trong vấn đề công nghệ?

Happy splunking!

Thursday, January 22, 2015

3 cách xây dựng hệ thống NSM miễn phí


Dành cho bạn nào chưa biết NSM (giám sát an ninh mạng) & NSM để làm gì > http://vnhacker.blogspot.com/2009/12/giam-sat-ninh-mang-hay-la-lam-nao-e.html


Sau khi đã biết NSM, tôi xin giới thiệu 3 cách:


1) Splunk Free [+ Syslog-NG]

2) Syslog-NG + Splunk Free
3) ELK

Cách đầu đơn giản nhất. Tất cả cài đặt Splunk Agent và cấu hình forwarding về Splunk Server làm NSM. Search, Report trên Splunk Server. Các thiết bị không thể cài đặt Splunk thì hoặc cấu hình gửi log trực tiếp về Splunk; hoặc cấu hình chuyển log về Syslog-NG server, sau đó Syslog-NG tiếp tục cấu hình gửi log về Splunk.


Cách thứ 2: không cài đặt, ko sử dụng Splunk làm Agent. Sử dụng Syslogd hoặc Rsyslog; cài Syslog Agent trên các server Windows. Tất cả được cấu hình tập trung log về Syslog-NG server. Từ Syslog-ng server, tiếp tục cấu hình gửi log về Splunk. Do đó chỉ cần cài Splunk trên NSM Server là đủ.


Cách thứ 3 đó là sử dụng bộ 3 phần mềm ElasticSearch, LogStash và Kibana (http://www.elasticsearch.org/overview/). Tất cả đều là phần mềm nguồn mở nên bạn ko phải lo lắng về chi phí. Tuy nhiên cách này tôi chưa thử bao giờ nên ko thể so sánh ưu khuyết với 2 cách kia.


Trong 2 cách đầu, tôi thích cách thứ 2 hơn vì:

  • Tốn ít công sức quản lý Syslog Agent hơn là quản lý Splunk. Ít ra thì các server Linux đã có sẵn syslogd/rsyslog.
  • Chủ động trong việc lựa chọn các dạng log sẽ được tập trung về Splunk. Việc này rất cần thiết nếu như bạn có quá nhiều máy chủ, quá nhiều dữ liệu cần tập trung về Splunk. Dung lượng dữ liệu gửi về đôi khi tăng đột biến quá nhiều cũng sẽ dẫn đến việc vi phạm (Free) License của Splunk, làm mất khả năng Search, nghĩa là NSM đã bị vô hiệu hoá.
  • Vừa có thể lưu raw log vừa search trên Splunk. Cái này phù hợp cho những bạn paranoid, ko tin tưởng hệ thống nào và chỉ thích dùng cat, grep, sed, awk...

Nên chọn cách 1 khi:
  • Bạn cần làm quen với Splunk. Các apps của Splunk thường chỉ hoạt động với kiến trúc NSM hoàn toàn dựa vào Splunk. Tập trung log thông qua 1 phần mềm khác (Syslog-NG) sẽ yêu cầu bạn phải điều chỉnh/cấu hình nhiều hơn để các apps của Splunk hoạt động.

Nếu có những cách khác hoặc các bộ phần mềm miễn phí khác, bạn vui lòng phản hồi cho tôi biết nhé.


Chúc mọi người xây dựng NSM thành công.


Wednesday, January 21, 2015

10 điều sẽ làm trong 2015

* Chăm chỉ viết blog, mỗi tháng tối thiểu 1 bài.
* Hỗ trợ anh em; tham gia chuyên môn trong tất cả lĩnh vực Security của cty.
* Cải thiện khả năng lập trình; có đóng góp tối thiểu 1 dự án mã mở hoặc 1 phần mềm/plugin miễn phí.
* Cải thiện 1 vài chuyên môn khác ngoài lập trình (có thể là PCI-DSS, BI hoặc Cloud).

* Chơi với con nhiều hơn & giúp con nói chuyện.
* Học tiếng Anh tối thiểu 2h/tuần, duy trì tối thiểu 6 tháng.
* Tìm cách cải thiện thu nhập.
* Mỗi tháng biết thêm 1 khu mới ở TPHCM.
* Có được tối thiểu 25%30% tiền mặt để mua 1 căn nhà @Bình Tân.

* <Chưa xác định. Nhờ mọi người góp ý.>