在RHEL8/CentOS8上建立多节点Elasticstack集群的完整攻略如下:
1. 安装Java
首先需要在所有节点上安装Java。在RHEL8/CentOS8上可以使用以下命令安装OpenJDK 11:
sudo dnf install java-11-openjdk-devel
2. 安装Elasticsearch
2.1. 准备Elasticsearch的Yum源
在每个节点上将Elasticsearch的yum源放入 /etc/yum.repos.d/elasticsearch.repo
文件中:
[elasticsearch-7.x]
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
2.2. 安装Elasticsearch
在所有节点上运行以下命令安装Elasticsearch:
sudo dnf install elasticsearch
2.3. 配置Elasticsearch
在主节点上编辑 /etc/elasticsearch/elasticsearch.yml
文件,使其包含以下内容:
cluster.name: mycluster
node.name: mynode1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
discovery.seed_hosts: ["mynode1", "mynode2", "mynode3"]
cluster.initial_master_nodes: ["mynode1"]
在备用节点上编辑 /etc/elasticsearch/elasticsearch.yml
文件,使其包含以下内容:
cluster.name: mycluster
node.name: mynode2
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
discovery.seed_hosts: ["mynode1", "mynode2", "mynode3"]
注意,在主节点上 cluster.initial_master_nodes
参数的值应该为主节点的名字。
2.4. 启动Elasticsearch
在所有节点上启动 Elasticsearch 服务:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
3. 安装Kibana
3.1. 准备Kibana的Yum源
在每个节点上将Kibana的yum源放入 /etc/yum.repos.d/kibana.repo
文件中:
[kibana-7.x]
name=Kibana 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
3.2. 安装Kibana
在所有节点上运行以下命令安装Kibana:
sudo dnf install kibana
3.3 配置Kibana
在每个节点上编辑 /etc/kibana/kibana.yml
文件,使其包含以下内容:
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://mynode1:9200"]
注意,elasticsearch.hosts
参数的值应该为主节点的地址。
3.4 启动Kibana
在所有节点上启动 Kibana 服务:
sudo systemctl enable kibana
sudo systemctl start kibana
4. 验证集群是否正常工作
在浏览器打开 http://mynode1:5601
,如果Kibana的界面正常显示,那么集群配置就完成了。在Kibana中可以进行监控、检索、可视化等操作。
示例1:使用单个节点配置集群
假设有三个节点,其中一个节点被选为主节点。可以将以下内容添加到每个节点的 /etc/elasticsearch/elasticsearch.yml
文件中:
cluster.name: mycluster
node.name: mynode1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
discovery.seed_hosts: ["mynode1", "mynode2", "mynode3"]
cluster.initial_master_nodes: ["mynode1"]
在此示例中,我们只在 mynode1
上启动 Elasticsearch 和 Kibana 服务。由于我们已经在 /etc/elasticsearch/elasticsearch.yml
文件中指定了集群中的所有节点,因此只需访问 http://mynode1:5601
即可访问整个集群的Kibana界面。
示例2:使用Nginx作为代理服务器
将以下内容添加到 /etc/nginx/conf.d/kibana.conf
文件中,以将Nginx配置为Kibana的代理服务器:
server {
listen 80;
server_name mydomain.com;
location / {
proxy_pass http://mynode1:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
在此示例中,Nginx将所有来自 mydomain.com
域名的请求转发给 http://mynode1:5601
,并在转发请求时将包含 Upgrade
、Connection
和 Host
的头信息传递给Kibana。
总结:
以上就是在RHEL8/CentOS8上建立多节点Elasticstack集群的完整攻略。除了安装Elasticsearch和Kibana,还需要配置参数并验证集群是否正常工作。同时,我们还给出了两个示例,一个是使用单个节点配置集群,另一个是使用Nginx作为代理服务器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在 RHEL8 /CentOS8 上建立多节点 Elastic stack 集群的方法 - Python技术站