1.规划节点
IP地址 主机名 对应节点
192.168.110.11 elk1 Kibana
192.168.110.12 elk2 Logstash
192.168.110.13 elk3 Elasticsearch
三台主机关闭防火墙和SELinux
systemctl stop firewalld
setenforce 0
2.基础环境配置
(1)修改主机名
elk1节点
hostnamectl set-hostname elk1
bash
elk2节点
hostnamectl set-hostname elk2
bash
elk3节点
hostnamectl set-hostname elk3
bash
(2)配置hosts主机名映射
elk1节点
vi /etc/hosts
elk2节点
vi /etc/hosts
elk3节点
vi /etc/hosts
(3)安装JDK环境
使用CentOS7.9镜像配置YUM源,部署ELK环境需要jdk1.8以上的JDK
三台主机都需安装,只以第一台主机为例
先挂载
将2009版本镜像上传到虚拟机
创建挂载目录
mkdir /opt/centos
挂载
mount CentOS-7-x86_64-DVD-2009.iso /opt/centos/
修改yum源
mv /etc/yum.repos.d/* /media/
vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
安装JDK
yum install -y java-1.8.0-openjdk
查看版本
java -version
3.部署Elasticserach
(1)安装
三台主机都需安装,只以第一台主机为例
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm
下载RPM包上传到/root目录下
安装
(2)配置
三台主机都需配置
vi /etc/elasticsearch/elasticsearch.yml
取消注释,配置elasticsearch集群名称
配置节点名(取消注释)配置那台写那台
添加指定该节点是否有资格被选举成为node
指定该节点是否有资格被选举成为node
配置索引数据存储位置
设置日志文件的存储路径
设置绑定的ip地址,配置那台写那台 取消注释
启动的Elasticserach对外访问的http端口 要取消注释
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
elk2节点 别忘了要取消注释
elk3节点
node.name: elk-3
network.host:192.168.110.13
其他和elk2节点相同
(3)启动
三台主机都需启动,只以第一台为例
启动
systemctl start elasticsearch
开机自启
systemctl enable elasticsearch
查看状态
systemctl status elasticsearch
yum install -y net-tools
netstat –ntpl 查看端口 9200
(4)检查集群状态
elk1节点
curl '192.168.110.11:9200/_cluster/health?pretty'
green为健康,yellow或者red则是集群有问题
number_of_nodes : 3, //集群中节点数
number_of_data_nodes : 2, //集群中data节点数量
4.部署Kibana
(1)安装Kibana
仅第一台安装
获取RPM包上传到第一台主机/root目录下
安装
rpm -ivh kibana-6.0.0-x86_64.rpm
(2)配置Kibana
vi /etc/kibana/kibana.yml
取消server.port注释
取消注释并更改为第一台主机IP地址
取消注释并更改为第一台主机IP地址(看清是不同行)
(3)启动Kibana
启动
systemctl start kibana
开机自启
systemctl enable kibana
查看状态
systemctl status kibana
查看端口
netstat –ntpl 5601
访问浏览器访问IP:5601
5.部署Logstash
(1)安装Logstash
在第二台主机部署
https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.rpm
获取RPM包上传到第二台主机/root目录下
安装
rpm -ivh logstash-6.0.0.rpm
(2)配置Logstash
vi /etc/logstash/logstash.yml
修改190行,更改为第二台主机IP地址,并取消注释
配置Logstash收集syslog日志
新建
vi /etc/logstash/conf.d/syslog.conf
input {
file {
path => "/var/log/messages"
type => "systemlog"
start_position => "beginning"
stat_interval => "3"
}
}
output {
if [type] == "systemlog" {
elasticsearch {
hosts => ["192.168.110.11:9200"] //这里的地址为第一台主>机地址
index => "system-log-%{+YYYY.MM.dd}"
}
}
}
赋予权限
chmod 644 /var/log/messages
ln -s /usr/share/logstash/bin/logstash /usr/bin
logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
结果显示OK则证明没问题,没有OK则有问题
(3)启动Logstash
修改相关文件所属组
chown -R logstash /var/lib/logstash/
启动
systemctl start logstash
开机自启
systemctl enable logstash
查看状态
systemctl status logstash
查看端口
netstat –ntpl 9600
(4)测试
启动完毕后,用第三台主机登录elk2机器,登录后退出,让syslog产生日志
退出
6.Kibana检索日志
(1)Kibana上查看日志
回到第一台主机上查看日志索引
curl '192.168.110.12:9200/_cat/indices?v'
获取 删除指定索引详细信息
curl -XGET/DELETE '192.168.110.12:9200/ system-log-2023.12.12?pretty'
(2)Web页面配置
访问第一台主机IP:5601
更改框处内容 改为上图provided_name的内容
Create
下一步
配置完成后,点击左上角的Discover,进入Discover页面
可以看到Kibana服务已经检索到主机的日志信息