Graylog là một ứng dụng thu thập log tập trung, nó hỗ trợ rất nhiều giao thức để thu thập log. Đặc biệt là nó hỗ trợ thư viện để các lập trình viên có thể tích hợp vào mã nguồn nhằm phục vụ cho việc thu thập log.
Trong bài viết này, tôi sẽ hướng dẫn bạn triển khai graylog để thu thập log của các file log cơ bản như log về SSH, httpd … trên hệ điều hành CentOS7.
Môi trường
- CentOS7
- Graylog 2.5
Mô hình
Cài đặt
Cài đặt các gói bổ trợ
Login vào máy Graylog Server và cài đặt các gói sau
yum install -y epel-release yum update -y yum install -y git wget curl byobu yum install -y pwgen
Thiết lập IP
Thiết lập IP cho máy chủ Graylog
echo "Setup IP eth0" nmcli con modify eth0 ipv4.addresses 192.168.70.112/24 nmcli con modify eth0 ipv4.gateway 192.168.70.1 nmcli con modify eth0 ipv4.dns 8.8.8.8 nmcli con modify eth0 ipv4.method manual nmcli con modify eth0 connection.autoconnect yes 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 hostnamectl set-hostname nhgraylog01 echo "192.168.70.112 nhgraylog01" >> /etc/hosts init 6
Sau khi máy khởi động lại bạn cần đăng nhập với tài khoản root để thực hiện các bước cài đặt tiếp theo.
Cài đặt NTP
Cài đặt NTP cho máy Graylog Server, đây là bước khá quan trọng vì nó sẽ quyết định hiển thị thời gian của log nhận được.
Cài đặt Java
Cài đặt java 1.8.0
sudo yum install -y java-1.8.0-openjdk-headless.x86_64
Cài đặt MongoDB
Khai báo repo để cài MongoDB
cat <<EOF> /etc/yum.repos.d/mongodb-org-3.6.repo [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc EOF
Update sau khi khai báo repo
yum update -y
Cài đặt MongoDB
sudo yum install -y mongodb-org
Khởi động MongoDB
sudo systemctl daemon-reload sudo systemctl enable mongod.service sudo systemctl start mongod.service
Kiểm tra lại mongodb
sudo systemctl status mongod.service
Cài đặt elasticsearch
Khai báo repo cho elasticsearch
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
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 elasticsearch
yum install -y elasticsearch
Sửa file cấu hình của eleasticseach
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak sed -i 's/#cluster.name: my-application/cluster.name: graylog/'g /etc/elasticsearch/elasticsearch.yml
Khởi động elasticseach
chkconfig --add elasticsearch systemctl daemon-reload systemctl enable elasticsearch.service systemctl restart elasticsearch.service
Kiểm tra trạng thái của elasticsearch
systemctl status elasticsearch.service
Cài đặt graylog và cấu hình graylog
Khai báo repo cho graylog, trong hướng dẫn này sử dụng bản graylog 2.5
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.5-repository_latest.rpm yum install -y graylog-server
Sao lưu file cấu hình của graylog trước khi tiến hành cấu hình.
cp /etc/graylog/server/server.conf /etc/graylog/server/server.conf.bak
Tạo chuỗi hash cho mật khẩu mà bạn muốn sử dụng
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d 'n' | sha256sum | cut -d" " -f1
Nhập vào mật khẩu và nhận về kết quả mã hash của mật khẩu đó
Enter Password: congty2019@bac9e3617b6d006286ff26e7ec567a64f4443491b648142d6939343f2549688b
Lưu ý:
Đây là mật khẩu để truy cập vào graylog sau khi cài đặt xong. Ghi lại để bước đăng nhập sẽ sử dụng tới.
Dùng chuỗi được sinh ra ở bước trên để cấu hình tham số root_password_sha2 trong file cấu hình của graylog
sed -i 's|root_password_sha2 =|root_password_sha2 = bac9e3617b6d006286ff26e7ec567a64f4443491b648142d6939343f2549688b|g' /etc/graylog/server/server.conf
Dùng lệnh dưới để sửa dòng password_secret. Lưu ý dùng chuỗi sinh ra trong bước hash mật khẩu ở trên
pass_secret=$(pwgen -s 96) sed -i -e 's|password_secret =|password_secret = '$pass_secret'|' /etc/graylog/server/server.conf
Sửa dòng rest_listen_uri = http://127.0.0.1:9000/api/ thành giá trị mới là rest_listen_uri = http://192.168.70.112:9000/api/ . Trong đó IP 192.168.70.112 là địa chỉ của máy chủ cài đặt graylog
sed -i -e 's|rest_listen_uri = http://127.0.0.1:9000/api/|rest_listen_uri = http://192.168.70.112:9000/api/|' /etc/graylog/server/server.conf
Sửa dòng #web_listen_uri = http://127.0.0.1:9000/ thành dòng web_listen_uri = http://192.168.70.112:9000/
sed -i -e 's|#web_listen_uri = http://127.0.0.1:9000/|web_listen_uri = http://192.168.70.112:9000/|' /etc/graylog/server/server.conf
Sửa dòng #root_timezone = UTC thành dòng root_timezone = Asia/Ho_Chi_Minh
sed -i 's|#root_timezone = UTC|root_timezone = Asia/Ho_Chi_Minh|' /etc/graylog/server/server.conf
Kích hoạt graylog khởi động cùng hệ điều hành
chkconfig --add 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 sau khi khởi động
systemctl status graylog-server.service
Sau khi cài đặt xong, truy cập web với URL http://192.168.70.112:9000 và nhập tài khoản admin, mật khẩu ở bước phía trên
Cài đặt graylog sidecar
Thực hiện cài đặt graylog sidecar trên máy client có hệ điều hành là CentOS 7.5, backend thu thập log là BEAT (Filebeat)
Tài gói cài đặt graylog sidecar
yum install wget -y wget https://github.com/Graylog2/collector-sidecar/releases/download/0.1.8/collector-sidecar-0.1.8-1.x86_64.rpm
Cài đặt gói rpm vừa tải về ở trên
rpm -i collector-sidecar-0.1.8-1.x86_64.rpm
Sửa file /etc/graylog/collector-sidecar/collector_sidecar.yml
sed -i 's|http://127.0.0.1:9000/api/|http://192.168.70.112:9000/api/|g' /etc/graylog/collector-sidecar/collector_sidecar.yml
Thêm dòng node_id giống như trong: http://paste.openstack.org/show/749083/
Kích hoạt graylog sidecar vừa cài ở trên
graylog-collector-sidecar -service install systemctl start collector-sidecar
Kiểm tra trạng thái của graylog sidecar sau khi cài xong
systemctl status collector-sidecar