操作系统:
CentOS Stream 9
ELK服务器集群:
Elasticsearch node01:192.168.170.20
Elasticsearch node02:192.168.170.21
Kibana+Logstash:192.168.170.22
一.安装JDK
java -version
此处系统弹出提示并自动安装。
二.安装elasticsearch
1.elasticsearch部分:
(1)创建elk账户用于启动服务
useradd elk
passwd elk
(2)下载elasticsearch-8.14.3-x86_64.rpm并上传至服务器,下载链接:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.3-x86_64.rpm
rpm -ivh elasticsearch-8.14.3-x86_64.rpm
(3)修改elasticsearch.yml
mkdir -p /data/elasticsearch //用于存放数据
vim /etc/elasticsearch/elasticsearch.yml
node01:
node02:
(4)优化服务器性能:
vim /etc/systemd/system.conf
修改后重启系统
(5)启动elasticsearch
chown -R elk.elk /var/lib/elasticsearch/ /var/log/elasticsearch/ /etc/sysconfig/elasticsearch /etc/elasticsearch/ /usr/share/elasticsearch/ /data/elasticsearch/
开放防火墙端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
systemctl restart firewalld
手动启动elasticsearch
su elk
/usr/share/elasticsearch/bin/elasticsearch & //&后台运行
创建elasticsearch启动脚本
cd /home
vim elasticsearch.sh
#!/bin/bash
sudo -u elk bash << EOF
cd /usr/share/elasticsearch/bin
./elasticsearch -d
EOF
chmod u+x elasticsearch.sh
加入开机启动
需先提升elk的sudo权限
chmod u+w /etc/sudoers
vim /etc/sudoers //在root ALL=(ALL) ALL的下一行添加代码elk ALL=(ALL) ALL
chmod u-w /etc/sudoers
vim /etc/rc.d/rc.local //添加以下内容
chmod +x /etc/rc.d/rc.local
systemctl start rc-local.service
systemctl status rc-local.service
2.elasticsearch-head部分:
安装Elasticsearch-head插件(可视化插件), 安装在master上即可
(1)首先安装一些必要组件
安装node.js
wget https://nodejs.org/dist/latest-v22.x/node-v22.4.1-linux-x64.tar.gz
tar zxvf node-v22.4.1-linux-x64.tar.gz -C /usr/share
cd /usr/share/
mv node-v22.4.1-linux-x64/ node
vim /etc/profile
最后一行加上
export NODE_HOME=/usr/share/node
export PATH=$NODE_HOME/bin:$PATH
source /etc/profile
node -v //查看版本
npm -v //查看版本
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/share
cd /usr/share/
mv phantomjs-2.1.1-linux-x86_64/ phantomjs
创建软链接
ln -s /usr/share/node/bin/node /usr/local/bin/node
ln -s /usr/share/node/bin/npm /usr/local/bin/npm
ln -s /usr/share/phantomjs/bin/phantomjs /usr/local/bin/phantomjs
(2)安装elasticsearch-head
下载elasticsearch-head.zip并上传至服务器,下载链接:
链接:https://pan.baidu.com/s/1yl1Fr9nVpELbUKOe3XIj2w
提取码:j1oq
unzip elasticsearch-head.zip
mv elasticsearch-head /usr/share
cd /usr/share/elasticsearch-head
npm install
(3)启动elasticsearch-head
firewall-cmd --zone=public --add-port=9100/tcp --permanent
systemctl restart firewalld
npm run start
vim /etc/elasticsearch/elasticsearch.yml
添加以下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type
保存文件后重启 elasticsearch 和 elasticsearch-head
创建elasticsearch-head启动脚本
cd /home
vim es_head.sh
#!/bin/bash
cd /usr/share/elasticsearch-head
nohup npm run start &
chmod u+x es_head.sh
加入开机启动
vim /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
systemctl restart rc-local.service
systemctl status rc-local.service
浏览器中打开http://192.168.170.20:9100/访问elasticsearch-head
三.安装Kibana
(1)创建elk账户用于启动服务
useradd elk
passwd elk
(2)下载kibana-8.14.3-linux-x86_64.tar.gz并上传至服务器,下载链接:
https://artifacts.elastic.co/downloads/kibana/kibana-8.14.3-linux-x86_64.tar.gz
tar zxvf kibana-8.14.3-linux-x86_64.tar.gz -C /usr/share/
cd /usr/share/
mv kibana-8.14.3/ kibana
(3)修改kibana.yml
vim /usr/share/kibana/config/kibana.yml
(4)启动kibana
chown -R elk.elk /usr/share/kibana
开放防火墙端口
firewall-cmd --zone=public --add-port=5601/tcp --permanent
systemctl restart firewalld
手动启动kibana
su elk
/usr/share/kibana/bin/kibana &
创建kibana启动脚本
cd /home
vim kibana.sh
#!/bin/bash
sudo -u elk bash << EOF
cd /usr/share/kibana/bin
nohup ./kibana &
EOF
chmod u+x kibana.sh
加入开机启动
vim /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
systemctl start rc-local.service
systemctl status rc-local.service
(5)浏览器中打开http://192.168.170.22:5601/访问kibana
四.安装logstash
(1)下载logstash并上传至服务器,下载链接:
https://artifacts.elastic.co/downloads/logstash/logstash-8.14.3-linux-x86_64.tar.gz
tar zxvf logstash-8.14.3-linux-x86_64.tar.gz -C /usr/share/
cd /usr/share/
mv logstash-8.14.3/ logstash
(2)收集目标服务器日志
mkdir -p /logstash/etc
vim /usr/share/logstash/etc/serverlog.conf
input {
tcp {
port => "514"
type => "serverlog"
}
}
output {
elasticsearch {
hosts => "192.168.170.20:9200"
index => "serverlog-%{+YYYY.MM}"
}
}
(3)在目标服务器上配置:
vim /etc/rsyslog.conf
重启rsyslog服务
systemctl restart rsyslog.service
(4)启动logstash进行日志收集
开放防火墙端口(514为logstash日志收集端口)
firewall-cmd --zone=public --add-port=514/tcp --permanent
systemctl restart firewalld
/usr/share/logstash/bin/logstash -f /usr/share/logstash/etc/serverlog.conf & //&后台运行
创建启动脚本
cd /home
vim logsatsh.sh
#!/bin/bash
nohup /usr/share/logstash/bin/logstash -f /usr/share/logstash/etc/serverlog.conf &
chmod u+x logstash.sh
加入开机启动
vim /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
systemctl start rc-local.service
systemctl status rc-local.service
(5)打开http://192.168.170.20:9100/访问elasticsearch-head
如图所示,说明日志正常收集。
(6)打开Kibana添加日志索引
至此,ELK日志服务器初步部署完成。
后续Redis、Filebeat、Winlogbeat另做补充。