Graylog là một nền tảng mạnh mẽ cho phép quản lý log tập trung dễ dàng. Graylog nhận dữ liệu từ các máy khách được cài đặt trên các máy chủ khác nhau. Có giao diện web, trực quan hóa dữ liệu và cho phép làm việc với các bản ghi được tổng hợp bởi máy chủ chính.
Trong bài này, mình sẽ cấu hình graylog 3.1 sử dụng CentOS 7 làm client và server, client sẽ sử dụng sidecar để đẩy log .
1 . Mô hình
Mô hình LAB được triển khai như sau:
Mô hình ip planning được triển khai như sau:
2 . Cài đặt
2.1 Yêu cầu và thiết lập môi trường.
Yêu cầu :
- Elastisearch 5 hoặc 6.
- MongoDB 3.6 hoặc 4.0.
- Oracle Java SE 8.
- Thực hiện với quyền root
Thiết lập môi trường :
- Thực hiện update và cài đặt gói bổ trợ :
yum install -y epel-release yum update -y yum install -y git wget curl byobu yum install -y pwgen yum install -y httpd
- Khởi động dịch vụ http
systemctl start httpd systemctl enable httpd
- Thiết lập hostname
hostnamectl set-hostname graylogserver echo "127.0.0.1 localhost graylogserver" > /etc/hosts echo "192.168.161.50 graylogserver" >> /etc/hosts
- Tắt selinux
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 hệ thống
reboot
2.2 Cài đặt NTP
Cấu hình thời gian là 1 bước rất quan trọng vì để nhận log 1 cách chính xác nhất thì thời gian cũng phải chính xác.
Có 2 cách cài ntp là ta có thể cấu hình thủ công trong file ntp.conf hoặc sử dụng máy chủ ntp từ mạng bên ngoài.
Trong trường hợp này ta sẽ cài đặt và sử dụng máy chủ ntp từ mạng bên ngoài.
- Tiến hành cấu hình ntp trên cả máy client và server :
yum install -y chrony
- Khởi động và kích hoạt chrony :
systemctl start chronyd systemctl enable chronyd
- Kiểm tra đồng bộ hóa thời gian với máy chủ ntp :
chronyc sources
210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== /etc/host.conf: line 1: bad command `Graylogserver.local' ^* 162.159.200.1 3 6 17 9 -364us[-2797us] +/- 59ms ^+ no-ptr.123host.vn 3 6 17 9 +3878us[+1444us] +/- 148ms ^? static.vnpt.vn 0 6 0 - +0ns[ +0ns] +/- 0ns ^+ mail.khangthong.vn 2 6 17 10 -3581us[-6015us] +/- 133ms
- Kiểm tra lại thời gian bằng lệnh
timedatectl
, , thu được kết quả như dưới là đã thành công .
[root@client01 ~]# timedatectl Local time: Wed 2019-12-25 00:27:42 +07 Universal time: Tue 2019-12-24 17:27:42 UTC RTC time: Tue 2019-12-24 17:27:43 Time zone: Asia/Ho_Chi_Minh (+07, +0700) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
[root@Graylogserver ~]# timedatectl Local time: Wed 2019-12-25 00:26:36 +07 Universal time: Tue 2019-12-24 17:26:36 UTC RTC time: Tue 2019-12-24 17:26:36 Time zone: Asia/Ho_Chi_Minh (+07, +0700) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
2.3 Cài đặt java
Dịch vụ graylog được viết bằng java nên trước khi cài graylog ta phải cài java.
yum install -y java-1.8.0-openjdk
2.4 Cài đặt MongoDB
- Khai báo repo cho MongoDB
Tiến hành tạo file /etc/yum.repos.d/mongodb-org-4.0.repo
và khai báo nội dung như sau :
cat <<EOF> /etc/yum.repos.d/mongodb-org-4.0.repo [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 daemon-reload systemctl enable mongod.service systemctl start mongod.service
- Kiểm tra trạng thái của MongoDB :
systemctl status mongod
2.5 Cài đặt Elaticsearch
- Khai báo repo cho Elaticsearch :
Tạo file /etc/yum.repos.d/elasticsearch.repo
và khai báo nội dung như sau :
cat <<EOF> /etc/yum.repos.d/elasticsearch.repo [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 Elaticsearch
yum install -y elasticsearch
- Sửa file cấu hình
/etc/elasticsearch/elasticsearch.yml
của elaticsearch như sau :
sed -i 's/#cluster.name: my-application/cluster.name: graylog/g' /etc/elasticsearch/elasticsearch.yml
- Khởi động lại Elaticsearch
systemctl daemon-reload systemctl enable elasticsearch.service systemctl restart elasticsearch.service
- Kiểm tra trạng thái của elasticseach
systemctl status elasticsearch.service
2.6 Cài đặt graylog
- Tải về repo của graylog
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.rpm
- Cài đặt graylog 3.1
yum install -y graylog-server
- Sử dụng pwgen để tạo 1 chuỗi hash gồm 96 ký tự để khai báo cho
password_secret
sau đó lưu vào file cấu hình :
pass_secret=$(pwgen -N 1 -s 96) sed -i -e 's|password_secret =|password_secret = '$pass_secret'|' /etc/graylog/server/server.conf
Pass_Secret – thiết lập 1 mật khẩu bí mật được sử dụng để mã hóa mật khẩu và thêm salting (muối – độ mặn) tăng độ phức tạo của quá trình băm để giảm thiếu các cuộc tấn công mật khẩu.
- Tiếp theo, tạo mật khẩu đăng nhập cho tài khoản admin để đăng nhập graylog :
echo -n thuctapsinh@123 | sha256sum
Lưu ý : thuctapsinh@123 là mật khẩu được sử dụng cho tài khoản admin.
Sau khi tạo, mật khẩu sẽ có dạng như sau :
993f2322f02ec3ce3d7849391b6f3668124130e83d32b96074bfa29c15d051b8
- Lưu lại và gán cho
root_password_sha2
.
sed -i 's|root_password_sha2 =|root_password_sha2 = 993f2322f02ec3ce3d7849391b6f3668124130e83d32b96074bfa29c15d051b8|g' /etc/graylog/server/server.conf
- Sửa thời gian
sed -i 's|#root_timezone = UTC|root_timezone = Asia/Ho_Chi_Minh|' /etc/graylog/server/server.conf
- Để truy cập trang web bằng địa chỉ ip máy Graylog, ta cần sửa địa chỉ ip mặc định thành địa chỉ ip của máy.
sed -i 's|#http_bind_address = 127.0.0.1:9000|http_bind_address = 10.10.34.101:9000|' /etc/graylog/server/server.conf
- Khởi động dịch vụ graylog-server
systemctl daemon-reload systemctl enable graylog-server.service systemctl start graylog-server.service
- Kiểm tra trạng thái của graylog-server :
systemctl status graylog-server
- Để truy cập graylog qua port 9000, ta cần tiến hành mở port trên firewall :
firewall-cmd --zone=public --add-port=9000/tcp --permanent firewall-cmd --reload
- Sau đó kiểm tra lại xem các port của graylog đã xuất hiện chưa
ss -lan | egrep "9000|27017|9200|9300"
2.7 Đăng nhập
Mở trình duyệt và nhập đường link đã tạo trong file config của graylog 10.10.34.101:9000
, đăng nhập bằng tài khoản admin
và mật khẩu thuctapsinh@123
Sau khi đăng nhập sẽ có giao diện như bên dưới :
Chúc các bạn thành công !