ELKB环境搭建 - CentOS7.*

需要具备Java环境(1.8或11版本)推荐Java11
查看Elasticsearch与JVM版本兼容性:https://www.elastic.co/cn/support/matrix#matrix_jvm
安装JDK请参考:Linux第四章-Linux搭建Java环境

接下来我们将搭建一个两节点的ES集群:

  IP地址                部署的服务              主机名
192.168.68.132         ES + Kibana            node1
192.168.68.133         ES + Logstash          node2

一、Elasticsearch 下载 解压

官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

  1. 下载完成后上传至服务器 /opt 目录;
mkdir /usr/local/environment && cd /usr/local/environment
wget -P /opt https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz
tar -zxvf /opt/elasticsearch-7.8.0-linux-x86_64.tar.gz -C /usr/local/environment/

二、服务器配置

mkdir -p /data/es/data
mkdir -p /data/es/logs

# 开放端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --reload

# 添加地址到 hosts 文件,可以解析node2主机
echo '192.168.68.132 node1' >> /etc/hosts
echo '192.168.68.133 node2' >> /etc/hosts

以上操作,两个服务器均需进行配置

三、修改 ES 配置文件

3.1、配置node1

1、备份配置文件
cp /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml.bak

2、修改node1配置文件
vim /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml

--17--取消注释,指定集群名字
cluster.name: my-elk-cluster
--23--取消注释,指定节点名字:Node1节点为node1,Node2节点为node2
node.name: node1
--33--取消注释,指定数据存放路径
path.data: /data/es/data
--37--取消注释,指定日志存放路径
path.logs: /data/es/logs
--43--取消注释,改为在启动的时候不锁定内存
bootstrap.memory_lock: false
--55--取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注释,ES 服务的默认监听端口为9200
http.port: 9200
#内部节点之间沟通端口(可不添加)
transport.tcp.port: 9300
--68--取消注释,集群发现通过单播实现,指定要发现的节点 node1、node2
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
# 这两个配置只能二选一
discovery.seed_hosts: ["node1", "node2"]
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
--73--取消注释,es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2"]

# 查看主配置文件
grep -v "^#" /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml

3.2、配置node2

1、备份配置文件
cp /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml.bak

2、修改node1配置文件
vim /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml


--17--取消注释,指定集群名字
cluster.name: my-elk-cluster
--23--取消注释,指定节点名字:Node1节点为node1,Node2节点为node2
node.name: node2
--33--取消注释,指定数据存放路径
path.data: /data/es/data
--37--取消注释,指定日志存放路径
path.logs: /data/es/logs
--43--取消注释,改为在启动的时候不锁定内存
bootstrap.memory_lock: false
--55--取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注释,ES 服务的默认监听端口为9200
http.port: 9200
#内部节点之间沟通端口(可不添加)
transport.tcp.port: 9300
--68--取消注释,集群发现通过单播实现,指定要发现的节点 node1、node2
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
# 这两个配置只能二选一
discovery.seed_hosts: ["node1", "node2"]
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
--73--取消注释,es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2"]


#查看主配置文件
grep -v "^#" /usr/local/environment/elasticsearch-7.8.0/config/elasticsearch.yml

四、新增 es 用户 并启动

因为有安全方面的考虑,es是不能在root账户下运行的,因此要新建用户

useradd es
passwd es

# 设置文件夹所属用户
chown -R es:es /usr/local/environment/elasticsearch-7.8.0
chown -R es:es /data/es

su es

# 启动ES
/usr/local/environment/elasticsearch-7.8.0/bin/elasticsearch -d

五、启动报错

有相关报错信息,请参考下面链接

【第一个错:】Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
这个错表示垃圾回收器版本过低,如何解决:
vim /usr/local/environment/elasticsearch-7.8.0/config/jvm.options
:set nu
将--36行-- 8-13:-XX:+UseConcMarkSweepGC 改为: 8-13:-XX:+UseG1GC

【第二个错:】[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
【第三个错:】[2]: max number of threads [3766] for user [es] is too low, increase to at least [4096]

上面两个报错解决方式:
vim /etc/security/limits.conf

添加如下内容:
*  hard nofile 65536
*  soft nofile 65536
*  hard nproc 4096


【第四个错:】[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
请参考:https://blog.youkuaiyun.com/weixin_40816738/article/details/123434998

六、验证测试

6.1、本地客户端测试

访问:http://192.168.68.132:9200/

6.2、查看集群的健康状态

访问:http://192.168.68.132:9200/_cluster/health?pretty

6.3、查看集群所有节点

访问:http://192.168.68.132:9200/_cat/nodes/?v

6.4、查看集群状态信息

访问:http://192.168.68.132:9200/_cluster/state?pretty

Elasticsearch配置开机自启动

请参考:https://blog.youkuaiyun.com/weixin_44117045/article/details/131020168

============================

七、node1安装 kibana

使用 rpm 方式安装 kibana

7.1、下载 rpm 包 并安装

将 kibana 的 rpm包下载到 /opt 目录下

wget -P /opt https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-x86_64.rpm
rpm -ivh /opt/kibana-7.8.0-x86_64.rpm

# 设置为开机自启
systemctl enable kibana
7.2、修改 Kibana 配置文件
vim /etc/kibana/kibana.yml

--2--取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601
--7--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--28--取消注释,设置和 Elasticsearch 建立连接的地址和端口
elasticsearch.url: "http://192.168.24.20:9200" 
--37--取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"
7.3、启动、验证
# 启动 kibana
systemctl start kibana.service && systemctl status kibana.service

firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload

访问:http://192.168.68.132:5601/

八、node2安装 Logstash

Logstash只做三件事情:
(1)Input:输入源,一般配置为自己监听的主机及端口。DataSource向指定的ip及端口输出日志,Input 输入源监听到数据信息就可以进行收集。
(2)Filter:过滤功能,对收集到的信息进行过滤(额外处理),也可以省略这个配置(不做处理)
(3)Output:把收集到的信息发送给谁。在ELK技术栈中都是输出给Elasticsearch,后面数据检索和数据分析的过程就给Elasticsearch了。

Logstash也需要有Java环境

官方下载地址7.8.0:https://www.elastic.co/cn/downloads/past-releases/logstash-7-8-0
我们这里使用压缩包方式进行安装

8.1、下载并安装

wget -P /opt https://artifacts.elastic.co/downloads/logstash/logstash-7.8.0.tar.gz

tar -zxvf /opt/logstash-7.8.0.tar.gz -C /usr/local/environment/

8.2、验证是否安装成功

8.2.1、测试是否能正常启动
cd /usr/local/environment/logstash-7.8.0

bin/logstash -e 'input { stdin { } } output { stdout {} }'

等待启动成功后,我们输入 hello word ,如果看到有相同的输出,代表安装成功

8.2.2、测试是否能正常连接 Elasticsearch
cd /usr/local/environment/logstash-7.8.0

bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.68.132:9200"] } }'

看到如下输出,代表连接并启动成功

九、node2安装 Filebeat

官网下载:https://www.elastic.co/cn/downloads/past-releases/filebeat-7-8-0

9.1、下载并安装

wget -P /opt https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-linux-x86_64.tar.gz

tar -zxvf /opt/filebeat-7.8.0-linux-x86_64.tar.gz -C /usr/local/environment/

9.2、运行测试

cd /usr/local/environment/filebeat-7.8.0-linux-x86_64
# 运行并输出日志
./filebeat -e

等待30s看到如下输出代表启动运行成功

十、整合FileBeat + Logstash + ES

10.1、修改FileBeat配置

vim /usr/local/environment/filebeat-7.8.0-linux-x86_64/filebeat.yml

--13行-- 将Filebeat inputs块中的配置改为如下内容
# ============ Filebeat inputs ============
filebeat.inputs:
 - type: log
   enabled: true
   # 表示要监听的文件,可以配置多个
   paths:
     #- /var/log/*.log
     - /data/es/logs/my-elk-cluster.log
   # 通过正则匹配行
   multiline.type: pattern
   multiline.pattern: ^\[
   multiline.negate: true
   multiline.match: after


--146行--中的配置全部注释,使用下面的输出到Logstash的配置
# ------------ Logstash Output ------------
output.logstash:
  # 可配置多个 使用,分格
  hosts: ["192.168.68.133:5044"]

10.2、修改Logstash配置

vim /usr/local/environment/logstash-7.8.0/config/logstash-sample.conf

# 改为如下配置:
input {
  beats {
    port => 5044
  }
}

output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => ["http://192.168.68.132:9200","http://192.168.68.133:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

10.3、启动Logstash及FileBeat

# 启动Logstash
cd /usr/local/environment/logstash-7.8.0
./bin/logstash -f config/logstash-sample.conf

# 启动FileBeat
cd /usr/local/environment/filebeat-7.8.0-linux-x86_64
./filebeat -e -c filebeat.yml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值