[ELK] Cài đặt ELK trên CentOS 7 – Phần 2
Trong bài viết trước, Nhân Hòa đã giới thiệu với bạn đọc về định nghĩa của ELK Stack, vậy hôm nay hãy để Nhân Hòa tiếp tục nói về cách thức cài đặt ELK Stack một cách đơn giản nhất.
I. Yêu cầu hệ thống
- 1 máy CentOS 7 làm ELK server: RAM 6 GB, 100 GB HDD
- Các máy client có OS là windows, ubuntu hoặc CentOS
II. Phân hoạch địa chỉ IP
- ELK server: 10.10.10.190/24, gateway: 10.10.10.1, dns: 8.8.8.8
- Client Ubuntu: 10.10.10.91/24, gateway: 10.10.10.1, dns: 8.8.8.8
- Client CentOS: 10.10.10.92/24, gateway: 10.10.10.1, dns: 8.8.8.8
III. Cài đặt trên máy chủ ELK
Cài đặt JDK
Trước khi bắt đầu cài đặt ELK Stack, chúng ta cần cài đặt JDK trước.
- Cài đặt JDK 8
sudo yum install java-1.8.0-openjdk-devel
Note: Nếu có nhiều version java khác nhau, bạn có thể thay đổi giữa chúng bằng lệnh sudo alternatives --config java
-
Thiết lập biến môi trường JAVA_HOME: thiết lập JAVA_HOME giúp các ứng dụng khác được viết trên ngôn ngữ này có thể truy nhập đường dẫn cài đặt Java dễ dàng hơn
-
Đầu tiên xác định vị trí cài đặt java:
sudo update-alternatives --config java
-
Ta có thể thấy đường dẫn cài đặt Java như ở trên là
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java
-
Sau đó mở file
.bash_profile
và thêm dòng sau vào
vi ~/.bash_profile
# Thêm dòng sau vào
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java"
Cài đặt Elasticsearch
- Import key elastic
rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
- Thêm repo elastics
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 Elastic
yum install elasticsearch -y
- Mở file
/etc/elasticsearch/elasticsearch.yml
vi /etc/elasticsearch/elasticsearch.yml
- Tìm đến dòng
network.host
và sửa lại thành cũng như thêm 1 vài dòng
network.host: 10.10.10.190
xpack.security.enabled: true
discovery.type: single-node
- Khởi động lại Elasticsearch và cho phép dịch vụ khởi động cùng hệ thống
systemctl restart elasticsearch
systemctl enable elasticsearch
- Tiếp đến, ta sẽ thiết lập authentication token cho elasticsearch:
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
Hãy lưu lại các thông tin về user và password sau đó
- Kiểm tra dịch vụ Elasticsearch (chỉ hoạt động nếu không kích hoạt authentication)
curl -X GET http://localhost:9200
Kết quả trả về như trên là ok
Cài đặt Logstash
- Thêm repo Logstash
cat << EOF > /etc/yum.repos.d/logstash.repo
[logstash-6.x]
name=Elastic 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 Logstash
yum install logstash -y
- Cấu hình xác thực
vi /etc/logstash/logstash.yml
# Thay đổi các nội dung sau theo thông tin đăng nhập khởi tạo trước đó
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "changeme"
- Khởi động và cho phép dịch vụ khởi động cùng hệ thống
systemctl daemon-reload
systemctl start logstash
systemctl enable logstash
Cài đặt Kibana
- Tạo repo cài đặt Kibana
cat << EOF > /etc/yum.repos.d/kibana.repo
[kibana-6.x]
name=Kibana 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 Kibana
yum install kibana -y
sed -i 's/#server.host: "localhost"/server.host: "0.0.0.0"/g' /etc/kibana/kibana.yml
sed -i 's/#elasticsearch.hosts: ["http://localhost:9200"]/elasticsearch.hosts: ["http://10.10.10.190:9200"]/g' /etc/kibana/kibana.yml
- Mở file cấu hình kibana và thêm username và password khởi tạo trước đó vào đây
vi /etc/kibana/kibana.yml
elasticsearch.username: "<username>"
elasticsearch.password: "<password>"
- Tạo Kibana keystore
/usr/share/kibana/bin/kibana-keystore create
- Thêm password của user kibana vào Kibana keystore
/usr/share/kibana/bin/kibana-keystore add elasticsearch.password
- Khởi động và cho phép dịch vụ khởi động cùng hệ thống
systemctl daemon-reload
systemctl start kibana
systemctl enable kibana
- Truy cập vào Kibana kiểm tra bằng đường dẫn
http://ip-elk_server:5601
(mở port trên firewall nếu cần thiết)
IV. Cài đặt filebeat trên client Ubuntu để đẩy log về ELK server
- Download phiên bản cài đặt của
filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-amd64.deb
- Cài đặt
filebeat
dpkg -i filebeat-6.2.4-amd64.deb
- Copy file cấu hình
filebeat
để backup khi có lỗi trong lúc cấu hình
cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.orig
rm -rf /etc/filebeat/filebeat.yml
touch /etc/filebeat/filebeat.yml
- Đẩy các cấu hình sau vào cấu hình của
filebeat
(mở port 5044 trên sv nếu cần thiết)
cat > /etc/filebeat/filebeat.yml << EOF
filebeat:
prospectors:
paths:
/var/log/*.log
encoding: utf-8
input_type: log
fields:
level: debug
document_type: type
registry_file: /var/lib/filebeat/registry
output:
logstash:
hosts: ["10.10.10.190:5044"]
worker: 2
bulk_max_size: 2048
elasticsearch:
hosts: ["10.10.10.190:9200"]
username: "elastic"
password: "<password_here>"
logging:
to_syslog: false
to_files: true
files:
path: /var/log/filebeat
name: filebeat
rotateeverybytes: 1048576000 # = 1GB
keepfiles: 7
selectors: ["*"]
level: info
EOF
- Khởi động
filebeat
service filebeat start
- Dùng
tcpdump
để kiểm tra xem log đã được đẩy về ELK server hay chưa
tcpdump -i eth0 dst 10.10.10.190
V. Cài đặt filebeat trên client CentOS để đẩy log về ELK server
- Thêm repo Elastic
cat > /etc/yum.repos.d/elastic.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
filebeat
yum install filebeat-6.2.4 -y
- Copy file cấu hình để backup
cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.orig
rm -rf /etc/filebeat/filebeat.yml
touch /etc/filebeat/filebeat.yml
- Thêm vào
filebeat
những cấu hình như sau (mở port 5044 trên sv nếu cần thiết)
cat > /etc/filebeat/filebeat.yml << EOF
filebeat:
prospectors:
paths:
/var/log/*.log
encoding: utf-8
input_type: log
fields:
level: debug
document_type: type
registry_file: /var/lib/filebeat/registry
output:
logstash:
hosts: ["10.10.10.190:5044"]
worker: 2
bulk_max_size: 2048
elasticsearch:
hosts: ["10.10.10.190:9200"]
username: "elastic"
password: "<password_here>"
logging:
to_syslog: false
to_files: true
files:
path: /var/log/filebeat
name: filebeat
rotateeverybytes: 1048576000 # = 1GB
keepfiles: 7
selectors: ["*"]
level: info
EOF
- Khởi động
filebeat
systemctl start filebeat
systemctl enable filebeat
- Dùng
tcpdump
để kiểm tra
tcpdump -i eth0 dst 10.10.10.190
VI. Tổng kết
Qua bài viết này, Nhân Hòa đã giới thiệu về từng bước để cài đặt ELK Stack trên server cũng như client, ở các bài viết tiếp theo Nhân Hòa sẽ tiếp tục đề cập đến cách sử dụng cũng như chức năng của từng thành phần.
Các bạn có thể đọc phần 1 ở đây: Tổng quan về ELK Stack.
Chúc các bạn luôn may mắn và thành công trong công việc!