ติดตั้ง 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 เลยนะครับ
Install Java 8
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
=======================================================================

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

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

Install Elasticsearch From Elasticsearch Repository
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 มาติดตั้งเองครับ
Install Elasticsearch From 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 กันนะครับ

Configure elasticsearch for graylog
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 ก็ได้ครับ

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

Start elasticsearch on system boot
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
=======================================================================

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


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


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


Graylog Start with System-V
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

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

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