ELK(一)介绍、Elasticsearch安装和构建集群

一.ELK介绍

在了解ELK之前,我们先来说一个场景:如果有几十几百台服务器,上面有各种各样的服务,业务访问非常大。那么它们产生的日志会非常多,查看起来非常的繁琐、麻烦。而且不只是运维人员需要查看日志,开发人员排查问题、运营人员需要一些数据,这些都有时候都需要到服务器上分析日志,有没有什么好的方法让我们更有效率呢?

什么是ELK?
ELK是一套日志分析的解决方案。
在5.0版本以前,ELK包括ElasticSearch、Logstash、Kibana,是这三者的简称。但是由于Logstash对内存、cpu、io等资源消耗比较高,所以在5.0以后,官方增加了一个beats,beats所占系统的资源几乎可以忽略不计,这套方案也叫做Elastic Stack。

官方网址:
https://www.elastic.co/cn/
在这里插入图片描述

各个软件具体作用是什么?
Elasticsearch:一个搜索引擎,用来搜索、分析、存储日志的软件。它是分布式的,也就是说它可以集群。它具有自动发现,索引自动分片等功能。

Logstash:用来采集日志,把日志解析为json格式交给Elasticsearch。

kibana:一个数据可视化组件,把处理后的结果通过web界面展示。

beats:是一个轻量级日志采集器,其实它有5个成员。

x-pack(付费软件):提供安全、警报、监控、报表等扩展。

ELK架构:
在这里插入图片描述

二.安装和构建集群

安装准备工作
准备三台机器(参考上面的介绍):
192.168.247.160 elasticsearch(主节点)、kibana、jdk1.8
192.168.247.170 elasticsearch(数据节点)、logstash、jdk1.8
192.168.247.180 elasticsearch(数据节点)、jdk1.8
系统centos7

开始:
1.可以先准备一下hosts,方便用主机名管理:

#主机名设置命令hostnamectl set-hostname ligen_08
#三台机器都添加一样
vim /etc/hosts

192.168.247.160   ligen_06
192.168.247.170   ligen_07
192.168.247.180   ligen_08

2.三台机器安装openjdk:

yum install -y java-1.8.0-openjdk

#如果安装了其他jdk,如果要安装openjdk,可以先把/etc/profile里java路径注释掉

3.安装Elasticsearch
官方安装文档:https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html
注意官方要求ELK各个软件版本最好一致。
三台机器都需要安装,方法一样:

#这里采用rpm安装方式,官方也是有的
#最新版本是7.5,我这里安装最新版7.5
#导入Elasticsearch的yum源key
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
#搭建yum源
vim /etc/yum.repos.d/elastic.repo
#添加
[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=0
autorefresh=1
type=rpm-md

注意:在这之后我本应该很正常执行yum安装:yum install -y elasticsearch 然而我查看yum仓库,并没有发现elasticsearch软件。
所以这里应该按官方的yum安装方法安装:

yum install --enablerepo=elasticsearch elasticsearch -y

还有一种rpm安装方式。如果上面的网速太慢了,可以采用这种也可以安装:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.2-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.2-x86_64.rpm.sha512
#校验文件完整性,没问题输出ok,否则就安装不了。
shasum -a 512 -c elasticsearch-7.5.2-x86_64.rpm.sha512
#安装:
rpm --install elasticsearch-7.5.2-x86_64.rpm

4.配置Elasticsearch,构建集群
Elasticsearch的各种文件路径说明:

#配置文件有两个
/etc/elasticsearch/elasticsearch.yml //这个配置集群等相关
/etc/sysconfig/elasticsearch  //这个是和服务本身相关的配置

#启动脚本
/etc/init.d/elasticsearch

开始配置:
先在主节点上配置:

#7版本和之前的版本有一些参数变化
#自动发现由原来的disconvery.zen.ping.unicat.host变成了discovery.seed_hosts: ["host1", "host2"]。
#增加了cluster.initial_master_nodes,这是第一次启动的时候会用到的,意思是第一次启动集群的时候可以参与选举的机器,这里我们指定了master,所以设置成只有本机允许参与。其他机器不用设置
vim /etc/elasticsearch/elasticsearch.yml
#修改和添加

#设置集群名字,用于节点共享,不如说分片
cluster.name: ligenlinux

#设置节点名字,高可用
node.name: ligenlinux_01

#把这台机器设置成主
#取消数据节点,就是说这台机器不存储数据
node.master: true
node.data: false

#绑定的ip
network.host: 192.168.247.160

#外部httpd通信端口
http.port: 9200

#自动发现,选举master。可以写ip
discovery.seed_hosts: ["ligen_06", "ligen_07", "ligen_08"]
cluster.initial_master_nodes: ["ligenlinux_01"]

把修改好的配置文件复制给另外两台机器,并且覆盖它们原本的配置,当然你也可以手动去改另外两台的配置,这样主要是懒:

scp /etc/elasticsearch/elasticsearch.yml ligen_07:/tmp/
scp /etc/elasticsearch/elasticsearch.yml 192.168.247.180:/tmp/

#在另外ligen_07和08机器上执行覆盖
cp /tmp/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
#修改ligen_07机器的配置文件
node.name: ligenlinux_02
node.master: false
node.data: true
network.host: 192.168.247.170

#修改ligen_08的配置文件
node.name: ligenlinux_03
node.master: false
node.data: true
network.host: 192.168.247.180

启动三台机器的elasticsearch:

/etc/init.d/elasticsearch start
或者
systemctl start elasticsearch

#最好先检查一下内存呢够不够,没有交换分区的话空闲一个G以上。

三.curl查看es

先检查一下防火墙规则:

#可以先清空一下
iptables -F
#或者添加防火墙规则
#ip为160执行
iptables -A INPUT -p tcp -m iprange --src-range 192.168.247.160-192.168.247.180 -d 192.168.247.160 --dport 9200:9300 -j ACCEPT
#170执行
iptables -A INPUT -p tcp -m iprange --src-range 192.168.247.160-192.168.247.180 -d 192.168.247.170 --dport 9200:9300 -j ACCEPT
#180执行
iptables -A INPUT -p tcp -m iprange --src-range 192.168.247.160-192.168.247.180 -d 192.168.247.180 --dport 9200:9300 -j ACCEPT

然后开始:
在160上执行:

#健康检查
curl '192.168.247.160:9200/_cluster/health?pretty'

#集群详细信息
curl '192.168.247.160:9200/_cluster/state?pretty'
发布了117 篇原创文章 · 获赞 33 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37369726/article/details/104206367