Linux企业运维##ELK

目录

Elasticsearch简介

•基础模块

•elasticsearch应用场景:

一、Elasticsearch分布式部署

二、ElasticSearch监控插件

1.cerebro

2.head(版本5)

三、elasticsearch节点优化

四、logstash数据采集 

1.安装logstash

2.标准输入到es主机

3.把文件内容输出到es主机(可伪装为日志服务器)

4.grok过滤插件


Elasticsearch简介

• Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上
• Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:
        •一个分布式的实时文档存储,每个字段可以被索引与搜索
        •一个分布式实时分析搜索引擎
        •能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

•基础模块

        • cluster:管理集群状态,维护集群层面的配置信息
        • alloction:封装了分片分配相关的功能和策略
        • discovery:发现集群中的节点,以及选举主节点。
        • gateway:对收到master广播下来的集群状态数据的持久化存储
        • indices:管理全局级的索引设置
        • http:允许通过JSON over HTTP的方式访问ES的API
        • transport:用于集群内节点之间的内部通信
        • engine:封装了对Lucene的操作及translog的调用

•elasticsearch应用场景:

        • 信息检索
        • 日志分析
        • 业务数据分析
        • 数据库加速
        • 运维指标监控

一、Elasticsearch分布式部署

操作:在test1,test2,test3中

(1)软件下载

软件下载地址:下载中心 - Elastic 中文社区

(2)安装软件

rpm -ivh elasticsearch-7.6.1.rp   ##7.6版本自带jdk

(3)设置服务开启

systemctl daemon-reload

(4)修改配置文件

vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-es                  #集群名称
node.name: test1                     #主机名,三台虚拟机分别为test1,test2,test3
path.data: /var/lib/elasticsearch    #数据目录
path.logs: /var/log/elasticsearch    #日志目录
bootstrap.memory_lock: true          #锁定内存分配(默认1G)
network.host: 0.0.0.0                
http.port: 9200                      #http服务端口
discovery.seed_hosts: ["test1", "test2", "test3"]           ##集群包含test1-3
cluster.initial_master_nodes: ["test1", "test2", "test3"]   ##都可作为master

  

 (5)修改系统限制

vim /etc/security/limits.conf

 (6)查看默认xmx

vim /etc/elasticsearch/jvm.options

(7)修改systemd启动文件

vim /usr/lib/systemd/system/elasticsearch.service

在[service]下添加

LimitMEMLOCK=infinity 

(8)关闭系统交换分区,修改/etc/fstab

swapoff -a
​
​vim /etc/fstab

 (9)重新加载服务配置文件

systemctl daemon-reload

(10)开启并检查端口

systemctl start elasticsearch.service
netstat -antlp                           查看端口

 9200端口已开启

curl localhost:9200

检查三个虚拟机集群名称与集群uuid是否相同即可

二、ElasticSearch监控插件

1.cerebro

(1)在宿主机中拉取并在后台运行cerebro

podman  pull docker.io/lmenezes/cerebro      拉取
podman run -d --name cerebro -p 9000:9000 docker.io/lmenezes/cerebro    后台运行

 (2)在浏览器中输入宿主机ip(需加端口号)进入cerbro

(3)输入test1-3任意一台虚拟机的ip登陆(9200端口)

 可看到集群信息

2.head(版本5)

(1)在宿主机中拉取并在后台运行head:5

podman pull docker.io/mobz/elasticsearch-head:5     拉取
podman run -d --name head -p 9100:9100 docker.io/mobz/elasticsearch-head:5    后台运行

 

(2)在server1中编辑/etc/elasticsearch/elasticsearch.yml

vim /etc/elasticsearch/elasticsearch.yml

 (3)在浏览器中输入宿主机ip(需加端口号)进入head

(4) 连接节点test1(9200端口)

可看到集群信息 

三、elasticsearch节点优化

在生产环境下,如果不修改elasticsearch节点的角色信息,在高数
据量,高并发的场景下集群容易出现脑裂等问题。
• 默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,
也都存储数据,还可以提供查询服务。
• 节点角色是由以下属性控制:
• node.master: false|true
• node.data: true|false
• node.ingest: true|false
• search.remote.connect: true|false
默认情况下这些属性的值都是true。

• node.master:这个属性表示节点是否具有成为主节点的资格
注意:此属性的值为true,并不意味着这个节点就是主节点,因为真正的主节点,是由多个具有主节点资格的节点进行选举产生的
• node.data:这个属性表示节点是否存储数据
• node.ingest: 是否对文档进行预处理
• search.remote.connect:是否禁用跨集群查询

test1:

修改配置文件

vim /etc/elasticsearch/elasticsearch.yml

重启服务

systemctl restart elasticsearch.service

 test2:

修改配置文件

vim /etc/elasticsearch/elasticsearch.yml

重启服务

systemctl restart elasticsearch.service

test3:

systemctl restart elasticsearch.service

 重启服务 

vim /etc/elasticsearch/elasticsearch.yml

• 节点需求
    • master节点:普通服务器即可(CPU、内存 消耗一般)
    • data节点:主要消耗磁盘、内存。
    • path.data: data1,data2,data3
      这样的配置可能会导致数据写入不均匀,建议只指定一个数据路径,磁盘可以使用raid0阵列,而不        需要成本高的ssd。
    • Coordinating节点:对cpu、memory要求较高。 

四、logstash数据采集 

• Logstash是一个开源的服务器端数据处理管道。
• Logstash拥有200多个插件,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(大多都是 Elasticsearch。)
• Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器

1.安装logstash

新建一台虚拟机test4:

(1)下载jdk-8u181-linux-x64.rpm和logstash-7.6.1.rpm

(2) 先安装jdk,再安装logstash

rpm -ivh jdk-8u181-linux-x64.rpm
rpm -ivh logstash-7.6.1.rpm

 (3)进入目录/usr/share/logstash/bin,建立软链接,方便开启logstash

cd /usr/share/logstash/bin
ln -s /usr/share/logstash/bin/logstash /usr/bin

 (4)测试logstash

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

标准输入到标准输出 

 

2.标准输入到es主机

(1)进入目录/etc/logstash/conf.d,编辑test.conf ,使logstash可以标准输入到elasticsearch主机

cd /etc/logstash/conf.d
vim test.conf

 hosts指向要elasticsearch主机节点ip及端口

(2)指定配置文件运行logstash

logstash -f /etc/logstash/conf.d/test.conf

 (3)输入"westos","redhat" 

(4)查看ES主机 

在索引中即可看到输入的内容

3.把文件内容输出到es主机(可伪装为日志服务器)

(1)进入目录/etc/logstash/conf.d,编辑log.conf ,使logstash可以将my-es.log文件(从test1上的/var/log/elasticsearch/my-es.log传送至test4上的/var/log/my-es.log)输入到elasticsearch主机

cd /etc/logstash/conf.d
vim log.conf

其中codec是多行过滤插件,多行过滤可以把多行日志记录合并为一行事件

注意:logstash用户需要有要上传的文件的读权限

(2)指定配置文件运行logstash  

logstash -f /etc/logstash/conf.d/log.conf

(3)查看ES主机 

可看到日志成功上传到es主机中,且多行日志记录合并为了一行

4.grok过滤插件

可对数据进行预处理,更有利于检索

(1)进入目录/etc/logstash/conf.d,编辑grok.conf ,使logstash可以标准输入到elasticsearch主机

cd /etc/logstash/conf.d
vim grok.conf

 (2)指定配置文件运行logstash  

logstash -f /etc/logstash/conf.d/grok.conf

 (3)查看ES主机 

可看到message已被预处理,拆分为了多个类型 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值