ติดตั้ง Graylog 2.5 ใน Ubuntu 18.04



เนื่องด้วยมีความจำเป็นที่จะต้องศึกษาเรื่องของการทำ Centralize Log Server ด้วย EFK Stack เลยต้องมาลองเล่นทีละตัว วันนี้จะลองมาทำ Graylog โดยการติดตั้งไว้ใน Cloud ก่อนเพื่อให้เพื่อน ๆ ของผมได้ลองเล่นด้วยว่าใช้งานได้มั๊ยเป็นไงบ้าง จะบอกว่าไม่ได้คิดเองทำเองนะครับ ไปดูของต่างประเทศมาแต่มันมีหลายลิงค์เลยจะเอามารวมกันเป็นอันเดียว และเขียนด้วยภาษาไทย




สำหรับการติดตั้ง Ubuntu 18.04 เราจะไม่พูดถึงในบทความนี้นะครับ แต่ถ้าหากท่านใดต้องการทราบก็สามารถศึกษาได้โดยคลิก ที่นี่ เบื้องต้นในบทความนี้ผมใช้ Ubuntu Server 18.04 นะครับ

ขั้นตอนหลังจากการติดตั้ง Ubuntu 18.04 แล้วก็มีคร่าว ๆ ดังนี้

Credit: Graylog.fr

  1. ติดตั้ง Java 8 
  2. ติดตั้ง Elasticsearch และตั้งค่า
  3. ติดตั้ง MongoDB และตั้งค่า
  4. ติดตั้ง 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 เลยนะครับ
$ 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
=======================================================================

หลังจากติดตั้ง Java 8 เรียบร้อยแล้วเราจะมาดำเนินการติดตั้ง Elasticsearch กันนะครับ ซึ่งต้องบอกว่ามี 2 วิธีในการติดตั้งนะครับคือ

วิธีการแรกติดตั้งผ่าน Repository ของ Elasticsearch โดยการดำเนินการตามคำสั่งด้านล่างครับ

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 มาติดตั้งเองครับ
ให้ไปที่ 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 กันนะครับ

sudo vim /etc/elasticsearch/elasticsearch.yml

ให้เราแก้แค่บรรทัดด้านล่างโดยกดปุ่ม i เพื่อเข้า insert mode นะครับ

cluster.name: graylog

เสร็จแล้วกด esc เพื่อออกมาสู่ command mode แล้วกด shift + ZZ เพื่อเซฟแล้วออกจากโปรแกรม vim ครับ หรือจะพิมพ์ :wq ก็ได้ครับ

หลังจากนั้นเราจะสั่งให้มันทำงานทุกครั้งที่เปิดเครื่องโดยพิมพ์คำสั่งตามนี้ครับ

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
=======================================================================

พิมพ์คำสั่งด้านล่างลงไปได้เลยครับ

$ 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 มาแทนครับ อ้างอิงจากวันที่ทำการติดตั้งนะครับ
$ 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
=======================================================================


ไม่พูดมากดึกแล้วง่วง ต่อยาว ๆ เลยแล้วกันครับ
$ 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


จากนั้นให้ตั้งค่าโดยให้ทำตามขั้นตอนด้านล่างได้เลยครับ
$ 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 ให้เป็นหมายเลขที่ต้องการได้เลยแต่ต้องจำให้ได้ด้วยนะเหอ ๆ ๆ เป็นอันเสร็จสิ้นการตั้งค่า


$ 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

วิธีการติดตั้ง และตั้งค่า Apache2 พร้อมเปิดใช้งาน HTTPS ด้วยวิธี Self-Sign บน Ubuntu 18.04.1 LTS

ดีจร้า วันนี้ช่วงเช้าว่างเลยมาเขียนบทความเพิ่มเติมเกี่ยวกับการติดตั้ง และตั้งค่า Apache2 ให้สามารถใช้งานผ่าน HTTPS ได้กันมาเริ่มกันเลยครับ ...