一、系统准备(两台服务器均需操作)
关闭防火墙和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的状态