al ntt communications (thailand) co., ltd
TRANSCRIPT
การออกแบบการใหบรการวเคราะหบนทกขอมลบนคอมพวเตอรเสมอน
บรษท เอนทท คอมมวนเคชน (ประเทศไทย) จ ากด
Log Analysis Design on Virtual Machines
NTT COMMUNICATIONS (THAILAND) CO., LTD.
นางสาวจฑาทพย วรพงศอาภรณ
โครงงานสหกจนเปนสวนหนงของการศกษาตามหลกสตร
ปรญญาวทยาศาสตรบณฑต สาขาวชาเทคโนโลยสารสนเทศ
คณะเทคโนโลยสารสนเทศ
สถาบนเทคโนโลยไทย – ญป น
พ.ศ. 2560
การออกแบบการใหบรการวเคราะหบนทกขอมลบนคอมพวเตอรเสมอน บรษท เอนทท คอมมวนเคชน (ประเทศไทย) จ ากด
LOG ANALYSIS DESIGN ON VIRTUAL MACHINES NTT COMMUNICATIONS (THAILAND) CO., LTD.
นางสาวจฑาทพย วรพงศอาภรณ
โครงงานสหกจศกษานเปนสวนหนงของการศกษาตามหลกสตร
ปรญญาวทยาศาสตรบณฑต สาขาเทคโนโลยสารสนเทศ คณะเทคโนโลยสารสนเทศ สถาบนเทคโนโลยไทย-ญปน
พ.ศ. 2560
คณะกรรมการสอบ ........................................................................ ประธานกรรมการสอบ
(อาจารย ดร. สะพรงสทธ มฤทสาธร)
........................................................................ กรรมการสอบ (อาจารยชาญ จารวงศรงส)
......................................................................... อาจารยทปรกษา
(อาจารย ดร. ปราณสา อศรเสนา) ......................................................................... ประธานสหกจศกษาสาขาวชา
(อาจารยอมรพนธ ชมกลน)
ลขสทธของสถาบนเทคโนโลยไทย-ญป น
ก
ชอโครงงาน การออกแบบการใหบรการวเคราะหบนทกขอมลบนคอมพวเตอร
เสมอน
ผเขยน นางสาวจฑาทพย วรพงศอาภรณ
คณะวชา เทคโนโลยสารสนเทศ สาขาเทคโนโลยสารสนเทศ
อาจารยทปรกษา อาจารย ดร. ปราณสา อศรเสนา
พนกงานทปรกษา นายธนวฒน ววฒนพานช
พนกงานทปรกษา นางสาว นฐวรรณ โลกาวทย
ชอบรษท เอนทท คอมมวนเคชนส (ประเทศไทย) จ ากด
ประเภทธรกจ/สนคา ใหบรการและโซลชนแกลกคาระดบองคกรในระดบโลกดานการ
ใหบรการระบบคลาว เครอขายและขอมล ใชโครงสรางพนฐานทม
ความปลอดภยและเทคโนโลยชนน าในอตสาหกรรม
บทสรป
ในปจจบนนนประเทศไทย ไดมการบงคบใชพระราชบญญตวาดวยการกระท าความผด
เกยวกบคอมพวเตอร พ.ศ.2550 มผลบงคบใชตงแตวนท 18 ก.ค. 50 การก าหนดระเบยบวธปฏบต
ของผเกยวของกบ กม.ฉบบน ตองใชควบคไปกบ ประกาศและหรอกฎกระทรวงไอซท โดย กม.
ก าหนดใหกระทรวงไอซท ออกประกาศใน เรองหลกเกณฑการเกบรกษาขอมลจราจรทาง
คอมพวเตอรของผใหบรการมหนาทตองเกบขอมลจราจรคอมพวเตอร (Log File) ใหถกตองและ
เชอถอได และตองเกบไวไมนอยกวา 90 วน
การเกบขอมลจราจรคอมพวเตอรนสามารถน ามาวเคราะหและผลจากการวเคราะหขอมล
มาท าการหาความเชอมโยงของขอมลเพอหาสาเหตของปญหา และ /หรอ ขอบงชของปญหาท
เกดขนได ผบรหารสามารถน าขอมลทไดเพอตรวจสอบพฤตกรรมการท างานของผใตบงคบบญชา
ได
ดงนนจงเกดแนวคดการรวมศนยของขอมล Log ขน เพอความงายในการบรหาร Log และสามารถ
จดการผานเครองมอทครบครน ณ จดเดยวเปนบรการอยางหนงใหกบลกคาทใชบรการอนกบทาง
บรษท
ข
จากการด าเนนโครงงาน ท าใหได Diagram ทมคณสมบตเหมาะสมในการใหบรการจรง
คอ มขนาดหนวยความจะและหนวยการประมวลผลสมพนธกบความจ าเปน เพอใหเหมาะสมกบ
คาใชจายและงบประมาณ และมความมนคงของระบบ สามารถน าไปใชในระบบวเคราะห Log ผล
คอการใชงานสามารถใชงานไดตามทควรจะเปน สามารถใชงานโปรแกรม Kibana ใน Function
พนฐานทจ าเปนได
ค
Project’s name Log Analysis Design on Virtual Machines
Writer Miss Jutatip Voraphongarporn
Faculty Faculty of Information Technology,
Information Technology Program
Faculty Advisor Dr. Pranisa Isornsena
Job Supervisor Mr. Thanawat Wiwatpanit
Miss Nuttawan Lowkawit
Company’s name NTT Communications (THAILAND) Co., Ltd.
Business Type / Product Provides IT solutions and organizations network infrastructures.
Summary
Computer-related Crime Act B.E 2550 (2007) is enforced at July 18, 2007 in content of
“Section 26 A service provider shall keep traffic data for not less than ninety days from the day
when such data has been entered into a computer system. If necessary, the competent official
shall, as a particular case and time, instruct any service provider to keep traffic data for over
ninety days but not exceeding one year. A service provider shall keep user’s data as necessary for
the purpose of identifying the user from the first day of such a service and store such user data for
not less than ninety days from its expiry date. The Minister shall prescribe the type of service
providers, how and when the provisions in paragraph one shall apply by promulgation in the
Government Gazette, any service provider, who fails to comply with this Section, shall be liable
to a fine not exceeding five hundred thousand Baht.” For backup the logs data.
Kept logs file able to be analyzed than the result can be related to cause of a problem and
to prevent and predict future problems. The Directors get benefits from the result and can observe
employees' behavior. So, there is a concept of Center of Log files to be provided and to help
managing logs by tools as one stop services for current customers as a top-up service.
ง
The result of this project is the best practice of diagram that can provided a powerful
searching process and storage compatible with cost and budget, specially come with high
availability and be able to use with functions in Kibana.
จ
กตตกรรมประกาศ
ขอขอบคณบรษท เอนทท คอมมนเคชน (ประเทศไทย) จ ากด ทมอบโอกาสใหขาพเจามา
เปนสวนหนงในการปฏบตงาน ท าใหขาพเจาไดรบประสบการณในการท างานจรง อกทงไดเรยนร
สงตาง ๆ มากมาย ทงในทางทฤษฎและปฏบต ฝกใหเรยนรดวยตนเอง ชวยชแนะวธการท างาน ท า
ใหขาพเจาสามารถปฏบตตนไดอยางเหมาะสมในบรษท ตลอดจนใหความอนเคราะหอนญาตให
นกศกษาสหกจไดเขารวมกจกรรมตาง ๆ เชน การเขารวมพดคยกบคคา และเขารวมการเวรคอปท
เกยวของกบผลตภณฑในบรษท รวมไปถงการไดลองใชเครองมอตางๆ ซงประสบการณเหลานไม
สามารถหาไดภายในหองเรยน
ขอขอบคณพพนกงานทกคนทงในแผนกโปรดกสแอนดเซอรวช รวมถงพพนกงานแผนก
เอนจเนยรทคอยใหความชวยเหลอ คอยใหค าปรกษาและดแลอยางดตลอดระยะเวลา 8 สปดาหท
ผานมา ขาพเจารสกผกพนและรสกปลาบปลมเปนทสดทไดเปนสวนหนงในการปฏบตงานทน
รวมถงอาจารยทปรกษา อาจารย ดร. ปราณสา อศรเสนา และพนกงานทปรกษา นายธนวฒน ววฒน
พานช และ นางสาวนฐวรรณ โลกาวทย ทคอยใหค าปรกษาเกยวกบโครงงานมาโดยตลอดท าใหการ
ฝกงานของขาพเจาส าเรจลลวงไปไดดวยด และสดทายนขาพเจาขอขอบคณคณะเทคโนโลย
สารสนเทศ และสถาบนเทคโนโลยไทย-ญปนทไดใหโอกาสส าหรบการสหกจในครงน จงขอกราบ
ขอบพระคณมา ณ ทน
จฑาทพย วรพงศอาภรณ
ผจดท าโครงงาน
ฉ
สารบญ
หนา
บทสรป ก
Summary ค
กตตกรรมประกาศ จ
สารบญ ฉ
สารบญตาราง ฌ
สารบญภาพประกอบ ญ
บทท
1. บทน า 1
1.1 ชอและทตงของสถานประกอบการ 1
1.2 ลกษณะธรกจของสถานประกอบการ หรอการใหบรการหลกขององคกร 1
1.3 รปแบบการบรหารและจดการองคกร 2
1.4 ต าแหนงและหนาทงานทนกศกษาไดรบมอบหมาย 3
1.5 พนกงานทปรกษาและต าแหนงของพนกงานทปรกษา 3
1.6 ระยะเวลาทปฏบตงาน 3
1.7 ทมาและความส าคญของปญหา 3
1.8 วตถประสงคหรอจดมงหมายของโครงงาน 5
1.9 ผลทคาดวาจะไดรบจากการปฏบตงาน หรอโครงงานทไดรบมอบหมาย 5
ช
สารบญ (ตอ)
บทท หนา
2. ทฤษฎและเทคโนโลยทใชในการปฏบตงาน 6
2.1 ทฤษฎทใชในการปฏบตงาน 6 2.1.1 Big Data Technology 6 2.1.2 High Availability 9
2.1.3 Java Virtual Machine 11
2.1.4 NoSQL 15
2.1.5 REST (Representational State Transfer) 19
2.2 เทคโนโลยทใชในการปฏบตงาน 23
2.2.1 โปรแกรม ElasticSearch 23
2.2.2 โปรแกรม Logstash 26
2.2.3 โปรแกรม Kibana 28
2.2.4 Virtual Machines 30
3. แผนงานการปฏบตงานและขนตอนการด าเนนงาน 32
3.1 แผนการปฏบตงาน 32
3.2 รายละเอยดโครงงาน 32
3.2.1 ระบบมขนาดหนวยความจ าและหนวยประมวลผลสมพนธตอความจ าเปน 32
3.2.2 ระบบตองการความมนคง 33
3.3 ขนตอนการด าเนนงานโครงงาน 34
3.3.1 ขนตอนการท าโครงงาน 34
ซ
สารบญ (ตอ)
บทท หนา
4. ผลการด าเนนงาน การวเคราะหและสรปผลตาง ๆ 43
4.1 ผลของการท าโครงงาน 43
4.1.1 หนา Visualization 44
4.1.2 หนา Discover 44
4.1.3 หนา Dev Tools 45
4.2 ผลการวเคราะหขอมล 45
4.2.1 วเคราะหผลของการท าโครงงาน 45
5. บทสรปและขอเสนอแนะ 46
5.1 สรปผลการด าเนนโครงงาน 46
5.2 แนวทางการแกไขปญหา 46
5.3 ขอเสนอแนะจากการด าเนนงาน 47
เอกสารอางอง 48
ภาคผนวก 49
ก. รายงานภาคปฏบตงานประจ าสปดาห 50
ประวตผจดท าโครงงาน 59
ฌ
สารบญตาราง
ตารางท หนา
2.1 แสดงระดบประสทธภาพการใหบรการดวย High Availability 9
2.2 แสดงการเปรยบเทยบชอเรยกระหวาง ElasticSearch และ RDBMS 26
3.1 แสดงสงทไดปฏบตโครงงานในระหวางการสหกจศกษา 32
ญ
สารบญภาพประกอบ
ภาพท หนา
1.1 สญลกษณของบรษท 1
1.2 แผนทแสดงต าแหนงของบรษท 1
1.3 แผนผงรปแบบการบรหารและจดการองคกร 2
2.1 Big Data Technology 6
2.2 Big Data Analytics 8
2.3 ตวอยางการท า High Availability ในระดบองคกร 10
2.4 แสดงขนตอนการสราง Java Virtual Machine (JVM) 12
2.5 แสดงถง Java Memory Model 13
2.6 Not Only SQL 15
2.7 แสดงลกษณะของ Auto-Sharding 16
2.8 Representational State Transfer (REST) 19
2.9 แสดงลกษณะของ HTTP Request 21
2.10 แสดงลกษณะของ HTTP Response 22
2.11 โลโกของ ElasticSearch 23
2.12 แสดงสวนการแสดงขอมลของโปรแกรม Logstash 26
2.13 แสดงตวอยางไฟล Config ของ Logstash อยางงาย 27
2.14 โลโกของ Kibana 28
2.15 File .yml ของโปรแกรม Kibana 28
2.16 ระบ IP ของ Elasticsearch 29
2.17 File .bat ของโปรแกรม Kibana 29
ฎ
สารบญภาพประกอบ (ตอ)
ภาพท หนา
2.18 เรมตนใชงานโปรแกรม Kibana 29 2.19 Physical Server ทเพมขน 31
2.20 Physical Server กบ High Availability 31
2.21 การขยายของServer Virtualization 31
3.1 Diagram ทใช VM 3 Node 35
3.2 Diagram ทใช VM 2 Node 35
3.3 Diagram ทใช VM 1 Node 36
3.4 File .yml ของโปรแกรม ElasticSearch 37
3.5 File .conf ของโปรแกรม Logstash 38
3.6 File .yml ของโปรแกรม Kibana 38
3.7 การตดตงโปรแกรม ElasticSearch 39
3.8 File .bat ทใชในการตดตงโปรแกรม Logstash 39
3.9 File .bat ทใชในการตดตงโปรแกรม Kibana 39
3.10 หนาตงคา index โปรแกรม Kibana 40
3.11 หนา Discover 41
3.12 หนา Visualization 41
3.13 หนา Dashboard 42
4.1 ภาพแสดงหนาตาของหนา Loading Screen 43
ฏ
สารบญภาพประกอบ (ตอ)
ภาพท หนา
4.2 ภาพแสดงหนาตาของหนา Dashboard 43
4.3 ภาพแสดงหนาตาของหนา Visualization 44
4.4 ภาพแสดงผลการคนหาในหนา Discover 44
4.5 ภาพแสดงหนาตาของหนา Dev Tools 45
บทท 1
บทน า
1.1 ชอและทตงของสถานประกอบการ
ภาพท 1.1 สญลกษณของบรษท
ทมา : http://www.th.ntt.com/content/dam/nttcom/cmn/img/lgo-ntt.png
ชอ บรษท เอนทท คอมมวนเคชนส (ประเทศไทย) จ ากด
NTT communications (Thailand) Co. Ltd
ทตง 946 อาคารดสตธาน ช น 6 ถนน พระราม 4 แขวง สลม เขต บางรก
กรงเทพมหานคร 10500
ภาพท 1.2 แผนทแสดงต าแหนงของบรษท
ทมา : https://goo.gl/8hA2kS
2
1.2 ลกษณะธรกจของสถานประกอบการ หรอการใหบรการหลกขององคกร บรษทระหวางประเทศทใหบรการและโซลชนแกลกคาระดบองคกรในระดบโลกและเปน
ผน าดานการใหบรการระบบคลาว เครอขายและขอมล ใชโครงสรางพนฐานทมความปลอดภยและ
เทคโนโลยชนน าในอตสาหกรรมในการบรการ
1.3 รปแบบการบรหารและจดการองคกร
ภาพท 1.3 แผนผงรปแบบการบรหารและจดการองคกร
คอ แผนกทนกศกษาประจ าอย
Legal Affairs and Internal Auditing
General Affairs
Human Resources
Finance
Service Infrastructure
Board of Director
s
President
Audit & Supe
rvisory Board
Members
Audit & Supe
rvisory Board
Office of Audit & Supe
rvisory Board Members
Managed Services Solution Services
Applications and Contents
Network Services Cloud Services
Voice and Video
Global Business ICT Consulting Division
West Japan Sales Division
Fifth Sales Division
Fourth Sales Division Third Sales Division
Second Sales Division
First Sales Division
Corporate Planning Systems
Procurements
3
1.4 ต าแหนงและหนาทงานทนกศกษาไดรบมอบหมาย ต าแหนง นกศกษาฝกงาน
หนาท วเคราะหผลตภณฑ
1.5 พนกงานทปรกษาและต าแหนงของพนกงานทปรกษา ชอ นายธนวฒน ววฒนพานช
ต าแหนง ผจดการอาวโส
ชอ นางสาวนฐวรรณ โลกาวทย
ต าแหนง ผชวยผจดการ
1.6 ระยะเวลาทปฏบตงาน 22 พฤษภาคม 2560 – 14 กรกฎาคม 2560
1.7 ทมาและความส าคญของปญหา ในปจจบนนนประเทศไทย ไดมการบงคบใชพระราชบญญตวาดวยการกระท าความผด
เกยวกบคอมพวเตอร พ.ศ.2550 มผลบงคบใชตงแตวนท 18 ก.ค. 2550 การก าหนดระเบยบวธปฏบต
ของผเกยวของกบ กม.ฉบบน ตองใชควบคไปกบ ประกาศและหรอกฎกระทรวงไอซท โดย กม.
ก าหนดใหกระทรวงไอซท ออกประกาศใน เรองหลกเกณฑการเกบรกษาขอมลจราจรทาง
คอมพวเตอรของผใหบรการมหนาทตองเกบขอมลจราจรคอมพวเตอร (Log File) ใหถกตองและ
เชอถอได และตองเกบไวไมนอยกวา 90 วน หากไมปฏบตตามมความผดตาม กม.ระวางโทษปรบ
ไมเกน 500,000 บาท นอกจากน หากไมสามารถน าสงขอมลจราจรคอมพวเตอรตามค าสงของศาล
หรอพนกงานเจาหนาท มโทษปรบไมเกน 200,000 บาท และปรบอกวนละไมเกน 5,000 บาท
จนกวาจะปฏบตใหถกตอง
ประโยชนในการจดเกบขอมลทางคอมพวเตอร
1) ชวยใหมหลกฐานและสามารถจบตวผกระท าความผดทางคอมพวเตอรไดอยางถกตอง
2) ชวยในการวเคราะหและจดการระบบรกษาความปลอดภยของขอมล
4
ขอมลจราจรทางคอมพวเตอรทตองจดเกบมดงน
1) ขอมลทระบตวบคคลทใชงาน เชน ชอ-นามสกล หมายเลขบตรประชาชน User-ID
2) ขอมลระบวนเวลาทใชงาน
3) ขอมล IP Address
4) อนๆ (ดเพมเตมตามประกาศกระทรวงเทคโนโลยสารสนเทศและการสอสาร)
แตการจะน าขอมลการจราจรคอมพวเตอรมาตรวจสอบหาขอมลทตองการนนท าได
คอนขางยาก เพราะรปแบบการบนทกขอมลการจราจรคอมพวเตอรของโปรแกรมหรอโอเปอเรตง
ซสเตมนนคอนขางหลากหลายและแตกตางกน แมกระทงเจาพนกงานทท าหนาทคนหาขอมลเมอ
เกดเหตการณจนตองน าขอมลการจราจรคอมพวเตอรมาตรวจสอบนนตองใชเวลาพอสมควร เมอม
การเกบขอมลการจราจรคอมพวเตอรแลว ในสวนของขอมลการจราจรนนไมไดมประโยชนเพยง
น ามาใหเจาพนกงานคนหาเมอถกเรยกตรวจสอบ ผทเปนผใหบรการน น สามารถน าขอมล
การจราจรคอมพวเตอรมาใชใหเกดประโยชนในดานการใหบรการและความปลอดภยดวยตนเอง
ได ในขณะเดยวกนนน บรษทตางๆหากน าขอมลการจราจรคอมพวเตอร ดงนนการน าขอมล
การจราจรคอมพวเตอรมาท าการวเคราะหสงเคราะหจงเปนเรองทมประโยชนในหลายๆดาน เชน
ชวยใหงายตอการคนหาการใชงานทผดปกต ซงอาจน าไปสการเกดปญหา ใชเพอน าขอมลดบมา
เ ป ร ย บ เ ท ย บ กน เ ช น เ ป ร ย บ เ ท ย บ เ พ อ ช ว ง เ ว ล า ท ม ก า ร ใ ช ง า น ร ะ บบม า ก /น อ ย
คนหาขอมลเกาเพอน ามาเปรยบเทยบ, ออกรายงานจากขอมลทถกประมวลผลแลวน าผลจากการ
วเคราะหขอมลมาท าการหาความเชอมโยงของขอมลเพอหาสาเหตของปญหา และ /หรอ ขอบงช
ของปญหาทเกดขนได ผบรหารสามารถน าขอมลทไดเพอตรวจสอบพฤตกรรมการท างานของ
ผใตบงคบบญชาได
ดงนนจงเกดแนวคดการรวมศนยของขอมล Log ขน เพอความงายในการบรหาร Log และ
สามารถจดการผานเครองมอทครบครน ณ จดเดยวเปนบรการอยางหนงใหกบลกคาทใชบรการอน
กบทางบรษท
1.8 วตถประสงคหรอจดมงหมายของโครงงาน เพอพฒนา Diagram เพอน ามาใชในการวเคราะห Log ดวยโปรแกรม ElasticSearch และ
Kibana บนระบบคอมพวเตอรเสมอน (VM) เพอหารปแบบทมประสทธภาพ และน ามาใชรวมกบ
ระบบโครงสรางระบบทมภายในบรษท
5
ก าหนดคณสมบตดงตอไปน
1) ม Availability
2) สามารถประมวลผลขอมลทไดรบมาได
3) รองรบการประมวลผลกบขอมลทมขนาดใหญ
1.9 ผลทคาดวาจะไดรบจากการปฏบตงาน หรอโครงงานทไดรบมอบหมาย สามารถน า Diagram ทออกแบบแลวใชไดอยางมประสทธภาพไปใชงานจรงภายในบรษท
และน าไปใชเปนผลตภณฑตอไป
บทท 2
ทฤษฎและเทคโนโลยทใชในการปฏบตงาน
2.1 ทฤษฎทใชในการปฏบตงาน
2.1.1 Big Data Technology
ภาพท 2.1 Big Data Technology
ทมา : https://goo.gl/3A3WPF
Big Data นน ถาจะแปลจากความหมายตรงตวจากชอ กหมายถง “อภมหาขอมล หรอ
ขอมลทมากมายมหาศาล” ซงขอมลเหลานเกดจากการพฒนาเทคโนโลย และระบบตางๆ ท าใหแต
ละองคกรมการเกบรวบรวมขอมลตางๆ ไวอยางมากมายมหาศาล และเปนรปแบบทไมมโครงสราง
(Unstructured) ทงรปแบบขอความตาง ๆ ยงเปลยนไปจากเดม จากรปแบบขอความ (Text) เปน
7
รปแบบไฟล Media มากขน จากผลส ารวจพบวา มขอมลทเกดขนใหมในแตละวนประมาณ 2.5
ลานลานลานไบต ของขอมลทงหมด
ขอมลจ าพวกทไมมรปแบบตายตวมกจะมปญหาในการเกบใน data warehouse เพราะท างานดวย
relational database ซงตองก าหนดโครงสรางของขอมลกอน มากไปกวานน data warehouse อาจจะ
ไมสามารถประมวลผลชดขอมลขนาดใหญทตองท าการ update ตลอดเวลานได ในกรณขอมลท
เปน real-time เชน ขอมลตลาดหน หรอ ขอมลผเขาใชบรการบนหนา website
ตวอยางขอมล Big Data เชน ขอมลเครอขายสงคม (Social Networks), ขอมลการบรการ
ทางเวบ (Web Server Log), ขอมลจากอปกรณตรวจตราการจราจร (Traffic Flow Sensors), ขอมล
ภาพถายดาวเทยม (Satellite Imagery), ขอมลดานการกระจายเสยง (Broadcast Audio Streams),
ขอมลธรกรรมทางธนาคาร(Banking Transaction), ขอมลดานการตลาดการเงน (Financial Market
Data), ขอมลการสอสารจากโทรศพทเคลอนท (Telemetry from Automobiles) เปนตน
ดงนนการจดการ Big Data จงจ าเปนตองใชระบบการเกบขอมลหรอการประมวลใน
รปแบบอนๆทอาจไมใช เพยงแคฐานขอมล RDBMS แบบเดมๆ
ในขณะท Big data เองเกยวของกบการรวบรวมขอมลขนาดใหญเขาดวยกน เพอใชในการ
วเคราะหขอมล จงไดเกด concept ของ Big data ขนโดยใชหลกการ 4 V คอ
1) Volume จดการเกบรวบรวมขอมลจากหลากหลายท รวมถง ขอมล transaction ของธร
กจทเกดขนทงหมด และ ขอมลใน social media ตาง ๆ ซงในอดตเองการเกบขอมลพวกนยอมเปน
ปญหาใหญ แตดวย technology ปจจบนทชอ Hadoop ไดลบขอจ ากดนนทงไป
2) Velocity ดวยชดขอมลทสงกนดวยความเรวสง และดวยขอจ ากดดานเวลา ทตอง
รองรบการใชงานของ user ทตองการในลกษณะ near-real time
3) Variety ความหลากหลายของขอมลหลายรปแบบ ดงเชน ตวอกษร, ตวเลข, email,
video, audio, ขอมล ticker ของตลาดหน และ ขอมลดานการเงน
4) Value ขอมลทเขามาตองมการตรวจสอบดวยวธการบางอยางเพอดงเอาขอมลทม
ประโยชน เพอใหพนททใชเกบขอมลสามารถใชไดอยางคมคา เชนการเกบขอมลสถตทงหมด กบ
การสมเอาตวอยางขอมลเกบไวเทานน
8
2.1.1.1 Big Data Analytics
ภาพท 2.2 Big Data Analytics
ทมา : https://goo.gl/peb8RD
Big Data Analytics คอ กระบวนการวเคราะหเซตขอมลขนาดใหญเพอคนหารปแบบ
ความสมพนธของขอมลเหลานนทซอนอยขางใน หาสงเชอมโยงทเชอมขอมลเหลานนเขาไว
ดวยกน หาเทรนดทางการตลาด หาความตองการของลกคา และขอมลอน ๆ ทเปนประโยชนตอ
ธรกจ ผลการวเคราะหขอมลนสามารถน าไปสการท าแผนการตลาดทมประสทธภาพ โอกาสในการ
สรางผลก าไร การใหบรการทดมากขนแกลกคา การปรบปรงการท างานใหเกดประสทธภาพ ความ
ไดเปรยบเหนอคแขงในการแขงขนทางการตลาด และผลประโยชนทางธรกจดานอน ๆ
เปาหมายหลกของ Big data analytics หรอ การวเคราะหบกดาตา คอ ชวยในการใหขอมล
กบบรษทเพอใชในการตดสนใจทางธรกจโดยการใช นกวทยาศาสตรขอมล (data scientists)
นกวเคราะหขอมลเชงสถต (predictive modelers) และผเชยวชาญในการวเคราะหขอมลดานอนๆ
มาท าการวเคราะหขอมลขนาดใหญทมการสงผานภายในองคกรหรอบรษท รวมไปถงขอมลทอยใน
รปแบบอนๆ ทอาจซกซอนอยในระบบตางๆของบรษท ซงแหลงขอมลทจะถกน ามาวเคราะหน
หมายรวมถง เวบเซรฟเวอรLogและการคลกดขอมลบนอนเตอรเนต คอนเทนทบนโซเชยลมเดย
และรายงานกจกรรมตางๆบนเครอขายสงคมออนไลน ขอความจากอเมลของลกคาและการตอบ
9
แบบสอบถาม เสยงบนทกรายละเอยดทางโทรศพทของลกคา และขอมลทมการบนทกไดจาก
เซนเซอรบนอปกรณทเชอมตอแบบ Internet of Things
Big Data สามารถวเคราะหไดดวยเครองมอทมการใชงานกนอยางแพรหลาย เชน Hadoop
YARN MapReduce Hive หรอ NoSQL เปนตน โดยจะถอวาเปนสวนหนงของการวเคราะหเชงลก
เชน การวเคราะหเพอคากการณลวงหนา การท าเหมองขอมล (Data mining) การวเคราะหขอความ
และการวเคราะหทางสถต นอกจากนเครองมอประเภท Mainstream BI software และเครองมอแบบ
data visualization กถอวาเปนเครองมอทท าหนาทอยในกระบวนการการวเคราะหขอมลเชนกน
2.1.2 High Availability
High Availability มชอยอในวงการสน ๆ วา HA องคกรหรอหนวยงานมากมายในปจจบน
มการวดประสทธภาพการใหบรการดวย HA โดยจะมหนวยการวดทเรยกวา Uptime ซงคดจากเวลา
เปน % ของการใหบรการ โดยมชอเรยกระดบการใหบรการตามตารางท 2.1 ดงน
ตารางท 2.1 แสดงระดบประสทธภาพการใหบรการดวย High Availability
Availability % Downtime per year Downtime per month* Downtime per week
90% (“one nine”) 36.5 days 72 hours 16.8 hours 95% 18.25 days 36 hours 8.4 hours 97% 10.96 days 21.6 hours 5.04 hours 98% 7.30 days 14.4 hours 3.36 hours
99% (“two nines”) 3.65 days 7.20 hours 1.68 hours 99.5% 1.83 days 3.60 hours 50.4 minutes 99.8% 17.52 hours 86.23 minutes 20.16 minutes
99.9% (“three nines”) 8.76 hours 43.8 minutes 10.1 minutes 99.95% 4.38 hours 21.56 minutes 5.04 minutes
99.99% (“four nines”) 52.56 minutes 4.32 minutes 1.01 minutes 99.999% (“five nines”) 5.26 minutes 25.9 seconds 6.05 seconds 99.9999% (“six nines”) 31.5 seconds 2.59 seconds 0.605 seconds
99.99999% (“seven nines”) 3.15 seconds 0.259 seconds 0.0605 seconds
10
ระดบทหลายหนวยงานหรอหลายอปกรณพยายามจะโฆษณา จะอยทระดบ Five nines
หรอ Uptime 99.999% นนเอง ซงจะเหนไดวาจะม Downtime แค 5.26 นาท ตอปเทานน ซงมองใน
ดานอปกรณเครอขาย จะมปจจยนอยทจะท าใหเกด Downtime แตในสวนของ Server นนจะมปจจย
มากกวาเพราะประกอบดวยอปกรณมากชน แตปญหาดงกลาวในปจจบนนอยลง หลงจากเขาสยค
ของ Cluster หรอ Cloud เพราะจะมเครองคอยท างานแทนกนอยตลอดเวลา
ภาพท 2.3 ตวอยางการท า High Availability ในระดบองคกร
ทมา : https://goo/gl/uoF6rU
โดยค าวา HA มกจะใชคกบสงทเราจะตองการจะสอวาจะท าอยางไรใหระบบม Uptime สง
ๆ เชน Server High Availability กคอท าใหเครอง Server มการใหสามารถท างานไดโดยไม Hang
ไมดบ ถาใชกบค าวา Web Server High Availability กหมายความวา จะท าอยางไรใหสามารถ
ใหบรการ Web Site โดยไมมอาการลม ซงบางครงเราจะมการ ตด Downtime ทเปนการวางแผน
เอาไวกอนแลว หรอเรยกสน ๆ วาการ Maintenance ระบบนนเอง
11
ลกษณะของ High Availability ทสามารถน ามาใชเพอเพม Uptime ไดมดงน
1) การใชเทคโนโลยคลชเตอร (Cluster): คอการน าเครองหลาย ๆ เครองมาตงคาให
เหมอนกน และท างานไดเสมอนวาม Server แคตวเดยว ในกรณทเมอเครองใดเครองหนงเสยหาย
จะไมสงผลตอการใหบรการ
2) การท ารดนแดนซ (Redundancy): คอการใชอปกรณจ านวนสองชดขนไปท างานพรอม
กน ท าใหไดประสทธภาพเตมท นยมใชในระบบเครอขาย
3) การเรพพลเคนและแบคอพ (Replication & Backup): คอการคดลอกขอมลจากระบบ
หลกไประบบรอง เมออปกรณหลกเกดลม กจะมการเปดระบบส ารองใชไดทนท
4) การท าโหลดบาลานซ (Load Balance): เราสามารถทจะเอาเครอง Server หลาย ๆ
เครองมาเชอมตอกน เพอใหท างานหลาย ๆ อยางรวมกน
โดยการท า Load Balance ยงสามารถอธบายเพมเตมได 3 ลกษณะดวยกนดงน
5) Round-Robin: คอการใชวธหมนวนไปเรอย ๆ ซงอาจท าไดทงแบบ Round-Robin ท
อปกรณ Load Balance หรอการจด DNS แบบ Round Robin
6) Sticky: คอการยดตดกบ Session ในกรณทเมอระบบมการเลอก Server ไปแลวกจะให
ผใชคนเดมใช Server เดมไปจนกวาจะหมด Session
7) Work Load: คอการตรวจสอบประสทธภาพของ Server กอนทจะเลอก โดยเลอกจาก
เครองทยงมประสทธภาพดกวากอน ท าใหระบบโดยรวมจะมประสทธภาพดกวาแบบ Round-
Robin เหมาะกบระบบทมประสทธภาพ Server แตกตางกน
2.1.3 Java Virtual Machine
JVM หรอ Java Virtual Machine คอ การสรางสภาวะแวดลอมจ าลองขนมาบนระบบ
เพอให application ทเขยนดวย java programming สามารถท างานไดสมบรณโดยไมตองค านงถง
เรอง hardware หรอ สถาปตยกรรม ทใชงานอย เราจะเรยก JVM แตละตวทท างานอยบนเครองวา
instance โดย process ทท างานอยนตองถก compiled เปน Java bytecode มาเรยบรอยแลว ซงการ
สราง JVM ท าไดโดย softwere ของ java ทชอ Java Runtime Environment (JRE) ซงภายในคอ
package java library จ านวนมากใหทาง developer เรยกใชงานในการท า application จากนนจงใช
เครองมอใน Java Development Kit (JDK) ซงหนงในนนคอ Javac compiler ทใชส าหรบแปลง
java bytecode หรอ file .class ทใชรน
12
การสราง Java Virtual Machine (JVM)
1) เรมจากการเขยน Code program ดวยภาษา Java
2) จากนนท าการ Compile code ดวย javac program ใน JDK
3) ผลลพธทไดคอ Java bytecodes หรอ java class files
4) ท าการสราง Java Virtual Machine (JVM) ดวยการ load class ของ java bytecode และ
library ผาน java program
5) Java Virtual Machine (JVM) จะท าการจองหนวยความจ าหรอทเรยกวา Heap memory
เพอการใชงานส าหรบ application
ภาพท 2.4 แสดงขนตอนการสราง Java Virtual Machine (JVM)
ทมา : https://goo.gl/YpUaA6
การท างานของ Class loader
หนงในสวนส าคญของ JVM กคอ java class ทผานการ compile มาแลว ซงตว class loader
น าเอา java class พวกน load เขาส memory เพอท างาน โดยมการท างานหลกๆดงน
1) Load file ขอมล รวมถง import java library ทเกยวของ
2) ตรวจเชกขอมลทท าการ import รวมถงจองหนวยความจ าเรมตนส าหรบการใชงาน
(Heap memory)
3) เรมท าการ initial java class โดยการเรมสรางตวแปรทตองใชงาน
13
Java Virtual Machine มคณสมบต 4 ขอ ดงน
1) ท างานเปน Stack-base คอการเพมขอมลในลกษณะเปนชนตอๆกน LIFO (Last in
First Out)
2) เปน Symbolic reference ส าหรบ java class หรอ interface คอ ตวแปรทงหมดแคท า
link ไปยงขอมลทเกบไวบน memory
3) สามารถท างานไดทก Platform โดนการก าหนด data type ทกชนดไวตายตวเหมอนกน
4) ม Garbage collection ท าการ clear memory หรอ ลางคาตวแปรให
2.1.3.1 Java Heap
Java Heap หรอ JMV Heap คอหนวยยอยของ JVM ซงคอ Java Heap หนวยความจ า หรอ
memory ท Java ใชงานกนใน Java virtual machine
ภาพท 2.5 แสดงถง Java Memory Model
ทมา : https://goo.gl3QnoHL
จากภาพท 2.5 จะเหนสวนประกอบ Memory ท JVM ใชงานแบงออกเปน กลมหลกๆดงน
1) Heap Memory ท าหนาทเกบสวนของตวแปร java objects
2) Non-Heap Memory ใชเกบสวนของ java class และสวนของ meta-data
3) JVM code เกบขอมลสวนของ profile ภายในโครงสราง JVM เอง
14
1) Heap Memory
JVM เองจะมการสราง heap memory ขนมาตงแตเรม run program ส าหรบขอมล
พวก class instances ตวแปร และ array ของ JVM ทท าการ load ขนเพอใชงาน และสามารถก าหนด
ขนาดหรอ size ไดจาก JVM option ดงน
1) -Xmx<size> – ตงคาสงสดของ Java heap size
2) -Xms<size> – ตงคาเรมตนของ Java heap size
โดยปกตแลวคาสงสดจะตงไวท 64 Mb ซง heap memory เองจะมการ clear คา
เพอน ากลบมาใชใหมเรอยๆดวย process garbage collector หรอ gc โดยขนาดของ heap เองสามารถ
มไดทงขนาดตายตว หรอ ขยายเองเรอยๆตามการใชงาน จงมลกษณะตามชอเรยกคอ Heap memory
หรอ กองหนวยความจ า
ในสวนของ Java Heap จะมสวนประกอบยอยตามภาพท 2.5 ดงน
2.2) Young generation
ใชงานในสวน Heap กวา 40% เปน Eden Space ทใชเกบคาของ object ทถก
ก าหนด และสวนมากจะถก clear อยางรวดเรวดวย minor gabage collector ซง object ใหมๆทสราง
ขนภายใต java method จะถกเกบใน Eden space นแหละ แตส าหรบ object ทยงคงใชงานตอเนอง
จะถกยายไปอย survivor space หรอ old generation
ส าหรบ Survivor space คอ memory สวนทเหลอจาก heap และรอดจากการท า
garbage collection บน Eden space เราสามารถก าหนดคาไดจาก –XX: Survivor เชน Ratio=6 ซง
มนคออตราสวนของ Survivor Space และ Eden เปน 1:6 โดยถา survivor space มคาเลกเกนไปกจะ
มการยายไปลงในสวน tenured generation (old generation)
1.2) Old generation (Tenured)
Pool memory นจะเกบ object ทสรางขนบน survivor space บางชวงเวลา และม
การใชงานบอยครง จะถกยายมาเกบบน Tenured generation หรอ old generation นเพอใชงานโดน
application ตลอดการท างาน
2) Non-Heap Memory (PermGen)
นอกจาก JVM จะม heap แลว กจะมสวนของ PermGen หรอ non-heap memory
ดวย ซงเรมท าการจองตงแตเรมสราง JVM เพอเกบคาของโครงสราง class ตางๆเชน pool ของ
15
คาคงท หรอ method ตางๆท code ใชงาน ซงถาพบการท างานของ non-heap ทผดปกตเชน ขนาด
ของ memory ทสงเกนไป ตองท าการตรวจสอบดงน
2.1) ถามปญหาเรองการ load class จนท าใหเกด memory leak ตองตรวจสอบ
จาก class loader
2.2) ถามการสรางตวแปร string มากผดปกต ตองตรวจสอบเรอง object
allocation ทใชงาน
ถา Application ทใชงานตองการ non-heap memory ขนาดใหญกวาปกตท 64 Mb
เราสามารถท าการขยายคา memory สงสดไดจาก JVM option -XX: MaxPermSize=<Memory>
เชน-XX: MaxPermSize=128m
2.1.4 NoSQL
ภาพท 2.6 Not Only SQL
ทมา : https://goo.gl/6jZJqs
ค าวา NoSQL นอนทจรงแลวเปนค าทใชเรยกเทคโนโลยทไมใช SQL แทบจะทงหมด ท า
ใหค าวา NoSQL นนไมมมาตรฐานแตอยางใด แตกลาวโดยรวมกคอ NoSQL มกจะเปนเทคโนโลย
ฐานขอมลทถกออกแบบมาส าหรบงานเฉพาะทางบางอยางท SQL ยงไมสามารถตอบโจทยไดด
เพยงพอ ตวอยางเชน
1) DynamoDB, Riak และ Cassandra ทเนนใหฐานขอมลมความทนทาน, สามารถบนทก
ขอมลและเรยกอานขอมลไดตลอดเวลา ถงแมวาขอมลทถกอานออกไปนนจะไมใชขอมลลาสด
16
2) MongoDB และ CouchDB ทตอยอดจาก Key-Value ดวยการบนทกขอมลเปน JSON
ทมความยดหยนกวาแทน พรอมระบบ Sub-key และ Sub-Value ภายในกบการท า Sharding ให
รองรบการบรการขอมลจ านวนมากดวยความเรวสง
3) Redis ทถกออกแบบมาใหเปน Key-Value ทสามารถจดการกบขอมลไดรวดเรวและด
ขน โดยเปนทนยมส าหรบการสรางขอมลทมการเรยงล าดบหลายๆ ชด ส าหรบใชในการท า
Ranking และ Leaderboard รวมถงยงมความสามารถในการจดเรยงและประมวลผลทางสถตท
ซบซอน ส าหรบน าไปใชใน Application เฉพาะทางบางอยางไดด
4) Neo4j เปนฐานขอมลส าหรบการประมวลผลขอมลแบบ Graph โดยเฉพาะ
5) Elasticsearch เปนระบบฐานขอมลส าหรบการคนหาขอมลแบบ Text โดยเฉพาะ
คณสมบตของ NoSQL Database มดงตอไปน
ภาพท 2.7 แสดงลกษณะของ Auto-Sharding
ทมา : https://goo.gl/6jZJqs
1) Dynamic Schemas การจดเกบขอมลตางๆ ในฐานขอมลแบบ Relational Database เรา
จะตองมการสราง Schema หรอรปแบบของโครงสรางตาราง วาจะจดเกบขอมลอะไรบาง เมอ
ตองการจดเกบขอมลเพมเตมตองเปลยน Schema ภายหลง (Alter-Table) กอนจะจดเกบขอมล
รปแบบใหมได
17
แตในปจจบนการจดเกบขอมลมการเปลยนแปลงตลอดเวลา เพราะความตองการจดเกบ
ขอมลตางๆ มหลากหลายมากขนเรอยๆ การตองก าหนดโครงสรางของตารางฐานขอมลเปนอยางไร
เปนเรองไมงายนก หรอการตองเปลยนโครงสรางฐานขอมลบอยๆ โดยทขอมลยงมอยแลว เปน
เรองทยากมากหรอท าไมไดเลย วธการคออาจตองแยกออกเปนตารางใหม ซงเปนวธแกปญหา
ชวคราวเทานน
ระบบฐานขอมลแบบ NoSQL เราไมจ าเปนตองม Schema ทตายตว หรอไมตองม Schema
กอนทจะจดเกบขอมล ขอมลแตละแถว สามารถจดเกบไดตามตองการ จะเพมหรอลด กไมมปญหา
กบระบบ ท าใหเราสามารถจดเกบขอมลไดตามทตองการ เปลยนแปลงไดตลอดเวลา สะดวก
รวดเรวมากๆ
2) Auto-Sharding เมอขอมลมขนาดใหญ หรอเราตองการเพมประสทธภาพการ อาน-
เขยนขอมลปรมาณมากๆ การท า Sharding ในระบบ NoSQL Database จะท าการกระจายขอมลไป
ยง Server ตางๆอตโนมต (Auto-Sharding) ผพฒนา (Developer) ไมตองเขยนโปรแกรมในการ
กระจายขอมลเอง เหมอน Relational Database
การกระจายขอมลออกไปหลายๆ Server นยงท าใหมขอดคอ ประหยดตนทนในการขยาย
ระบบ เพราะเปนการขยายแบบแนวราบ (Scale Out) ซงสามารถน า Server ปกตทวไปมาใชงานได
ไมจ าเปนตองเปน Enterprise Server
3) Replication การส าเนาขอมลจากเครองหนงไปยงอกเครองหนง (Replication) เมอ
Server หนงเสยหาย อกเครองหนงจะขนมาท างานแทนทนท โดยขอมลของแตละเครองจะมขอมล
เหมอนกน ดงนน Replication เปนหนงคณสมบตทตอบสนองตอการใชงานทตองการความ
ตอเนองไดตลอดเวลา (High Availability)
4) Integrated Caching การจดเกบขอมลทใชงานบอย ๆ เขาไวใน Memory (RAM) ซง
เปนคณสมบตเดนของ NoSQL ทรวม Caching ไวในตวเองอยแลว เราไมจ าเปนตองท า Cache
Layer เหมอน Relational Database อกตอไป ทตองท า Cache Layer แยกตางหากและตองดแลรกษา
แยกออกไปตางหากอกดวย
ประเภทของฐานขอมล NoSQL
NoSQL ถกแบงประเภทตามลกษณะการจดเกบขอมลทแตกตางกน ดงนนการจะเลอก
NoSQL Database สกตวหนง จะตองดดวยวา การจดเกบขอมลของฐานขอมลเปนอยางไร เชน
1) Document databases เชน MongoDB, CouchDB, Elasticsearch
18
2) Graph stores เชน Neo4J, Infinite Graph, InfoGrid
3) Key-value stores เชน DynamoDB, Redis, MemcacheDB
4) Wide-column stores เชน Cassandra, Amazon SimpleDB, Hadoop / HBase
ขอดของ NoSQL
1) โดยมาก NoSQL มกถกออกแบบมาใหม Availability สงมาก และ Scale ระบบเพอ
รองรบผใชงานจ านวนมากไดงาย ถงแมระบบจะท างานรวมกนขาม Data Center กตาม
2) NoSQL หลายๆ ระบบถกออกแบบมาส าหรบ Unstructured Data โดยเฉพาะ เชน
ประมวลผล Log, XML, JSON และเอกสารตางๆ ท าใหมความยดหยนในการใชงานเฉพาะทางแต
ละประเภทสง
ขอเสยของ NoSQL
1) สวนใหญแลว NoSQL จะท างานแบบ Non-transactional ดงนนถาหากขอมลมความ
ละเอยดสงและผดพลาดไมไดเลย NoSQL หลายๆ ระบบกอาจจะไมเหมาะในหลายๆ กรณ
2) การเรยกอานขอมลขนมาใชสวนใหญมกจะม Cost ทสงกวาการใช SQL เพราะไม
สามารถเลอกเจาะจงไดอยางงายๆ วาจะเรยกขอมลสวนไหนขนมา ยกเวนส าหรบงานเฉพาะทาง
บางอยางทจะดกวา SQL แบบชดเจนมาก (ขนอยกบงานทท าและเทคโนโลยทเลอก) แตการบนทก
ขอมลลงไปสวนใหญจะงายกวา SQL
3) เทคโนโลยสวนใหญไมมความเปนมาตรฐานกลาง ดงน นการเปรยบเทยบแตละ
เทคโนโลยคอนขางท าไดยาก ผใชงานตองมความคนเคยกบการจดการ Software เหลานใหไดดวย
ตวเอง
4) ผเชยวชาญทสามารถสนบสนนเทคโนโลยเหลานในระดบองคกรไดนนยงมไมมาก
แตเทคโนโลย NoSQL นกลบมความจ าเปนมากในการทองคกรจะสรางความแตกตางในเชง
เทคโนโลยจากคแขง
19
2.1.5 REST (Representational State Transfer)
ภาพท 2.8 Representational State Transfer (REST)
ทมา : https://goo.gl/CJCjfC
Representational State Transfer (REST) นนถกพดถงครงแรกในป 2000 โดย Roy Thomas
Fielding ซง Representational State Transfer (REST) นนเปน Architecture (สถาปตยกรรมการ
สอสารขอมล) รปแบบหนงทใชแผรกระจายสอ เปนแนวทางใหมในการสราง Web Service แบบ
เรยบงาย โดยเรยกใชผานทาง HTTP Method GET / POST / PUT / DELETE และสงขอมลออกมา
ในรปของ XML ท าใหปรมาณขอมลทรบสง นอยกวาการใช Protocol SOAP อยมาก ซงขอดขอน
ของ REST ท าให Developer หลายๆ คนหนมาสนใจการเขยนโปรแกรมแบบใช RESTful Web
Service กนมากขน เพราะมผลกบเรอง Performance ของการใชงานโปรแกรมเปนอยางมาก แต
เนองจากเรอง REST นเพงเกดขนมาเมอป 2000 ท าใหยงไมมมาตรฐานทก าหนดใหบงคบใชงาน
เหมอน Protocol SOAP เดม ซงจะสงเกตไดวาจะไมม REST Specification อยบน W3C และไมม
REST Developer Toolkit ถาหากอยากใช RESTful กตองก าหนดเงอนไขจากภาษาทเขยนเอาเอง
โดยภาษาในยคปจจบนนมการรองรบ RESTful Web Service หรออกชอหนงคอ RESTful Web
API กนเปนสวนใหญแลว
การใชงาน Resource ตางๆ ผาน HTTP protocol, ผาน URI ทสอสารไดชดเจน, ผาน HTTP
method ทเหมาะสม เชน
1) HTTP GET ส าหรบการดงขอมล
2) HTTP POST ส าหรบการสรางขอมล
20
3) HTTP PUT ส าหรบการแกไขขอมล
4) HTTP DELETE ส าหรบลบขอมล
รปแบบของขอมลทใชสอสารกนอยในรปแบบ XML, JSON, Atom และอนๆ อกมากมาย
แตหนงในรปแบบทไดรบความนยมคอ JSON
เปน API อยางหนง ซงทก ๆ system ตางใช resource ซงเปนไดทง image, video, web page
หรอขอมลทางธรกจ กไดทสามารถแสดงบนระบบ computer วตถประสงคเพอให user สามารถ
เขาถง, ตดตง, ปรบแตง, ขยาย resource เหลานไดงาย ซงทาง RESTful ไดออกแบบมาใหม
คณสมบตตอไปน
1) แสดงผล
2) เกบขอมล
3) ม URIs
4) Stateless ท างานโดยไมตองม session
5) เชอมตอระหวาง Web service
6) Caching
ตวอยาง Response
JSON
{
"ID": "1",
"Name": "M Vaqqas",
"Email": "[email protected]",
"Country": "India"
}
XML
<Person>
<ID>1</ID>
<Name>M Vaqqas</Name>
<Email>[email protected]</Email>
21
<Country>India</Country>
</Person>
HTTP Request
ภาพท 2.9 แสดงลกษณะของ HTTP Request
ทมา : https://goo/gl/sdBCcu
1) <VERB> เปนสวนของ HTTP method เชน GET, PUT, POST, DELETE
2) <URI> คอต าแหนงของสถานทขอมล ทตองการใหระบบท างาน
3) <HTTP Version> ปกตจะใช “HTTP v1.1”
4) <Request Header> สวนของ metadata ทใชเกบคา key-value ของ header เพอบอก
ขอมลผสง เชน format ของขอมล body
5) <Request Body> สวนขอมล content ใน REST
ตวอยาง POST Method
POSThttp: //MyService/Person/
Host: MyService
Content-Type: text/xml; charset=utf-8
Content-Length: 123
<? xmlversion="1.0"encoding="utf-8"?>
<Person>
<ID>1</ID>
<Name>MVaqqas</Name>
<Email>[email protected]</Email>
22
<Country>India</Country>
</Person>
ตวอยาง GET Method
GEThttp://www.w3.org/Protocols/rfc2616/rfc2616.htmlHTTP/1.1
Host: www.w3.org
Accept: text/html,application/xhtml+xml,application/xml; …
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 …
Accept-Encoding:gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6
HTTP Response
ภาพท 2.10 แสดงลกษณะของ HTTP Response
ทมา : https://goo/gl/sdBCcu
1) <Response Code> คอผลลพธการท างานในระดบ HTTP เปนเลข 3 หลก ถาปกต
จะเปน 200 OK
2) <Response Header> สวนของ metadata ทใชเกบคา key-value ของ header
3) <Request Body> สวนขอมลผลลพธ content ใน REST
ตวอยางผลลพธจาก GET Method
HTTP/1.1200OK
Date:Sat,23Aug201418:31:04GMT
Server:Apache/2
23
Last-Modified:Wed,01Sep200413:24:52GMT
Accept-Ranges:bytes
Content-Length:32859
Cache-Control:max-age=21600,must-revalidate
Expires:Sun,24Aug201400:31:04GMT
Content-Type:text/html;charset=iso-8859-1
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<htmlxmlns='http://www.w3.org/1999/xhtml'>
<head><title>HypertextTransferProtocol--HTTP/1.1</title></head>
<body>
...
2.2 เทคโนโลยทใชในการปฏบตงาน 2.2.1 โปรแกรม ElasticSearch
ภาพท 2.11 โลโกของ ElasticSearch
ทมา : https://goo.gl/qWFuH4
Elasticsearch คอ distributed data store ตวหนงทมความสามารถหลกๆ คอ search (พฒนา
ตอยอดมาจาก Lucene) ทไมใช search แบบธรรมดา แตเปน distributed search ททกๆ ฟลดขอมลท
เกบจะถกท า index ไว ท าใหความเรวในการ search กบขอมลขนาดมหาศาลนนแทบจะเปน real-
time เลยทเดยว และการตดตอกบสวน data store สามารถท าไดโดยผาน RESTful API
24
ElasticSearch เปนแบบ real-time กระจายและเปดแหลงคนหาขอความแบบเตมและการ
วเคราะหเครองยนต มนเปนอนเตอรเฟซทสามารถเขาถงไดจากบรการเวบสงบและใชสคนอย
JSON (JavaScript Object Notation) เอกสารการจดเกบขอมล มนถกสรางขนในการเขยนโปรแกรม
ภาษา Java ซงจะชวยให ElasticSearch เพอใหท างานบนแพลตฟอรมทแตกตาง ซงจะชวยใหผใชใน
การส ารวจจ านวนมากของขอมลทความเรวสงมาก
ลกษณะโดยทวไปของ ElasticSearch มดงน
1) ElasticSearch สามารถปรบไดถงเพตาไบตของขอมลโครงสรางและไมมโครงสราง
2) ElasticSearch สามารถน ามาใชแทนของรานคาเอกสารเชน MongoDB และ RavenDB
3) ElasticSearch ใช denormalization เพอปรบปรงประสทธภาพการคนหา
4) ElasticSearch เปนหนงในเครองมอคนหาทนยมองคกรซงขณะนจะถกใชโดยองคกร
ขนาดใหญจ านวนมากเชนวกพเดย, เดอะการเดย StakOverflow, GitHub ฯลฯ
5) ElasticSearch เปดแหลงทมาและอยภายใตใบอนญาต Apache รน 2.0
2.2.1.1 แนวคดหลก
แนวคดทส าคญของ ElasticSearch มดงน
1) Node - หมายถงตวอยางการใชเพยงครงเดยวของ ElasticSearch เซรฟเวอรทาง
กายภาพและเสมอนเดยวรองรบโหนดหลายขนอยกบความสามารถของทรพยากรทางกายภาพของ
พวกเขาเชน RAM, การจดเกบและพลงการประมวลผล
2) Cluster - เปนคอลเลกชนของหนงหรอมากกวาโหนด คลสเตอรใหรวมการจดท า
ดชนและการคนหาความสามารถทวทกโหนดส าหรบขอมลทงหมด
3) Index – เปนคอลเลกชนของประเภททแตกตางกนของเอกสารและคณสมบตของ
เอกสาร ดชนยงใชแนวคดของเศษในการปรบปรงประสทธภาพการท างาน ตวอยางเชนชดของ
เอกสารทมขอมลของแอปลเคชนเครอขายสงคม
4) Type/Mapping - เปนคอลเลกชนของเอกสารทใชงานรวมกนชดของเขตขอมล
ทวไปในปจจบนดชนเดยวกน ตวอยางเชนดชนมขอมลของแอปลเคชนเครอขายสงคมและแลวกม
อาจจะเปนประเภททเฉพาะเจาะจงส าหรบขอมลรายละเอยดผใชประเภทขอมลสงขอความอนและ
อน ๆ ส าหรบขอมลความคดเหน
4) Document – เปนคอลเลกชนของเขตขอมลในลกษณะทเฉพาะเจาะจงทก าหนดไว
25
ในรปแบบ JSON เอกสารเปนของประเภทและอาศยอยภายในดชน เอกสารทกคนมความเกยวของ
กบตวระบทไมซ ากนทเรยกวาการ uid
5) Shard – ดชนจะแบงออกเปนแนวนอน ซงหมายความวาแตละชารดมคณสมบต
ทงหมดของเอกสาร แตมจ านวนนอยของวตถ JSON กวาดชน การแยกแนวนอนท าให Shard
โหนดอสระซงสามารถเกบไวในโหนดใด ๆ ชนสวนหลกคอสวนแนวนอนเดมของดชนและแลว
เหลานเศษหลกถกจ าลองแบบจ าลองลงในเศษ
6) Replicas - ElasticSearch ชวยใหผใชในการสรางแบบจ าลองของดชนแบบไมเพยงแต
ชวยในการเพมความพรอมใชงานของขอมลในกรณของความลมเหลว แตยงชวยเพมประสทธภาพ
ของการคนหาโดยการด าเนนการคนหาขนาดในแบบจ าลองเหลาน
ขอดของElasticSearch
1) ElasticSearch การพฒนาบน Java ซงจะท าใหมนเขากนไดในเกอบทกแพลตฟอรม
2) ElasticSearch เปนเวลาจรงในค าอน ๆ หลงจากทหนงทสองเพมเปนเอกสารทสามารถ
คนหาไดในเครองยนตรนน
4) ElasticSearch มการกระจายซงท าใหงายตอการปรบขนาดและบรณาการในองคกร
ขนาดใหญ
4) สรางการส ารองขอมลเตมรปแบบไดงายโดยใชแนวคดของ Gateway มอยใน
ElasticSearch
5) จดการหลายครอบครองเปนเรองงายมากใน ElasticSearch เมอเทยบกบ Apache Solr
6) ElasticSearch ใชวตถ JSON การตอบสนองซงจะท าใหมนเปนไปไดทจะเรยก
เซรฟเวอร ElasticSearch ทมจ านวนมากของการเขยนโปรแกรมภาษาทแตกตางกน
7) ElasticSearch สนบสนนเกอบทกประเภทของเอกสารยกเวนผทไมสนบสนนการ
แสดงผลขอความ
ขอเสยของElasticSearch
1) ElasticSearch ไมไดมการสนบสนนหลายภาษาในแงของการจดการและการ
ตอบสนองการรองขอขอมล (Only possible in JSON) แตกตางจากใน Apache Solr ทมนเปนไปได
ใน CSV, XML และ JSON รปแบบ
26
2.2.1.2 เปรยบเทยบระหวาง ElasticSearch และ RDBMS
ใน ElasticSearch ดชนคอชดของประเภทเชนเดยวกบฐานขอมลคอชดของตารางใน
RDBMS (Relation Database Management System) ทกตารางคอชดของแถวเชนเดยวกบการท า
แผนททกคนเปนคอลเลกชนของ JSON
ตารางท 2.2 แสดงการเปรยบเทยบชอเรยกระหวาง ElasticSearch และ RDBMS
ElasticSearch RDBMS
Index Database
Shard Shard
Mapping Table
Feild Field Object JSON Tuple
2.2.2 โปรแกรม Logstash Logstash เปนเครองมอส าหรบจดการพวก log และ event ตางๆ ทเกดขนมา สามารถใช
Logstash เพอท าการสะสม กรอง และ จดเกบขอมล เพอใชงานตอไป ตวอยางเชน การคนหาขอมล
ภาพท 2.12 แสดงสวนการแสดงขอมลของโปรแกรม Logstash
ทมา : https://goo.gl/YMCT5d
27
สวนการท างานของ Logstash ประกอบไปดวย 4 สวน คอ
1) Input คอ ขอมลเขาตางๆ หรอ source data
2) Codec คอ การเขารหสขอมล
3) Filter คอ การกรองขอมลใหอยในรปแบบทตองการ
4) Output คอ ขอมลออกในรปแบบตางๆ หรอ ทจดเกบผลลพธตาง ๆ
ภาพท 2.13 แสดงตวอยางไฟล Config ของ Logstash อยางงาย
จากภาพท 2.7 อธบายไดดงน ในสวนของ Input ท าการเพม field ใหมเขาไป คอ host เพอ
ก าหนด IP ของเครองทเกบหรอสราง Log เพอใชในการคนหาตอไป
1) ในสวนของ filter จะใชงาน filter ชอวา multipleline โดยก าหนด pattern ใหขนตน
ดวย [XXXX] เสมอ
2) ในสวนของ output ก าหนดใหไปเกบใน Elasticsearch โดยไปเกบใน cluster ชอวา
elasticsearch
28
2.2.3 โปรแกรม Kibana
ภาพท 2.14 โลโกของ Kibana
ทมา : https://goo.gl/V5xwJK
Kibana คอ เครองมอ Visualize ส าหรบแสดงผลขอมลจาก Elasticsearch ในรปแบบตางๆ
เชน กราฟแบบตางๆ ตาราง แผนท และสามารถสรางการแสดงผลขอมล หรอ Dashboard ไดตาม
ความตองการ
2.2.3.1 การตดตง Kibana หมายเหต ตองตดตง Elasticsearch มากอน 1) DownloadKibanahttps://www.elastic.co/downloads/kibana 2) Unzipkibana-5.3.0.zip 3) เปดไฟล config/kibana.yml ในโปรแกรม editor
ภาพท 2.15 File .yml ของโปรแกรม Kibana
4) ตงคา elasticsearch.url ระบ IP ของ Elasticsearch
29
ภาพท 2.16 ระบ IP ของ Elasticsearch
5) Run bin/kibana (or bin\kibana.bat on Windows) โดยดบเบลคลก kibana.bat หรอ พมพค าสงใน Cmd: start kibana.bat
ภาพท 2.17 File .bat ของโปรแกรม Kibana
6) เปด Browser พมพ URL: http://localhost:5601
ภาพท 2.18 เรมตนใชงานโปรแกรม Kibana
30
2.2.4 Virtual Machines
Virtual Machines คอโปรแกรมคอมพวเตอรซอฟตแวรทสามารถรนระบบปฏบตการ
(Operating System) เชน Windows และ Linux, แอปพลเคชนเชน email server, web server และ
database server โดยท Virtual Machines จะสามารถใหบรการดานตาง ๆไดเหมอนกบ ฮารดแวร
จรง ๆ (Physical Machines) Virtual Machines จะประกอบดวยไฟล config และ ไฟลขอมล (disk
image) ทเกบอยบน Storage
2.2.4.1 ประโยชนของเทคโนโลย Server Virtualization
1) ลดคาใชจายโดยการลดจ านวนเซรฟเวอรฮารดแวร ทตองใช ลดการใชงานพนทของ
Data Center ลดคาไฟ ลดคาบ ารงรกษาและอนๆ
2) เพมเสถยรภาพของระบบและลดผลกระทบจากกรณเซรฟเวอรฮารดแวรมปญหาโดย
การท าคลสเตอร (Cluster) เพอรองรบ High Availability (HA) ไดงายโดยใชคาจายทถกลง
3) เนองจาก Virtual Machines เปนไฟลทเกบทงระบบปฏบตการ (Operating System)
แอปพลเคชนและขอมล จงสามารถท าการส ารอง (backup) หรอท าการส าเนา (replication) ไปยง
Data Center ส ารอง (DR Site) เพอรองรบแผนฉกเฉน (Disaster Recovery) ไดงาย
4) โดยอาศย Hypervisor ซอฟตแวร ท าหนาทเปนตวขนระหวาง Operating System และ
Server Hardware จงท าใหมความยดหยนในการโยกยาย Virtual Machines ไปรน บนเครองตาง รน
และตางยหอได
6) ยดอายการใชงานแอปพลเคชนทตองรนบนระบบปฏบตการเกาๆ
7) หนวยงานไอทสามารถตอบสนองความตองการทางธรกจไดรวดเรวขน โดยการลด
เวลาในการตดตงระบบปฏบตการและแอปพลเคชน โดยการส าเนา จาก Virtual Machines template
31
เปรยบเทยบระหวาง Physical Server กบ VM Server แลว Server หนงเครองจะลง
Operating System เชน Windows หรอ Linux ไดแคหนงตว เมอมแอปพลเคชนเพมมากขนกตองซอ
เครองเพมขน และถาหากตองการท า High Availabilityกตองซอเครองเพมเปนสองเทาเพอท า
Cluster 0
ภาพท 2.19 Physical Server ทเพมขน
ภาพท 2.20 Physical Server กบ High Availability
Server Virtualization ท ำให Server Hardware 1 เครองสำมำรถรองรบไดหลำย Operating
System และ หลำยแอปพลเคชน
ภาพท 2.21 การขยายของServer Virtualization
ทมา : https://goo.gl/YpUaA6
บทท 3
แผนงานการปฏบตงานและขนตอนการด าเนนงาน
3.1 แผนงานการปฏบตงาน ตารางท 3.1 แสดงการปฏบตงานโดยภาพรวมตลอดทง 8 สปดาห (วนท 22 พฤษภาคม ถง
14 กรกฎาคม 2560 หลงจากนนไปฝกงานทประเทศญปนเปนเวลา 12 สปดาห) ซงรายละเอยดการ
ปฏบตงานนนจะกลาวถงในหวขอท 3.3 “ขนตอนการด าเนนงานโครงงาน”
ตาราง 3.1 แสดงสงทไดปฏบตโครงงานในระหวางการสหกจศกษา
รายละเอยด พฤษภาคม มถนายน กรกฎาคม 1 2 3 4 1 2 3 4 1 2 3 4
ศกษาหาขอมลเกยวกบ Logs Analytics ศกษาหาขอมลเกยวกบ Tools ทเลอกใช ศกษาสถาปตยกรรมระบบเกบLogsของNTT ออกแบบDiagram ทดสอบระบบ
3.2 รายละเอยดโครงงาน ศกษาและออกแบบไดอะแกรม เพอใหไดรปแบบระบบทสามารถน าไปใชงานในการ
วเคราะห Logโดยมคณสมบตคอ มขนาดหนวยความจะและหนวยการประมวลผลสมพนธกบความ
จ าเปน เพอใหเหมาะสมกบคาใชจายและงบประมาณ และมความมนคงของระบบ
3.2.1 ระบบมขนาดหนวยความจ าและหนวยประมวลผลสมพนธตอความจ าเปน
เนองจากขนาดหนวยความจ าและตวประมวลผลขอมลของคอมพวเตอรนน หากมขนาด
ใหญจะท าใหคาใชจายมมากตามไปดวย การใหบรการจงควรค านงถงคาใชจายและงบประมาณใน
สวนน ขาพเจาจงศกษาการท างานของโปรแกรมทน ามาใชงานอยางละเอยด รวมไปถงการ
ตงสมมตฐานในการค านวนขนาดของขอมลอยางงาย เพอใชในการประมาณขนาดของระบบ
33
หลกการก าหนดขนาดพนทและหนวยประมวลผลใหกบเครองคอมพวเตอรเสมอน คอ การ
ประมาณขนาดของขอมล โดยดไดจาก ตวอยางของ Records ของขอมลทจะน ามาประมวลผล
ขอมลทเปนตวอกษรหรอ Text นน 1 ตวอกษรจะมขนาดเทากบ 1 byte
ตวอยาง Log ของอเมล
Jul 11 08:45:07 bkk0-smtp-in00 amavis[5126]: (05126-10-2) Passed CLEAN {RelayedInbound}, [xxx.xxx.156.166]:56099 [xxx.xxx.156.166] <[email protected]> -> <[email protected]> ,Queue-ID:890EE120085,Message-ID: <3F817A35BB777B4FB986BB3A887F0B6C3BB9C0D [email protected]>, mail_id: Ut0ru5YNQscb, Hits: 0.744, size: 348020, queued_as: 1AFB7120063, 15528 ms
มขนาด 359 ตวอกษร เทากบวา ขนาดของ Email Log 1 Record นนมขนาด 359 byte ซง
สามารถประมาณตอไปไดวา 1 วนจะม Log ก Records และตองการเกบขอมล Log กวนมาใช
ประมวลผล
ในทนเรารขนาดขอมลไดจาก Log ใน Raw log ทเกบไวอยแลว ในการก าหนดขนาดพนท
และหนวยประมวลผลจงท าไดโดย ก าหนดอตราสวน ขนาดของหนวยประมวลผลตอขนาดของ
หนวยความจ า เชน ในทนก าหนดให RAM 1 GB ตอ 12 GB Storage หากตองการพนท32 GB จะ
ได RAM 3 GB แตเพราะ ElasticSearch ใช Java ในการท างาน ท าใหจ าเปนตองมพนทส าหรบ ให
Java Heap ประมวลผลครงหนง ของท ElasticSearch ใชงาน ซงอาจจะท าใหไมเพยงพอตอการ
ประมวลผลโปรแกรมอน ๆ แตเราสามารถก าหนดขดจ ากดของการใชงาน Java Heap โดยหากใช
หนวยประมวลผลนอยอาจจะมผลตอการประมวลผล ดงนนหากตองการใชงานกบโปรแกรมอน
ควรเพมหนวยประมวลผล
3.2.2 ระบบตองการความมนคง
ในการประกอบธระกจใดกตาม ความมนคงตอเนองของระบบการท างานถอเปนจดท
ส าคญอยางยงตอภาพลกษณและความเชอมนตอธรกจนน ๆ Elasticsearch จงมวธการจดการปญหา
นดวยการ replicate ซงท าการ copy index ไปไว node อน ท าใหระบบสามารถยงท างานได ถาม
node ใด node หนงดบไป โดยยงมขอมลครบเหมอนเดม และยงชวยเพมความสามารถในการอาน
นนคอสามารถรองรบการใชงานไดมากขน นนหมายถงสามารถท าการใชงานในแตละ node ได
พรอมกน
34
3.3 ขนตอนการด าเนนงานทนกศกษาปฏบตงานหรอโครงงาน
3.3.1 ขนตอนการท าโครงงาน
3.3.1.1 ศกษาขอมลเกยวกบ Log Analysis
ในขนตอนนไดท าการคนควาขอมลเบองตนผาน Internet โดยรวมรวมจาก ขอมลเกยวกบ
Big Data, Data Analytics และ Log ดงทไดกลาวถงในสวนของทฤษฎทเกยวของ
3.3.1.2 ศกษาการท างานของ Tools ทเลอกใช
ในขนตอนนไดท าการศกษาการท างานหลกการ และการใชงานโปรแกรม Toolsทเลอกใช
คอ ElasticSearch, Kibana และ Logstash ตามล าดบ โดยรายละเอยดของโปรแกรมไดถกกลาวถงใน
สวนของเทคโนโลยทใชปฏบตงาน และสามารถดเพมเตมไดจากเอกสารอางอง
3.3.1.3 ศกษาสถาปตยกรรมการเกบ Log ของ NTT
บรษท NTT นน ไดมการเกบรกษา Log ของระบบตาง ๆ ทงของบรษทเองและของลกคาท
ใชบรการกบบรษท เพอตอบสนองตอพรบ.คอมพวเตอรทวาดวยการเกบรกษาขอมลการจราจร
คอมพวเตอรอยางนอย 90 วน ทางบรษทจงม raw log storage ทใชเกบขอมล Log อยแลว ซงขอมล
Log เหลานจะถกสงผาน Protocol TCP ผาน Port มายงเครอง raw log โดนในการรบขอมล จะแยก
รายลกคาจาก Port ทรบเขามา ดงนนในขนตอนการสงขอมล Log จาก raw log มายงเครอง ทใชงาน
จงท าไดงายโดยใชวธการเดยวกน
3.3.1.4 ออกแบบ Diagram
จากภาพท 3.1 Diagram ทออกแบบไว จะตองใชทรพยากรเปน คอมพวเตอร 3 เครอง โดย
มเครองทท าหนาทเปน Master node อย 2 เครองซงจะท าหนาทในการประมวลผลขอมล คอ
โปรแกรม ElasticSearch และ Kibana จะถกตดตงไว และ 1 เครองทเหลอท าหนาทเปน Data node
ทมโปรแกรม Logstash ตดตงไว ซงท าหนาทในการจดการและจดเกบขอมล เมอ Log ถกสงมาจาก
raw log จะถกสงมาท Data node และ Data node จะท าหนาทเปน Storage คอยสง Log ไปยง
Master node เพอใชในการประมวลผล
35
ภาพท 3.1 Diagram ทใช VM 3 Node
ขอด คอ เหมาะกบระบบใหญทมขอมลใหประมวลผลมากกวา และมขอมลหลายชนด
เชน Log มากชนดขอมล
ขอดอย คอ ไมมการท าการส ารองในสวนของ Data node หากขอมลมขนาดใหญเกน
กวาทจะจดเกบไดหรอเกดปญหาขดของท Data node จะสงผลใหระบบท างานตอไมได
จากภาพท 3.2 Diagram ทออกแบบไว จะตองใชทรพยากรเปน คอมพวเตอร 2 เครอง ทท า
หนาทเปนทง Master และ Data node โดยมการตดตงโปรแกรม Logstash, ElasticSearch และ
Kibana ไวทเครองทง 2 โดยมการท า Clustering กน
ภาพท 3.2 Diagram ทใช VM 2 Node
36
ขอด คอ ระบบไมคอยซบซอน ใชจายไมสงมาก มเครองส ารองใชงานหากเกด
เหตขดของกบเครองใดเครองหนง เหมาะกบการวเคราะหขอมลทไม Critical เชนขอมล Log
ขอดอย คอ หากใชประมวลผลขอมลไมมากจะคอนขางทจะเกนความจ าเปนเมอเทยบ
กบคาใชจาย
หมายเหต ระบบ Cloud VM ของ NTT มการท า High Avalibility (HA) ไว หากเกดเหตทท าให
ระบบหลกลม ระบบของ HA จะท างานโดยม Downtime เลกนอย
ภาพท 3.3 Diagram ทใช VM 1 Node
จากภาพท 3.3 Diagram ทออกแบบไว จะตองใชทรพยากรเปน คอมพวเตอร 1 เครอง ทท า
หนาทเปนทง Master และ Data Node โดยมการตดตงโปรแกรม Logstash, ElasticSearch และ
Kibana ไวทเครอง
ขอด คอ ระบบไมซบซอน ประหยดคาใชจาย เหมาะกบการวเคราะหขอมลทไม
Critical เชน ขอมล Log
ขอดอย คอ ไมมเครองทจะใชในการประมวลผลส ารองหากเครองทใชเกดขดของ
หมายเหต ระบบ Cloud VM ของ NTT มการท า High Avalibility (HA) ไว หากเกดเหตทท าให
ระบบหลกลม ระบบของ HA จะท างานโดยม Downtime เลกนอย
จากการสรปผลขอดขอเสยของ Diagram แตละแบบนน ภาพท 3.2 เปน Diagram ทมความ
นาชอถอ และมคณสมบตทสามารถใชน ามาเปนผลตภณฑเสนอขายไดจรง จงยกใหภาพท เปน
Best Practics และ ภาพท มความเหมาะสมส าหรบการประมวลผลทไมมากเชนกน ในความเปนจรง
37
นน การทผใหบรการจะเกดปญหาระบบลมนน เปนไปไดนอยมาก ยงไปกวานน ระบบของผใน
บรการอยาง NTT นน มการท า HA ตามมาตรฐานของบรษทขนาดใหญอยแลว ภาพท 3.3 เปนอก
ตวเลอกทดเชนกน ในสวนของภาพท 3.1 มความซบซอนและใชทรพยากรเกนความจ าเปนซงจะ
สงผลกระทบตองบประมาณ การน ามาใชงานประมวลผล Log จงไมใชตวเลอกทด แตหากน าไปท า
Data Analytics เปนโปรเจกใหญๆ จะเหมาะสมกวา
3.3.1.5 ทดสอบระบบ
ในขนตอนการทดสอบระบบนนหลงจากท Download โปรแกรมทใชงานมาแลว มการสง
Log จาก raw log เขามายงเครองVMแลว มขนตอนดงน
1) ตงคาเรมตน ElasticSearch
แกไข File โดยก าหนดชอใหnode และตงคาตางๆตามตองการ ในทนขาพเจาได
แกไขเพยงชอ โดยการตงคาตางๆใหเปนไปตามคาเรมตนของโปรแกรม
ภาพท 3.4 File .yml ของโปรแกรม ElasticSearch
38
2) เขยน Script ให Logstash
สรางโดยก าหนดคาให Host คอทท Log ถกเกบอยอย ในการทดลองนคอ เครองท
ใชอย ใช code grok เพอดกขอความ ถามขอความทมค าทระบไวใหอยใน category ของค านน
ภาพท 3.5 File .conf ของโปรแกรม Logstash
3) ตงคาเรมตนให Kibana
คาพนฐานของโปรแกรม Kibana จะตงคาวา โปรแกรม ElasticSearch นน อยท
localhost ซงหากตดตงโปรแกรมไวคนละเครองกน จ าเปนตองแกไขไฟลใหชเสนทางไปทเครองท
ตดตงโปรแกรม ElasticSearch ไว
ภาพท 3.6 File .yml ของโปรแกรม Kibana
39
4) ตดตง ElasticStack, Logstash, Kibana
ส าหรบโปรแกรม Logstash และ Kibana นน สามารถใชวธ dubble click ทไฟล
ในการตดตงไดเลยหลงจากทแกไขfile .yml และ .conf แลว
ภาพท 3.7 การตดตงโปรแกรม ElasticSearch
ภาพท 3.8 File .bat ทใชในการตดตงโปรแกรม Logstash
ภาพท 3.9 File .bat ทใชในการตดตงโปรแกรม Kibana
40
5) ตงคา index ภายใน Kibana
เปนการตงคาใหชนดขอมล คลายกบการสรางฐานขอมลแบบอน เพยงแตใน
Kibana นเราจะเปนตองน าเขาขอมล Log และสราง Pattern ใหขอมลผานโปรแกรม Logstash กอน
ตวโปรแกรม Kibana เอง สามารถ สราง index อยางงายในรปแบบทถกใชบอยไดเอง เชน
@Timestamp เปนตน
ภาพท 3.10 หนาตงคา index โปรแกรม Kibana
6) หนา Discover
จากภาพท 3.11 แสดงการคนหาของและการแสดงผล โดยใชวธการ Query ขอมล
เปน Text หรอ Keyword โดยรายละเอยดจะเปนไปตามลกษณะของขอมลทน าเขา และถกท า
indexing ไว
41
ภาพท 3.11 หนา Discover
7) หนา Visualization (ตงคา DashBoard)
จากภาพ 3.12 เลอกรปแบบ Visualization เปน Pies และ filter หาค าวา Blocked
INFECTED, Blocked BANDED, Failed SPAMMY, rejected
ภาพท 3.12 หนา Visualization
8) หนา Dashboard
แสดงผล Visualization ทไดสรางไวแบบรวมๆ เราสามารถเลอกจดต าแหนง
ใหกบ Visualization ในหนานได
42
ภาพท 3.13 หนา Dashboard
บทท 4
ผลการด าเนนงาน การวเคราะหและสรปผลตาง ๆ
4.1 ผลของการท าโครงงาน
ในสวนของโครงงานทไดพฒนามาเปนระยะเวลา 6 สปดาห โดยจะขออธบายผลลพธทได
ดงตอไปน
เมอเขาสโปรแกรม Kibana ผานทาง Web Brower จะพบกบหนา Loading Screen แสดง
Logo ของโปรแกรมและสถานะก าลงโหลดขอมลดงภาพท 4.13 เปนเวลาประมาณ 10 วนาท ซง
ความเรวขนอยกบการประมวลผลของคอมพวเตอรและความเรวของ Internet ทใชในการเขาถง
กอนเขาสหนา Dashboard ซงเปนหนาแสดงผลลพธของโปรแกรม
ภาพท 4.1 ภาพแสดงหนาตาของหนา Loading Screen
ภาพท 4.2 ภาพแสดงหนาตาของหนา Dashboard
44
4.1.1 หนา Visualization
เปนหนาทใชเพอตงคากราฟตางๆทตองการน ามาแสดงผลลพธ ดงในภาพท เปนการกรอง
หา จ านวนของ Records ทมผลตามทใส keyword ดงภาพ
ภาพท 4.3 ภาพแสดงหนาตาของหนา Visualization
4.1.2 หนา Discover
เปนหนาส าหรบคนหาขอมล ท างานคลายกบการ Search ค าทเปน Keyword แตเราสามารถ
ปรบแตงให แสดงแตผลลพธทตองการได หากผใชตองการคนหาค าวา Subject ในการทดสอบนจะ
แสดงผลดงภาพ 4.4
ภาพท 4.4 ภาพแสดงผลการคนหาในหนา Discover
45
4.1.3 หนา Dev Tools
เปนหนาทใชในการ น าเขา ลบ แกไข ขอมล จากภาพท 4.5 ใชค าสง GET เพอดงขอมลจาก
จาก filter _search ทงหมด
ภาพท 4.5 ภาพแสดงหนาตาของหนา Dev Tools
4.2 ผลการวเคราะหขอมล 4.2.1 วเคราะหผลของการท าโครงงาน
จากการทดสอบการท างานของระบบวเคราะห Log การใชงานสามารถใชงานไดตามทควร
จะเปน สามารถใชงานโปรแกรม Kibana ใน Function พนฐานทจ าเปนได
โดยจะขอแจกแจงรายละเอยดดงน
1) หนา Discover หลงจากมการก าหนดโครงสรางขอมลแลว สามารถคนหาขอมลจาก
Keywordได
2) หนา Visualization สามารถใชงานเครองมอการท า Visualization จากขอมลทมอยได
3) หนา Dashboard สามารถเลอกน า Visualization ทตงคาไวมาแสดงได
4) หนา Dev Tools สามารถคนหา น าเขา ลบ แกไข ขอมลผานหนา Dev Tools ได
จากผลลพธดงกลาว ท าใหขอมล Log ทน ามาทดสอบนน ถกน ามาใชประโยชนตามทตองการได
บทท 5
บทสรปและขอเสนอแนะ
5.1 สรปผลการด าเนนโครงงาน จากการด าเนนโครงงาน ใชระยะเวลาทงหมด 6 สปดาห ในการศกษาคนควาขอมลท
เกยวของรวมไปถงวธการตงคาและใชงานโปรแกรม หลงจากเสรจสนการคนควา จงเรมออกแบบ
Diagram ทมคณสมบตเหมาะสมในการใหบรการจรง คอ มขนาดหนวยความจะและหนวยการ
ประมวลผลสมพนธกบความจ าเปน เพอใหเหมาะสมกบคาใชจายและงบประมาณ และมความ
มนคงของระบบ กอนการทดสอบ จ าเปนตองน าขอมลLogทเปนตวอกษรมาวเคราะหโครงสราง
และรายละเอยดทม เพอน ามาก าหนดชอและประเภทของขอมลแตละวรรคใน Log แลวจงเรมการ
ทดสอบโดยการตดตงระบบ โปรแกรมและน าเขาขอมลLogในโปรแกรม แลวจงใชงานโปรแกรม
ไดผลตามวตถประสงคและจดมงหมายทคาดหวงไว
5.2 แนวทางการแกไขปญหา จากการด าเนนโครงงานพบปญหาตาง ๆ ดงน
1) ปญหาในการตดตอประสานงานระหวางฝายงานตาง ๆ
ปญหานมสาเหตจาก บรษทเปนบรษทขนาดใหญ ในการท างานนนใน1งาน
ไมไดมเพยงแผนกเดยวทดแลงาน ในการตดตอขอใชงานหรอขอขอมลตาง ๆ มความจ าเปนตองนด
หมายลวงหนา แนวทางการแกไขปญหานคอ ควรเตรยมขอมลสงทตองการในการตดตอ
ประสานงานใหเรยบรอยเพอใหสามารถจดการไดในจ านวนนอยครงทรอ เพอความรวดเรว
2) ปญหาทรพยากรระบบไมเพยงพอ
ปญหานมสาเหตเกดจาก ขนาดของพนทใน Sever ไมเพยงพอตอการน ามาใชงาน
ในระบบทตองใชขอมลขนาดใหญ ท าใหตองรอจนกวาจะม Server ทพรอมใชงาน แนวทางการ
แกไขส าหรบปญหานคอการทดสอบในระบบทใชขอมลไมมากนกเหมาะสมกบทรพยากรทม
47
3) ปญหาในการก าหนดคาโครงสรางของขอมล Log
สาเหตของปญหาน เกดจาก ขอมล Log ทตางทมาหรอตางประเภทกนนน ม
โครงสรางทแตกตางกน ในการน าเขาขอมลล Log เขาโปรแกรมวเคราะหขอมลนน หากตองการ
ความละเอยดของผลลพธ จะตองใชเวลาในการศกษาและก าหนดโครงสรางนาน แนวทางการแกไข
ส าหรบปญหานคอ คนหาขอมลโครงสราง Log ชนดตางๆเพมเตมใน internet และตองทราบ
จดมงหมายวาจะน าขอมลอะไรในขอมล Log ไปวเคราะหบาง
5.3 ขอเสนอแนะจากการด าเนนงาน 1) ควรพฒนาใหระบบเปนระบบใหญทสามารถเขาถงไดจากหลายลกคา (Multi-Tenant)
เพอลดคาใชจายและเวลาในการตดตงระบบตอ 1 ลกคา
2) ท า Interface ครอบใหเปน Brand ของ NTT
3) ก าหนดการตงคา Visualization พนฐาน เชน บอกไดวา Private IP ใดบางทออกส
Internet บอย หรอใชปรมาณ Internet มาก
48
เอกสารอางอง
1. Big Data Technology[Online], Available : https://goo.gl/YjWdXK [2017, June 02 ]. 2. Big Data Analytics[Online], Available : [2015, September 27]. 3. High Availability[Online], Available : https://goo/gl/uoF6rU [2017, June 02]. 4. NoSQL[Online], Available : https://goo.gl/EvcBFD [2017, June 05]. 5. REST (Representational State Transfer)[Online], Available : https://goo/gl/sdBCcu
[2017, June 06]. 6. Java Virtual Machine[Online], Available : https://goo.gl/YpUaA6 [2017, June 07]. 6. โปรแกรมElasticSearch[Online], Available : https://goo.gl/vAwnZR [2017, June 12]. 7. โปรแกรม Logstash[Online], Available : https://goo.gl/YMCT5d [2017, June 15]. 8. โปรแกรม Kibana[Online], Available : https://goo.gl/zxHHxw [2017, June 07]. 9. โปรแกรม Kibana5[Online], Available : https://goo.gl/yyFqJU [2017, June 07]. 10. Virtual Machines[Online], Available : https://goo/gl/m9DG28 [2017, June 05]. 11. การท าGrok-pattern Logstash[Online], Available : https://goo.gl/dzlJfC
[2017, July 07].
ภาคผนวก
ภาคผนวก ก รายงานการปฏบตงานประจ าสปดาห (Weekly Report)
59
ประวตผจดท าโครงงาน ชอ – สกล นางสาวจฑาทพย วรพงศอาภรณ
วน เดอน ปเกด 21 กนยายน 2538
ประวตการศกษา ระดบประถมศกษา ประถมศกษาตอนปลาย พ.ศ. 2550
โรงเรยนอนบาลพบลเวศม ระดบมธยมศกษา มธยม มธยมศกษาตอนปลาย พ.ศ. 2556
โรงเรยนสาธตมหาวทยาลยรามค าแหง ระดบอดมศกษา คณะเทคโนโลยสารสนเทศ สาขาเทคโนโลยสารสนเทศ พ.ศ. 2560
สถาบนเทคโนโลยไทย – ญปน ทนการศกษา - ไมม - ประวตการฝกอบรม - ไมม - ผลงานทไดรบการตพมพ - ไมม -