เนื่องด้วยมีความจำเป็นที่จะต้องศึกษาเรื่องของการทำ Centralize Log Server ด้วย EFK Stack เลยต้องมาลองเล่นทีละตัว วันนี้จะลองมาทำ Graylog โดยการติดตั้งไว้ใน Cloud ก่อนเพื่อให้เพื่อน ๆ ของผมได้ลองเล่นด้วยว่าใช้งานได้มั๊ยเป็นไงบ้าง จะบอกว่าไม่ได้คิดเองทำเองนะครับ ไปดูของต่างประเทศมาแต่มันมีหลายลิงค์เลยจะเอามารวมกันเป็นอันเดียว และเขียนด้วยภาษาไทย
ขั้นตอนหลังจากการติดตั้ง Ubuntu 18.04 แล้วก็มีคร่าว ๆ ดังนี้
Credit: Graylog.fr
- ติดตั้ง Java 8
- ติดตั้ง Elasticsearch และตั้งค่า
- ติดตั้ง MongoDB และตั้งค่า
- ติดตั้ง Graylog 2 และตั้งค่า
ทำความเข้าใจกันก่อนติดตั้งนะครับ
- ที่ติดตั้ง Java 8 เนื่องจากว่า Graylog เค้ารองรับ Java 8 นะครับ เรียกง่าย ๆ recommend Java 8 นั่นเองเพราะผมลองลง Java 11 แล้วเจ๊งครับเหอ ๆ ๆ
- ส่วน Elasticsearch นั้นสามารถใช้งานกับ Java ตั้งแต่ version 8 ขึ้นไปนะครับมันก็เลยคลิกกันว่ารองรับ Java 8 ทั้งคู่จึงเลือกติดตั้ง Java 8 ครับ
- ในระหว่างที่ผมเขียนบทความนี้ก็จะทำการแนบลิงค์แหล่งข้อมูลทั้งหมดมาให้นะครับเผื่อว่าถ้าหากท่านมีความสามารถในการแปลภาษาอังกฤษแล้วล่ะก็คลิกไปอ่านต่อในลิงค์ได้ครับ เพราะหลาย ๆ ครั้งผมก็แปลผิดมาครับเหอ ๆ ๆ
เอาละเรามาเริ่มกันเลยดีกว่า
=======================================================================
Java 8 Installation
=======================================================================
ติดตั้ง Java 8 และ Package ที่จำเป็นกันก่อนเลยนะครับ จะมี Package ตัวนึงที่จะเห็นซ้ำในการติดตั้ง Elasticsearch ด้วยนะครับนั่นคือ Package apt-transport-https นะครับ
ให้พิมพ์คำสั่งด้านล่างลงไปที่ Terminal เลยนะครับ
1 2 | $ sudo apt - get update && sudo apt - get upgrade $ sudo apt - get install - y apt - transport - https openjdk - 8 - jre - headless uuid - runtime pwgen |
=======================================================================
Elasticsearch Installation
=======================================================================
วิธีการแรกติดตั้งผ่าน Repository ของ Elasticsearch โดยการดำเนินการตามคำสั่งด้านล่างครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Elasticsearch มี PGP Key อยู่ที่ MIT นะครับซึ่งมีหมายเลข Key คือ 4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4 ให้เราทำการ add public key เข้าไปตามคำสั่งด้านล่างครับ wget - qO - https: / / artifacts.elastic.co / GPG - KEY - elasticsearch | sudo apt - key add - จากนั้นให้ติดตั้ง Package ที่ชื่อ apt - transport - https * * ถ้ามีแล้วหรือติดตั้งจากขั้นตอนข้างบนไว้แล้วก็ข้ามข้อนี้ไปครับ sudo apt - get install - y apt - transport - https จากนั้นเราจะสร้าง repository source list ใหม่ขึ้นมาชื่อว่า elastic - 6.x . list echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee - a / etc / apt / sources. list .d / elastic - 6.x . list หลังจากนั้นให้ติดตั้ง Elasticsearch sudo apt - get - y update && sudo apt - get install - y elasticsearch |
วิธีการที่สองคือดาวน์โหลด Debian Package มาติดตั้งเองครับ
1 2 3 4 5 6 7 8 9 10 11 | ให้ไปที่ https: / / www.elastic.co / downloads / elasticsearch เลื่อนไปที่หัวข้อ Download แล้วคลิกขวาเลือก Copy link address แล้วกลับไปที่ Ubuntu Terminal พิมพ์คำสั่ง wget https: / / artifacts.elastic.co / downloads / elasticsearch / elasticsearch - 6.6 . 0.deb * * ถ้าหากท่าน Download Package เองอาจจะได้ลิงค์ไม่ตรงกัน เพราะรุ่นอาจจะเปลี่ยนใหม่ไม่ต้องตกใจนะครับ หลังจาก Download Package เสร็จเรียบร้อยให้พิมพ์คำสั่ง sudo dpkg - i elasticsearch - 6.6 . 0.deb |
เป็นอันเสร็จสิ้นขั้นตอนการติดตั้ง Elasticsearch ส่วนต่อไปเราจะมาทำการตั้งค่า Elasticsearch กันนะครับ
1 2 3 4 5 6 7 | sudo vim / etc / elasticsearch / elasticsearch.yml ให้เราแก้แค่บรรทัดด้านล่างโดยกดปุ่ม i เพื่อเข้า insert mode นะครับ cluster.name: graylog เสร็จแล้วกด esc เพื่อออกมาสู่ command mode แล้วกด shift + ZZ เพื่อเซฟแล้วออกจากโปรแกรม vim ครับ หรือจะพิมพ์ :wq ก็ได้ครับ |
หลังจากนั้นเราจะสั่งให้มันทำงานทุกครั้งที่เปิดเครื่องโดยพิมพ์คำสั่งตามนี้ครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | sudo systemctl daemon - reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service หลังจากนั้นให้ตรวจสอบว่า elasticsearch ได้ถูกเรียกขึ้นมาแล้วจริงหรือไม่โดยพิมพ์ sudo systemctl status elasticsearch.service ควรจะได้ผลลัพธ์ตามนี้ elasticsearch.service - Elasticsearch Loaded: loaded ( / usr / lib / systemd / system / elasticsearch.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019 - 02 - 13 03 : 54 : 33 UTC; 12h ago Docs: http: / / www.elastic.co Main PID: 6255 (java) Tasks: 48 (limit: 9472 ) CGroup: / system. slice / elasticsearch.service ├─ 6255 / usr / bin / java - Xms1g - Xmx1g - XX: + UseConcMarkSweepGC - XX:CMSInitiatingOccupancyFraction = 75 - XX: + UseCMSInitiatingO └─ 6348 / usr / share / elasticsearch / modules / x - pack - ml / platform / linux - x86_64 / bin / controller Feb 13 03 : 54 : 33 graylog systemd[ 1 ]: Started Elasticsearch. |
ถ้าได้ตามนี้ถือว่าเป็นอันเสร็จสิ้นขั้นตอนการติดตั้งและปรับแต่ง elasticsearch แล้วครับ
สำหรับท่านใดต้องการศึกษาขั้นตอนการติดตั้งและปรับแต่งเพิ่มเติมเชิญได้ ที่นี่ ครับ
=======================================================================
MongoDB Installation
=======================================================================
1 2 3 4 5 6 7 | พิมพ์คำสั่งด้านล่างลงไปได้เลยครับ $ sudo apt - key adv - - keyserver hkp: / / keyserver.ubuntu.com: 80 - - recv 9DA31620334BD75D9DCB49F368818C72E52529D4 $ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee / etc / apt / sources. list .d / mongodb - org - 4.0 . list $ sudo apt - get update $ sudo apt - get install - y openssl libcurl3 mongodb - org $ sudo apt - get install mongodb |
เสร็จสิ้นการติดตั้งต่อไปจะปรับแต่ง MongoDB และตั้งค่าให้เปิดพร้อมระบบนะครับ
*** แต่มีประเด็นแจ้งให้ทราบอีกเรื่องคือผมติดตั้งผ่านช่องทางของ Graylog ถ้าหากว่าท่านติดตั้งผ่านช่องทางคำแนะนำของ MongoDB เองจะได้ version 4 นะครับแต่ถ้าทำตามขั้นตอนจะได้ version 3.6 มาแทนครับ อ้างอิงจากวันที่ทำการติดตั้งนะครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | $ sudo vim / etc / mongodb.conf ประมาณบรรทัดที่ 11 - 12 bind_ip = 127.0 . 0.1 #port = 27017 ให้แก้ค่าเป็นหมายเลข IP ที่ต้องการให้ผูกกับบริการ หรือถ้าจะกันเหนียวก็จัด 0.0 . 0.0 เลยก็ได้ครับ แล้วลบเครื่องหมาย # ที่บรรทัดล่างออกด้วยครับจากนั้นเซฟไฟล์ได้ พิมพ์คำสั่งด้านล่างได้เลย $ sudo systemctl daemon - reload $ sudo systemctl enable mongod.service $ sudo systemctl start mongod.service จากนั้นให้ทดสอบว่าระบบได้เรียก MongoDB ขึ้นมาหรือยัง $ sudo systemctl status mongodb หรือทดสอบว่าที่ Port ที่เราเอา # ออกถูกเปิดใช้งานจริงหรือไม่โดยพิมพ์ $ sudo ss - tunelp | grep 27017 tcp LISTEN 0 128 127.0 . 0.1 : 27017 0.0 . 0.0 : * uid: 112 ino: 115810 sk:a < - > ถ้าขึ้นแบบนี้ถือว่าเปิด แต่เพื่อความชัวร์ลองตรวจสอบอีกครั้ง $ sudo mongo - - eval 'db.runCommand({ connectionStatus: 1 })' MongoDB server version: 3.6 . 3 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 } ได้ผลลัพธ์แบบนี้ถือว่า OK ผ่าน <! - - - - - > |
=======================================================================
Graylog 2.5 Installation
=======================================================================
ไม่พูดมากดึกแล้วง่วง ต่อยาว ๆ เลยแล้วกันครับ
1 2 3 | $ wget https: / / packages.graylog2.org / repo / packages / graylog - 2.5 - repository_latest.deb $ sudo dpkg - i graylog - 2.5 - repository_latest.deb $ sudo apt - get update && sudo apt - get install graylog - server |
จากนั้นให้ตั้งค่าโดยให้ทำตามขั้นตอนด้านล่างได้เลยครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ sudo vim / etc / graylog / server / server.conf เราจะต้องตั้งค่าตัวแปรประมาณ 3 - 4 ตัวตามนี้ password_secret < - - ใช้สำหรับเอาไว้เข้ารหัสผ่านข้อมูลบัญชีผู้ใช้ในระบบ root_password_sha2 < - - ใช้สำหรับตั้งค่ารหัสผ่านให้กับบัญชี admin นั่นเอง rest_listen_uri < - - ใช้สำหรับให้ผู้ดูแลระบบส่ง Log เข้ามาผ่าน REST API นั่นเอง web_listen_uri < - - ใช้สำหรับให้เข้าถึงผ่านหน้าเว็บ สามารถบริหารจัดการข้อมูล Query หรือสร้าง Dashboard และส่ง Log เข้ามาทางนี้ได้อีกทางเช่นกัน $ echo - n Password | sha256sum ตรงคำว่า Password ข้างบนให้เปลี่ยนเป็นรหัสผ่านที่ท่านต้องการใส่เข้าไปแทนจะได้รหัสมาชุดนึงให้เอาไปใส่ในบรรทัด root_password_sha2 pwgen - N 1 - s 96 ให้เอาค่าที่ได้ไปใส่ในบรรทัด password_secret ส่วนบรรทัด rest_listen_uri และ web_listen_uri ให้เอาเครื่องหมาย # ออกแล้วเปลี่ยนหมายเลข IP กับ Port ให้เป็นหมายเลขที่ต้องการได้เลยแต่ต้องจำให้ได้ด้วยนะเหอ ๆ ๆ เป็นอันเสร็จสิ้นการตั้งค่า |
1 2 3 | $ sudo systemctl daemon - reload $ sudo systemctl enable graylog - server.service $ sudo systemctl start graylog - server.service |
ขั้นตอนการติดตั้ง และปรับแต่งค่าของโปรแกรม Graylog 2.5 กับ MongoDB สามารถศึกษาเพิ่มเติมได้ ที่นี่ ครับ
หลังจากติดตั้งเสร็จให้เปิดโปรแกรม Web Browser เช่น Google Chrome แล้วพิมพ์หมายเลข IP:Port ลงไปได้เลยครับจะเห็นหน้าเว็บแบบนี้
และเราสามารถใช้ username : admin พร้อมกับรหัสผ่านที่ได้กำหนดไว้ก่อนหน้านี้ลงไปก็จะเห็นหน้า Welcome ตามภาพด้านล่างเป็นอันเสร็จสิ้นการติดตั้ง Graylog 2 ครับ
จากนี้ถ้าต้องการตั้งค่าให้ส่ง log เข้ามาที่ graylog ให้อ่าน ที่นี่
ถ้าต้องการเรียนรู้เกี่ยวกับการ extract log ให้อ่าน ที่นี่
ถ้าต้องการเรียนรู้เกี่ยวกับการค้นหาข้อมูลจาก log ให้อ่าน ที่นี่
ผิดถูกประการใดติชมได้ แต่อย่าแรงนะครับ ^ ^ ขอบคุณที่อ่านครับ
No comments:
Post a Comment