最近学习ELK,苦于服务器性能太低,故在本机搭建集群环境。
-
Step 0 配置JAVA环境
tips : JDK 需要在 1.8 版本及其以上。
Windows 下配置JAVA环境不再赘述。
在Centos 7 下,默认是安装了JDK 1.8.x,但是我们仍然需要配置。
① 验证是否配置过JAVA_HOME
echo $JAVA_HOME
没有配置过不会输出,配置过跳到Step 1即可。
② 查找JDK的位置
which java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
③在 /etc/profile 文件中配置
在文件末尾追加下列内容
根据你找到路径,自行更改
#java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
Step 1 安装配置Elasticsearch
我这里直接根据官网的步骤进行下载和安装。
参照: https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html
说明
Windows 下安装很简单,下载6.3.1.msi的安装包根据官方引导即可。
Centos 7 下 我尝试下载的RPM包不能成功安装,故下载的tar包。
一 丶 centos 7 的配置
① 创建一个用户
centos 下, 不能用root 用户启动 elasticsearch ,所以,我们要先建立一个普通用户来启动es
adduser es
passwd es
② 把下载且解压好的elasticsearch文件夹移动到es 的个人目录下,并更改文件夹权限
tips : 我解压的位置可能不一样,注意mv的路径.
mv /root/elasticsearch6.3.1 /home/es
cd /home/es
chown -R es:es elasticsearch6.3.1
③ 设置centos 网络相关.
使虚拟机网络连通
新安装的centos 7 可能会遇到网络不通的情况. 在VM虚拟机是 NAT 的模式下.
通过 ifconfig 命令查看当前网络状况
可以看到当前 ens33 是没有iP地址的,也就无法ping 通主机组成集群了.
根据以下命令, 修改文件中的
onboot = YES
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 注意 ifcfg-xxxxx
# xxxx 即是你用Ifconfig 查看到的网卡名称
现在重启网卡即可
service network restart
tips : 你可以先记住当前的 IP 地址,一会儿修改配置会用到它.
开启 9300,9200 端口
es 默认9300是节点间交互传输的端口
9200 是对外服务的端口.
而centos 7 的防火墙默认没有开放这些端口,需要手动打开,才能通过本机访问到虚拟机的es 服务端口.
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
service firewalld restart #重启防火墙
④ 更改 elasticsearch.yml 的配置
做了那么多准备工作,现在终于可以开始配置es 了!
进入到 es 的目录下, 修改文件 elasticsearch.yml
vim es/elasticsearch-6.3.1/config/elasticsearch.yml
#注意 : 只有当cluster.name 名字相同时, 才会作为一个集群被管理!
#注意 : 每个变量后的 : 后都要加一个空格再写值!否则会报错
bootstrap.memory_lock: false
cluster.name: elasticsearch
http.port: 9200
network.host: 192.168.26.128
node.data: true
node.ingest: true
node.master: true
node.name: node-2
transport.tcp.port: 9300
xpack.license.self_generated.type: basic
xpack.security.enabled: false
discovery.zen.ping.unicast.hosts: ["192.168.31.198:9300"]
discovery.zen.minimum_master_nodes: 1
⑤ 配置 jvm.options
同样在 config 目录下.
vim config/jvm.options
内存改为 1 g 就行啦, 根据你自己的虚拟机内存大小而定!
⑥ 启动 elasticsearch
切换到 es 用户! 同时! 记得移动到当前用户目录下的elasticsearch 文件夹 .
或者! 把解压在root文件夹下的 elasticsearch 文件夹 chmod 给es用户
./elasticsearch-6.3.1/bin/elasticsearch
现在 ,可以在Windos下直接用访问了.
在浏览器上键入
192.168.26.128:9200
正常情况下,就可以输出节点信息!
⑦启动可能错误
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
如果遇到这种错误, 切换到root
vim /etc/security/limits.conf
在末尾追加
此处 es 即是你创建用来启动 elasticsearch 的用户
es soft nofile 65536
es hard nofile 65536
二丶 Windows 下配置
① 配置elasticsearch.yml
bootstrap.memory_lock: false
cluster.name: elasticsearch
http.port: 9200
network.host: 0.0.0.0
node.data: true
node.ingest: true
node.master: true
node.name: node-1# 这两个在安装时就已经配置好了
path.data: E:\ELK\elasticsearch6.3.1\6.3.1\data
path.logs: E:\ELK\elasticsearch6.3.1\6.3.1\logs
transport.tcp.port: 9300
xpack.license.self_generated.type: basic
xpack.security.enabled: false#设置监听,一旦有目标ip连通,就纳入集群,这里我设置的是 centos 7 的ip地址
discovery.zen.ping.unicast.hosts: ["192.168.26.128:9300"]#设置已知的除本机外的节点数
discovery.zen.minimum_master_nodes: 1
②启动!
运行 Bin 目录下的 elasticsearch.exe 即可!
三丶用kibana 查看集群状态
在使用前,还是要配置下!
在kibana的文件夹下有config 文件夹,打开其下的kibana.yml 进行配置
添加一行
elasticsearch.url: "http://192.168.26.128:9200"
#此处 地址可以设置为虚拟机的elasticsearch地址, 虚拟机的地址通常是不变的
#由于elasticsearch 会自动搜索同网段下的同一个cluster的,设置一个即可
打开 /bin/kibana.bat 启动服务
在浏览器键入 localhost:5601
可以看到集群建立成功!