Mô hình LAB graylog được triển khai theo hình dưới.
- Các IP được sử dụng trong mô hình LAB như sau:
-
Thực hiện update và cài đặt gói bổ trợ.
yum update -y yum install -y epel-release yum install -y git byobu wget vim pwgen
-
Thiết lập IP, lưu ý: trong hệ thống này sử dụng card mạng có tên là
ens32
echo "Setup IP ens32" nmcli con modify ens32 ipv4.addresses 192.168.56.11/24 nmcli con modify ens32 ipv4.gateway 192.168.56.1 nmcli con modify ens32 ipv4.dns 8.8.8.8 nmcli con modify ens32 ipv4.method manual nmcli con modify ens32 connection.autoconnect yes
-
Thiết lập hostname
hostnamectl set-hostname graylogserver echo "127.0.0.1 localhost graylogserver" > /etc/hosts echo "192.168.56.11 graylogserver" >> /etc/hosts
-
Cấu hình các chế độ mạng và firewall
sudo systemctl disable firewalld sudo systemctl stop firewalld sudo systemctl disable NetworkManager sudo systemctl stop NetworkManager sudo systemctl enable network sudo systemctl start network sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
-
Khởi động lại OS
reboot
-
Sử dụng chrony để khai báo cấu hình NTP cho máy graylog server. Đây là một yêu cầu khá quan trọng khi cấu hình hệ thống log tập trung bởi vì thời gian cần đảm bảo chuẩn xác để nhận log được đúng.
yum install -y chrony
-
Khởi động và kích hoạt chrony
systemctl start chronyd systemctl enable chronyd
-
Kiểm tra xem chrony đã được đồng bộ hay chưa.
chronyc sources
-
Kết quả ta thấy xuất hiện dấu
^*
ở đầu dòng IP của máy chủ NTP server là ok.210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 162.159.200.123 3 6 17 8 -3908us[-5035us] +/- 66ms ^+ 162.159.200.1 3 6 17 9 -6079us[-7206us] +/- 67ms ^+ no-ptr.123host.vn 3 6 17 8 +4295us[+3167us] +/- 164ms ^- mail.khangthong.vn 2 6 17 8 -64ms[ -65ms] +/- 207ms [root@graylogserver ~]# timedatectl Local time: Sun 2019-12-01 23:36:41 +07 Universal time: Sun 2019-12-01 16:36:41 UTC RTC time: Sun 2019-12-01 16:36:41 Time zone: Asia/Ho_Chi_Minh (+07, +0700) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
-
Kiểm tra lại bằng lệnh
timedatectl
, ta thu được kết quả thời gian đã được đồng bộ như bên dưới là OK.
Nếu bạn sử dụng máy chủ NTP server nội bộ, hãy tìm thêm tài liệu để cấu hình chrony cho phù hợp. Trong hướng dẫn này sẽ sử dụng NTP server ở mạng bên ngoài.
- Đăng nhập lại hệ thống và cài đặt java
yum install -y epel-release yum install -y java-1.8.0-openjdk
-
Khai báo repor cho elasticseach
tee /etc/yum.repos.d/elasticsearch.repo <<EOF [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
-
Cài đặt
elasticsearch
, khởi động và kích hoạteleasticsearch
yum install -y elasticsearch systemctl daemon-reload && systemctl enable elasticsearch
-
Dùng lệnh
sed
để sửa file/etc/elasticsearch/elasticsearch.yml
, ta sửa thành dòngcluster.name: graylog
sed -i 's/#cluster.name: my-application/cluster.name: graylog/g' /etc/elasticsearch/elasticsearch.yml
-
Khởi động lại eleasticsearch
systemctl restart elasticsearch
-
Kiểm tra trạng thái của elasticsearch
systemctl restart elasticsearch
-
Cần chờ từ 5-10s để eleasticseach khởi động xong, sau đó kiểm tra xem elasticseach hoạt động hay chưa bằng lệnh dưới.
curl -X GET http://localhost:9200
-
Kết quả trả về sẽ như bên dưới
{ "name" : "CMdKdkb", "cluster_name" : "graylog", "cluster_uuid" : "Pwn3GwbKSaWPfxnVh7tn_A", "version" : { "number" : "6.8.5", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "78990e9", "build_date" : "2019-11-13T20:04:24.100411Z", "build_snapshot" : false, "lucene_version" : "7.7.2", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
-
Khai báo repo cho MongoDB
tee /etc/yum.repos.d/mongodb-org-4.0.repo <<EOF [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc EOF
-
Cài đặt MongoDB
yum install -y mongodb-org
-
Khởi động MongoDB
systemctl start mongod && systemctl enable mongod
-
Kiểm tra hoạt động của MongoDB
systemctl status mongod
-
Kết quả của MongoDB như bên dưới là đã hoạt động OK
● mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-11-30 23:41:06 +07; 9s ago Docs: https://docs.mongodb.org/manual Main PID: 9895 (mongod) CGroup: /system.slice/mongod.service └─9895 /usr/bin/mongod -f /etc/mongod.conf Nov 30 23:41:05 graylogserver systemd[1]: Starting MongoDB Database Server... Nov 30 23:41:05 graylogserver mongod[9892]: about to fork child process, waiting until server is ready for connections. Nov 30 23:41:05 graylogserver mongod[9892]: forked process: 9895 Nov 30 23:41:06 graylogserver systemd[1]: Started MongoDB Database Server.
-
Tải repo của Graylog 3.1
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.rpm
-
Cài đặt Graylog
yum install -y graylog-server
-
Sinh ra chuỗi 96 ký tự.
pwgen -N 1 -s 96
-
Ta có kết quả dạng
7G2SvQReyrO3G8S4XxoZSKp6nSGA1HxbArsWarJt0kj0LdaDQ1OI7igFeKOHxELYxZPZUsNH2X6xOSKkhEMKq9G7ZUD47zPD
Lưu ý: Ghi nhớ lại chuỗi này để khai báo cho bước kế tiếp cho dòng password_secret
.
-
Thực hiện mã hóa chuỗi mật khẩu cho tài khoản admin, trong hướng dẫn này chuỗi đó sẽ là
Welcome123
. Lưu ý, đây chính là mật khẩu của tài khoảnadmin
của graylog sau này.echo -n Welcome123 | sha256sum
-
Ta sẽ thu về một chuỗi, hay ghi nhớ chuỗi này để khai báo trong dòng
root_password_sha2
.925d2e9bb3679c1b9dd58ab20bb974fdc61f3ff4db5e12bb54fab0600261c7b3 -
Lưu ý: Ta sẽ dùng chuỗi không bao gồm khoảng trắng và dấu trừ.
-
Mở file
/etc/graylog/server/server.conf
bằngvi
hoặcnano
. Tìm các dòng cấu hình bên dưới và sửa giống như thế.root_timezone = Asia/Ho_Chi_Minh root_email = "[email protected]" http_bind_address = 192.168.56.11:9000 elasticsearch_shards = 1 password_secret = THAY_BANG_CHUOI_SINH_RA_O_TREN root_password_sha2 = THAY_BANG_CHUOI_SINH_RA_O_TREN
-
Khởi động lại
graylog-server
systemctl daemon-reload && systemctl restart graylog-server && systemctl enable graylog-server
-
Kiểm tra xem graylog server hoạt động hay chưa
systemctl status graylog-server
-
Kết quả như hình bên dưới là ok
-
Kiểm tra thêm xem các port mà graylog sử dụng đã xuất hiện hay chưa
ss -lan | egrep "9000|27017|9200|9300"
-
Kết quả
● graylog-server.service - Graylog server Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-11-30 23:54:36 +07; 8s ago Docs: http://docs.graylog.org/ Main PID: 10047 (graylog-server) CGroup: /system.slice/graylog-server.service ├─10047 /bin/sh /usr/share/graylog-server/bin/graylog-server └─10077 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSClassU... Nov 30 23:54:36 graylogserver systemd[1]: Started Graylog server. Nov 30 23:54:36 graylogserver graylog-server[10047]: OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from ...hreads=N Hint: Some lines were ellipsized, use -l to show in full.
Mở trình duyệt web với địa chỉ http://192.168.56.11:9000
và đăng nhập với tài khoản admin
, mật khẩu Welcome123
.
Sau khi đăng nhập OK ta sẽ có giao diện bên dưới.
Tới bước này, chuyển sang bước setup cho client để có thể thu thập log. Ta có thể thu thập log qua nhiều hình thức (input mà Graylog hỗ trợ). Trong hướng dẫn tiếp theo sẽ sử dụng input là syslog
hoặc graylog sidecar
.
[Hướng dẫn cấu hình graylog thu thập log thông qua syslog]