10 Open Collector Log Collector สำหรับการบันทึกจากส่วนกลาง

ความแตกต่างระหว่างผลิตภัณฑ์ปานกลางและผลิตภัณฑ์ที่ยอดเยี่ยมคือการบันทึก เรียนรู้ว่าทำไมมันถึงเป็นเช่นนั้นและวิธีผูกมันเข้าด้วยกัน.


เช่นเดียวกับความปลอดภัยการบันทึกเป็นองค์ประกอบสำคัญอีกอย่างหนึ่งของเว็บแอปพลิเคชั่น (หรือแอพพลิเคชั่นโดยทั่วไป) ที่ถูกกีดกันเพราะนิสัยเก่าและไม่สามารถมองเห็นได้ล่วงหน้า สิ่งที่หลาย ๆ คนเห็นว่ารีมเทปดิจิตอลที่ไร้ประโยชน์นั้นเป็นเครื่องมือที่ทรงพลังในการมองเข้าไปในแอพพลิเคชั่นของคุณแก้ไขข้อผิดพลาดปรับปรุงจุดอ่อน.

ก่อนที่เราจะเข้าสู่การบันทึกจากส่วนกลางให้ดูก่อนว่าทำไมการบันทึกเป็นเรื่องใหญ่.

การบันทึกสองประเภท (ระดับ)

คอมพิวเตอร์เป็นระบบที่กำหนดขึ้นยกเว้นเมื่อไม่ได้ใช้.

ในฐานะที่เป็น นักพัฒนามืออาชีพ, ฉันเจอหลายกรณีที่พฤติกรรมที่สังเกตได้ของแอพทำให้งงงวยทุกคนเป็นเวลาหลายวัน แต่ที่สำคัญคือในบันทึก ซอฟต์แวร์ทุกชิ้นที่เราเรียกใช้สร้าง (หรืออย่างน้อยควรสร้าง) บันทึกซึ่งบอกเราว่าจะเกิดอะไรขึ้นเมื่อเกิดปัญหาขึ้น.

ทีนี้การบันทึกอย่างที่ฉันเห็นมีสองประเภท: สร้างขึ้นโดยอัตโนมัติ บันทึกและ โปรแกรมเมอร์สร้าง บันทึก โปรดทราบว่านี่ไม่ใช่ความแตกต่างของตำราเรียนและการอ้างอิงคำศัพท์นี้จะทำให้คุณเดือดร้อน ��

ภาพด้านบนแสดงสิ่งที่เรียกว่าเป็น บันทึกที่สร้างขึ้นอัตโนมัติ.

ในกรณีเฉพาะนี้เป็นระบบ WordPress ที่บันทึกสภาพที่ไม่คาดคิด (ข้อสังเกต) เมื่อใช้งานโค้ด PHP บางตัว บันทึกเหล่านี้ถูกสร้างขึ้นอย่างไม่รู้จักเหน็ดเหนื่อยตลอดเวลา – โดยเครื่องมือฐานข้อมูลเช่น MySQL, เว็บเซิร์ฟเวอร์เช่น Apache, ภาษาโปรแกรมและสภาพแวดล้อม, อุปกรณ์พกพา, และแม้แต่ระบบปฏิบัติการ.

สิ่งเหล่านี้ไม่ค่อยมีคุณค่ามากนักและโปรแกรมเมอร์ก็ไม่สนใจที่จะมองพวกเขายกเว้นเมื่อมีอะไรผิดพลาด ในช่วงเวลาดังกล่าวพวกเขาขุดลึกลงไปในบันทึกพยายามที่จะเข้าใจสิ่งที่ผิดพลาด.

แต่บันทึกที่สร้างขึ้นอัตโนมัติสามารถช่วยได้มากเท่านั้น หากหลายคนมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบของไซต์และหนึ่งในนั้นเกิดขึ้นเพื่อลบข้อมูลที่จำเป็นส่วนหนึ่งเป็นไปไม่ได้ที่จะตรวจพบผู้กระทำผิดด้วยการใช้บันทึกที่สร้างขึ้นโดยอัตโนมัติ จากมุมมองของระบบที่เชื่อมโยงกันเป็นแอปพลิเคชันมันเป็นอีกวันหนึ่งในงาน – ใครบางคนมีอำนาจที่จำเป็นในการดำเนินงานและเพื่อให้ระบบดำเนินการได้.

สิ่งที่ต้องการในที่นี้คือเลเยอร์เพิ่มเติมของการบันทึกที่กว้างขวางและชัดเจนซึ่งสร้างเส้นทางสำหรับด้านมนุษย์ นี่คือสิ่งที่ฉันเรียกว่า บันทึกที่สร้างโดยโปรแกรมเมอร์, และเป็นแกนหลักของอุตสาหกรรมสำคัญเช่นธนาคาร นี่คือตัวอย่างของรูปแบบการบันทึกดังกล่าวที่อาจมีลักษณะ:

ที่มา: joomlatools.com

การบันทึกคือพลังงาน

ดังนั้นด้วยบันทึกสองประเภทนี้ในระบบนี่คือวิธีที่คุณสามารถใช้ประโยชน์จากบันทึกเหล่านั้นและเพิ่มผลกระทบ.

อยู่ข้างหน้าของลูกค้า

“ ความพึงพอใจของลูกค้า” ได้กลายเป็นกลไกทางการตลาดที่ไร้ประโยชน์ แต่ต้องขอบคุณการบันทึกมันสามารถทำให้เป็นจริงได้ ฉันรู้ว่าผลิตภัณฑ์ดิจิทัลที่ตรวจสอบบันทึกของพวกเขาเช่นเหยี่ยวและทันทีที่ลูกค้าแบ่งบางอย่างบนหน้าพวกเขาสามารถโทรหาลูกค้าและเสนอเพื่อช่วย.

ลองคิดดูสิ – ภายในไม่กี่วินาทีที่ได้รับข้อผิดพลาดที่น่าเกลียดคุณได้รับโทรศัพท์จาก บริษัท ที่กล่าวว่า“ เฮ้ฉันเข้าใจว่าคุณกำลังพยายามเพิ่มรายการนี้ลงในรถเข็น แต่มันก็กำลังจะตาย ฉันจะเพิ่มเวลานี้และสั่งซื้อสินค้าให้คุณได้ไหม?

ลูกค้ายินดีหรือไม่ พนันได้เลย!

ขวัญกำลังใจของทีมและผลผลิต

อย่างที่ฉันพูดไว้ก่อนหน้านี้เมื่อข้อผิดพลาดไม่ได้ติดตามเป็นเวลานานนักพัฒนาในทีมของคุณรู้สึกผิดหวังและเสียเวลาไล่ล่าหางของพวกเขามากขึ้นเรื่อย ๆ และนี่คือสิ่งที่มีการดีบัก – มันต้องมีจิตใจที่สดใหม่และอยากรู้อยากเห็นตั้งแต่เริ่มต้น หาก WTF คิดมากจนเข้าสู่สมองของคุณกระบวนการทั้งหมดก็จะเป็นการโยน.

และอะไรที่ทำให้การดีบักอย่างหนัก จากประสบการณ์ของฉันการขาดการเข้าสู่ระบบหรือการขาดความรู้ในการเข้าสู่ระบบ สำหรับผู้เริ่มต้นคุณอาจไม่ทราบว่าฐานข้อมูลที่คุณชื่นชอบนั้นเป็นเพียงส่วนหนึ่งของซอฟต์แวร์ที่สร้างบันทึกหรือคุณไม่ได้บันทึกอย่างกว้างขวางในแอปพลิเคชันของคุณ (ดูบันทึกที่โปรแกรมเมอร์สร้างขึ้นด้านบน).

ฉันจำได้เฉพาะกรณีที่แอปพลิเคชันไม่ตอบสนองและไม่มีใครรู้ว่าทำไม สองสามวันต่อมาผู้ร้ายคือข้อ จำกัด ของดิสก์ I / O เนื่องจากการรับส่งข้อมูลมากเกินไป เพราะไม่มีใครใส่ใจที่จะดูที่นั่นไม่มีใครสามารถหาสาเหตุ.

ตรวจสอบเส้นทาง

จะเกิดอะไรขึ้นถ้าสองปีที่ผ่านมาลูกค้าของคุณบอกว่าคำสั่งซื้อเหล่านั้นไม่ได้วางโดยพวกเขา แต่เป็นแฮ็กเกอร์บางคน?

การโต้แย้งอะไรที่จะต้องให้ความบันเทิงหรือปฏิเสธคำขอของพวกเขา หากคุณมีการบันทึกที่ครอบคลุม (ที่อยู่ IP วันที่และเวลาบัตรเครดิต ฯลฯ ) คุณจะสามารถวิเคราะห์ข้อมูลทั้งหมดและตัดสินใจได้ ดีหรือไม่ดีอย่างน้อยมันก็จะมีจุดประสงค์พื้นฐานบางอย่างแทนที่จะคล้ายกับการยิงในที่มืด.

ที่มา: signature-reads.com

เช่นเดียวกันหากคุณเข้ามาอยู่ภายใต้กฎระเบียบบางอย่างหรือจำเป็นต้องได้รับการตรวจสอบจากบุคคลที่สามซึ่งเป็นส่วนหนึ่งของโครงการใหม่ที่สำคัญ ไม่มีระบบการบันทึกที่แข็งแกร่งจะแสดงให้คุณเห็นในที่ไม่ดี.

การปรับปรุงระบบที่มีอยู่

คุณจะพัฒนาระบบปัจจุบันอย่างไร?

คุณควรโยนหัวข้อ RAM และ CPU เพิ่มเติมหรือไม่ ถ้าแอปของคุณช้าแม้มีทรัพยากรเพียงพอ คอขวดอยู่ที่ไหน บ่อยครั้งที่การเข้าสู่ระบบเป็นคำตอบ.

ตัวอย่างเช่นระบบฐานข้อมูลหลักทั้งหมดมีคุณสมบัติในการบันทึก คำสั่งช้า.

ที่มา: speedawawaremonth.com

หากคุณไปที่บันทึกการสืบค้นที่ช้าเป็นประจำคุณจะได้รู้ว่าการดำเนินการใดและใช้เวลามากที่สุดซึ่งจะทำให้พื้นที่เล็ก ๆ แต่สำคัญที่ต้องทำงาน บ่อยครั้งที่การเปลี่ยนแปลงเล็กน้อยเช่นนี้ได้ผลดีกว่าการเพิ่มความจุของฮาร์ดแวร์เป็นสองเท่า.

ไม่มีการนับว่าระบบการบันทึกที่ดีช่วยคุณได้หลายวิธี บางทีข้อโต้แย้งที่ดีที่สุดคือมันเป็นกิจกรรมอัตโนมัติที่ครั้งหนึ่งเคยตั้งค่าไม่ต้องการการตรวจสอบใด ๆ และจะช่วยคุณให้รอดพ้นจากความหายนะในบางวัน.

เมื่อมองไปทางอื่นให้ดูที่ Open Source Log Collector (เครื่องมือบันทึกการทำงานแบบรวม) ที่น่าทึ่ง ในกรณีที่คุณสงสัยเราได้ครอบคลุมเครื่องมือบันทึกข้อมูลบนคลาวด์เชิงพาณิชย์ในโพสต์ก่อนหน้านี้.

Graylog

Graylog เป็นหนึ่งในชื่อชั้นนำในอุตสาหกรรมเมื่อกล่าวถึงความสามารถในการบันทึกและแสดงภาพระดับอุตสาหกรรม นอกจากนี้ยังมีลักษณะเฉพาะที่จะสแกนบันทึกที่รวบรวมไว้เพื่อหาช่องโหว่ด้านความปลอดภัยและแจ้งให้คุณทราบทันที.

ในขณะที่ Graylog เป็นระบบการบันทึกแบบรวมศูนย์ก็มีความยืดหยุ่นที่คุณต้องการช่วยให้คุณสามารถปรับแต่งการแจ้งเตือนแดชบอร์ดและอื่น ๆ.

Greylog คือ โอเพ่นซอร์ส, แต่มีแผนองค์กรหากความต้องการของคุณซับซ้อน.

ด้วยลูกค้าเช่น SAP, Cisco และ LinkedIn ในบัญชีรายชื่อ Graylog เป็นเครื่องมือที่คุณสามารถไว้วางใจได้เมื่อปิดตา.

Logstash

หากคุณเป็นแฟนหรือผู้ใช้ของ Elastic stack, Logstash คุ้มค่าที่จะเช็คเอาท์ (กอง ELK นั้นเป็นเรื่องสำคัญอยู่แล้วในกรณีที่คุณไม่ทราบ) เช่นเดียวกับเครื่องมือบันทึกอื่น ๆ ในรายการนี้ Logstash ถ้าเต็ม โอเพ่นซอร์ส, ช่วยให้คุณมีอิสระในการปรับใช้และใช้งานตามที่คุณต้องการ.

แต่อย่าเข้าใจผิด: Logstash เป็นมารดาที่มีความสามารถสูงกว่าเครื่องมือการทำไม้ที่ต่ำต้อย สามารถรวบรวมข้อมูลจำนวนมากจากหลายแพลตฟอร์มช่วยให้คุณสามารถกำหนดและดำเนินการไปป์ไลน์ข้อมูลของคุณเองทำให้รู้สึกถึงการทิ้งบันทึกที่ไม่มีโครงสร้างและอื่น ๆ.

แน่นอนข้อ จำกัด เพียงอย่างเดียวคือใช้งานได้กับชุดผลิตภัณฑ์ Elastic เท่านั้น แต่หากคุณกำลังเริ่มต้นและกำลังจะขยายในไม่ช้า Logstash คือหนทางที่จะไป!

Fluentd

ท่ามกลางเครื่องมือการทำบันทึกข้อมูลแบบรวมศูนย์ที่ทำงานเป็นเลเยอร์กลางสำหรับการนำเข้าข้อมูล, Flutend เป็นครั้งแรกในหมู่เท่ากับ ด้วยห้องสมุดที่ยอดเยี่ยมของปลั๊กอินทำให้ Fluentd สามารถเก็บข้อมูลจากระบบการผลิตแทบทุกชนิดรวมเข้ากับโครงสร้างที่ต้องการสร้างไปป์ไลน์ที่กำหนดเองและป้อนเข้าสู่แพลตฟอร์มการวิเคราะห์ที่คุณชื่นชอบไม่ว่าจะเป็น MongoDB หรือ Elasticsearch.

Fluentd สร้างขึ้นบน Ruby มีทั้งหมด โอเพ่นซอร์ส, และเป็นที่นิยมอย่างกว้างขวางเนื่องจากมีความยืดหยุ่นและเป็นโมดูล.

ด้วย บริษัท ใหญ่ ๆ อย่าง Microsoft, Atlassian และ Twilio ที่ใช้แพลตฟอร์มนี้ Fluentd จึงไม่มีอะไรจะพิสูจน์ ��

ไลเดอร์

ถ้าจริง ๆ แล้วชุดข้อมูลขนาดใหญ่จริงๆเป็นความท้าทายของคุณและในที่สุดคุณก็ต้องการที่จะป้อนทุกสิ่งให้เป็น Hadoop, ไลเดอร์ เป็นหนึ่งในตัวเลือกที่ดีที่สุด มันเป็นโครงการโอเพนซอร์สที่“ บริสุทธิ์” ในแง่ที่มันถูกดูแลโดยมูลนิธิอาปาเช่อันเป็นที่รักของเราซึ่งหมายความว่าไม่มีแผนขององค์กร.

นี่อาจเป็นหรือไม่ใช่สิ่งที่คุณกำลังมองหา ��

ที่มา: Beyondcoder.com

เขียนใน Java (ซึ่งยังคงประหลาดใจฉันเมื่อมันมาถึงเทคโนโลยีที่ก้าวล้ำ) รหัสแหล่งที่มาของ Flume นั้นเป็นสิ่งที่สมบูรณ์ เปิด. Flume ดีที่สุดสำหรับคุณหากคุณกำลังมองหาแพลตฟอร์มการส่งผ่านข้อมูลที่ทนต่อความผิดพลาดสำหรับงานหนัก.

Octopussy

ฉันให้มันเป็นศูนย์จากสิบสำหรับการตั้งชื่อผลิตภัณฑ์ แต่ Octopussy อาจเป็นตัวเลือกที่ดีหากความต้องการของคุณเป็นเรื่องง่ายและคุณสงสัยว่าเอะอะทั้งหมดเกี่ยวกับระบบท่อการกลืนกินการรวมตัว ฯลฯ เป็นอย่างไร.

ในความคิดของฉัน Octopussy ครอบคลุมความต้องการของผลิตภัณฑ์ส่วนใหญ่ (สถิติโดยประมาณนั้นไร้ประโยชน์ แต่ถ้าฉันต้องเดาฉันจะบอกว่ามันจะดูแล 80% ของกรณีการใช้งานในโลกแห่งความเป็นจริง).

Octopussy ไม่มี UI ที่ยอดเยี่ยม (ดู ที่นี่) เลย แต่มันทำให้มันเกี่ยวกับความเร็วและการขาดการขยายตัว แหล่งที่มาพร้อมใช้งานบน GitHub, อย่างที่คาดไว้และฉันคิดว่ามันคุ้มค่าที่จะดูจริงจัง.

LOGalyze

LOGalyze เป็นผลิตภัณฑ์เชิงพาณิชย์ที่เพิ่งทำโอเพนซอร์ส แม้ว่าฉันจะไม่สามารถทำโครงการบน GitHub ได้ แต่พวกเขาจะติดตั้ง Windows และดาวน์โหลดซอร์สโค้ดได้ทั้งหมด.

หากคุณต้องการชุมชนคุณสามารถค้นหารายละเอียดของรายชื่อผู้รับจดหมาย ที่นี่.

LOGalyze เป็นข้อเสนอที่ค่อนข้างยืดหยุ่นและทรงพลังที่จะทำงานได้ดีสำหรับการปรับใช้ระบบเดียวที่พยายามรวมการบันทึกจากแหล่งที่รู้จักเช่น Postfix, Apache, ฯลฯ และสร้างผลลัพธ์ในรูปแบบ CSV, PDF, HTML หรือรูปแบบที่คล้ายกัน ใช่มันไม่ได้ทำทุกอย่าง แต่เนื่องจากเป็นผลิตภัณฑ์เชิงพาณิชย์ในครั้งเดียวจึงทำได้ค่อนข้างดี.

LogPacker

เมื่อมาถึงการเลือกเครื่องมือสำหรับงานฉันมีสองเกณฑ์: มันจะต้องมีการมุ่งเน้นและจะต้องได้รับการสนับสนุนโดยรูปแบบธุรกิจที่ใช้งานอยู่ โดยทั่วไปปัญหาเกี่ยวกับซอฟต์แวร์โอเพนซอร์ซโดยทั่วไปคือไม่กี่เดือน / ปีตามเส้นทางโอกาสของความเมื่อยล้าหรือเสียชีวิตอยู่ในระดับสูง ไม่มีการนับจำนวนเครื่องมือการบันทึกที่เปิดตัวด้วยความเอร็ดอร่อยซึ่งจะพบได้ในสุสาน GitHub เท่านั้น.

วัดจากปทัฏฐานนี้, LogPacker เป็นที่ชื่นชอบสำหรับฉัน.

อย่างที่คุณสามารถบอกได้จากหน้าจอ LogPacker คือทั้งหมดที่เกี่ยวกับบันทึกและไม่มีอะไรอื่น การผลักดันของพวกเขาไปสู่ข้อเสนอคลาวด์อย่างแน่นอน แต่คุณสามารถดาวน์โหลดและติดตั้งบนเซิร์ฟเวอร์ของคุณได้ (หน้า GitHub ที่นี่).

การทำคลัสเตอร์และการรวมมีให้บริการสำหรับผู้ที่ต้องการใช้งานในระดับที่ไม่สำคัญและมีแผนระดับองค์กรสำหรับผู้ที่ต้องการทำงานกับ API หรือต้องการการปรับใช้ที่ใหญ่ขึ้น เรียบง่ายสดชื่น (เน้น แต่ไม่ได้คุณสมบัติไม่ดี) ใช้ในการจัดการบันทึกในความคิดของฉัน!

logwatch

ฉันแน่ใจว่ามีพวกเราบางคนที่ไม่ต้องการพิธีทั้งหมดที่เกี่ยวข้องกับระบบการบันทึกแบบ“ รวมเป็นหนึ่งเดียว”“ รวมศูนย์” ธุรกิจของพวกเขามาจากเซิร์ฟเวอร์เดียวและพวกเขากำลังมองหาบางสิ่งที่รวดเร็วและมีประสิทธิภาพในการดูไฟล์บันทึก เอาเป็นว่าสวัสดี logwatch.

เมื่อติดตั้งแล้ว LogWatch สามารถสแกนบันทึกระบบของคุณและสร้างรายงานประเภทที่คุณต้องการ เป็นซอฟต์แวร์ที่ค่อนข้างล้าสมัย (อ่าน “น่าเชื่อถือ”) และเขียนด้วยภาษา Perl ดังนั้นคุณจะต้องใช้ Perl 5.6+ บนเซิร์ฟเวอร์ของคุณเพื่อเรียกใช้ ฉันไม่มีภาพหน้าจอใด ๆ ที่จะแชร์เนื่องจากเป็นบรรทัดคำสั่งล้วนๆซึ่งเป็นขั้นตอนที่น่าเสียใจ.

หากคุณเป็น CLI ขี้ยาและมีความรักในวิธีการทำสิ่งต่าง ๆ ในโรงเรียนเก่าคุณจะรัก Logwatch!

Syslog-ng

Syslog-ng เครื่องมือได้รับการพัฒนาเป็นวิธีการประมวลผลไฟล์ข้อมูล syslog (โปรโตคอลไคลเอนต์เซิร์ฟเวอร์สำหรับการบันทึกระบบ) ในเวลาจริง เมื่อเวลาผ่านไปมันก็มาเพื่อสนับสนุนรูปแบบข้อมูลอื่น ๆ : ไม่มีโครงสร้าง, SQL และ NoSQL โพรโทคอล syslog ทำงานอย่างไรนั้นสรุปได้อย่างเรียบร้อยในภาพประกอบต่อไปนี้.

syslog-ng เป็นชุดเครื่องมือบันทึกและจัดหมวดหมู่บันทึกคุณภาพการผลิตที่เชื่อถือได้เขียนด้วยภาษา C และเป็นชื่อที่ได้รับการยอมรับในอุตสาหกรรมมายาวนาน ส่วนที่ดีที่สุดคือความสามารถในการขยายเพิ่มทำให้คุณสามารถเขียนปลั๊กอินใน C, Python, Java, Lua หรือ Perl.

lnav

ย่อสำหรับ (Log Navigator), lnav เป็นเครื่องมือบริสุทธิ์ขั้วที่ทำงานบนเครื่องเดียวไดเรกทอรีเดียว เหมาะสำหรับผู้ที่มีการบันทึกรวมเป็นไดเรกทอรีเดียวหรือต้องการกรองและแสดงบันทึกแบบเรียลไทม์จากแหล่งเดียว.

หากคุณคิดว่า lnav ไม่มีอะไรมากไปกว่า tailf | grep ที่ยกย่องคุณผิด มีคุณสมบัติหลายอย่างที่จะทำให้คุณตกหลุมรักกับมัน: มุมมองอนุกรมเวลา, การพิมพ์สวย (สำหรับ JSON และรูปแบบอื่น ๆ ), แหล่งบันทึกรหัสสี, ตัวกรองที่มีประสิทธิภาพ, ความสามารถในการทำความเข้าใจโปรโตคอลการบันทึกหลายรายการและอื่น ๆ.

เป็นเพียงบางครั้งที่คุณต้องการความยุ่งยากการตั้งค่าเป็นศูนย์เลเยอร์การบันทึกอาจชั่วคราวและ lnav เหมาะกับการเรียกเก็บเงินอย่างสมบูรณ์!

ข้อสรุป

และคุณมีมัน!

มันเป็นรายการที่ยากที่จะรวบรวมเปิดเผยว่าการบันทึกไม่ได้รับความนิยมเช่นการพูดการจัดการเนื้อหาและ mindshare ทั้งหมดดูเหมือนว่าจะได้รับเครื่องมือสามหรือสี่อย่าง ถึงกระนั้นความต้องการของทุกคนก็แตกต่างกันและฉันได้พยายามครอบคลุมพวกเขาอย่างกว้างขวาง.

จากเครื่องมือบรรทัดคำสั่งที่ไม่มีการตั้งค่าไปจนถึง juggernauts ที่เต็มไปด้วยข้อมูลมันทั้งหมดอยู่ที่นี่! ฉันพลาดอะไรไปหรือเปล่า? แน่นอนฉันทำ! โปรดแจ้งให้เราทราบในความคิดเห็นและฉันยินดีที่จะเพิ่มไว้ที่นี่ (ด้วยเครดิตแน่นอน!).

Tags:

  • โอเพ่นซอร์ส

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map