一、系统准备(两台服务器均需操作)
-
关闭防火墙和SELinux
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config -
配置主机名解析
echo "192.168.3.100 elk-node1" >> /etc/hosts echo "192.168.3.102 elk-node2" >> /etc/hosts -
安装Java环境
yum install -y java-11-openjdk java -version # 验证安装
二、部署Elasticsearch集群
1. 在两台服务器安装Elasticsearch
# 导入Elasticsearch GPG密钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# 创建Elasticsearch仓库文件
cat > /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
# 安装Elasticsearch
yum install -y elasticsearch
2. 配置Elasticsearch(节点1:192.168.3.100)
编辑 /etc/elasticsearch/elasticsearch.yml:
cluster.name: elk-cluster
node.name: elk-node1
node.roles: [master, data]
network.host: 192.168.3.100
http.port: 9200
discovery.seed_hosts: ["192.168.3.100", "192.168.3.102"]
cluster.initial_master_nodes: ["elk-node1", "elk-node2"]
3. 配置Elasticsearch(节点2:192.168.3.102)
编辑 /etc/elasticsearch/elasticsearch.yml:
cluster.name: elk-cluster
node.name: elk-node2
node.roles: [master, data]
network.host: 192.168.3.102
http.port: 9200
discovery.seed_hosts: ["192.168.3.100", "192.168.3.102"]
cluster.initial_master_nodes: ["elk-node1", "elk-node2"]
4. 启动服务并验证
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
# 检查集群状态(任意节点执行)
curl http://192.168.3.100:9200/_cluster/health?pretty
输出应显示 "status" : "green" 且 "number_of_nodes" : 2。
三、部署Logstash(两台服务器可选)
1. 安装Logstash
yum install -y logstash
2. 示例配置(收集系统日志)
创建配置文件 /etc/logstash/conf.d/syslog.conf:
input {
file {
path => "/var/log/messages"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["http://192.168.3.100:9200", "http://192.168.3.102:9200"]
index => "syslog-%{+YYYY.MM.dd}"
}
}
3. 启动Logstash
systemctl enable logstash
systemctl start logstash
四、部署Kibana(建议部署在单节点,或两者均部署)
1. 在节点1安装Kibana
yum install -y kibana
2. 配置Kibana(节点1:192.168.3.100)
编辑 /etc/kibana/kibana.yml:
server.host: "192.168.3.100"
elasticsearch.hosts: ["http://192.168.3.100:9200", "http://192.168.3.102:9200"]
3. 启动Kibana
systemctl enable kibana
systemctl start kibana
五、验证高可用性
-
模拟故障测试
-
停止节点1的Elasticsearch:
systemctl stop elasticsearch -
在节点2执行:
curl http://192.168.3.102:9200/_cluster/health?pretty -
应看到
"number_of_nodes" : 1,集群状态可能为yellow(因副本未分配)。
-
-
访问Kibana
- 浏览器访问
http://192.168.3.100:5601,进入 Management > Stack Management 查看集群状态。
- 浏览器访问
kibana使用:
1、访问http://192.168.3.100:5601/status,查看elk的状态
