部署使用ES

一、系统准备(两台服务器均需操作)

  1. 关闭防火墙和SELinux

    复制代码
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  2. 配置主机名解析

    复制代码
    echo "192.168.3.100 elk-node1" >> /etc/hosts
    echo "192.168.3.102 elk-node2" >> /etc/hosts
  3. 安装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. 模拟故障测试

    • 停止节点1的Elasticsearch:systemctl stop elasticsearch

    • 在节点2执行:curl http://192.168.3.102:9200/_cluster/health?pretty

    • 应看到 "number_of_nodes" : 1,集群状态可能为 yellow(因副本未分配)。

  2. 访问Kibana

    • 浏览器访问 http://192.168.3.100:5601,进入 Management > Stack Management 查看集群状态。

kibana使用:

1、访问http://192.168.3.100:5601/status,查看elk的状态

相关推荐
Decay__16 分钟前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
木子欢儿2 小时前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
迪菲赫尔曼2 小时前
【基础篇 26】第一次在服务器完成训练:准备数据、断线继续、检查成果与备份
运维·服务器·人工智能·机器学习·计算机视觉
进击的荆棘2 小时前
Linux系统——线程同步与互斥
linux·运维·服务器·策略模式·同步·互斥·posix
.道阻且长.2 小时前
Linux基本开发工具:gdb和cgdb的使用
linux·运维·服务器·开发语言
vipxieliang3 小时前
可观测性与安全的融合:统一数据平台的建设实践
运维·openai·自动化运维
Android系统攻城狮3 小时前
Linux FFmpeg深度解析之av_guess_format调用流程与实战(三十六)
linux·运维·服务器·ffmpeg·ffmpeg音视频进阶
进击的荆棘3 小时前
Linux系统——线程概念与控制之线程封装
linux·运维·服务器·线程
一个天蝎座 白勺 程序猿12 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
分布式存储与RustFS16 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准