目录
一、elasticsearch实战
1、elasticsearch简介
2、elasticsearch安装与配置
3、elasticsearch图形化插件安装——elasticsearch-head
4、elasticsearch图形化插件安装——cerebro
5、elasticsearch节点角色
6、elasticsearch节点优化
(1)第一种组合:(默认)
(2)第二种组合:(Data node——数据节点,抓们存储数据)
(3)第三种组合:(master node——专门用来管理集群)
(4)第四种组合:(Coordinating Node——负载均衡/查询节点)
(5)第五种组合:(Ingest Node——文档预处理节点)
二、logstash数据采集——日志采集/数据预处理
1、logstash简介
2、Logstash安装与配置
(1)标准输入到标准输出(终端,测试):
(2) file输出插件——标准输入到文件
(3)elasticsearch输出插件——标准输入到ES主机
(4)file输入插件——把文件内容输出到es主机
(5)sincedb文件内容解释
(6)Syslog输入插件——实现简单的日志采集及管理
(7)多行过滤插件——多行过滤可以把多行日志记录合并为一行事件
(8)grok过滤插件
三、kibana数据可视化——日志分析
1、kibana简介
2、kibana安装与配置
3、kibana使用
实验一:绘制访问量统计图
实验二:绘制访问量前五的垂直条形图
实验三:绘制访问量前五的饼图
?实验四、创建仪表板来显示各类指标
4、kibana监控
4.1使用kibana的默认监控——单机模式
4.2 使用kibana的metricbeat监控——集群模式
4.2.1 启用xpack安全验证
4.2.2 连接kibana
四、本章总结
1、常见服务的日志格式
一、elasticsearch实战
1、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、ELK Stack 和 Kibana 的开发者 | Elastic我们是 Elastic (ELK) Stack——Elasticsearch、Kibana、Beats 和 Logstash——的开发者。安全又可靠地搜索、分析和可视化您的数据,无论在云中,还是使用本地部署。https://www.elastic.co/cn/
2、elasticsearch安装与配置
软件下载:下载中心 - Elastic 中文社区Elastic 官方中文社区,围绕 Elastic 开源项目:elasticsearch、logstash、kibana、beats 等及周边技术的交流与探讨。https://elasticsearch.cn/download/ 安装软件 : ?
# rpm -ivh jdk-8u171-linux-x64.rpm
# rpm -ivh elasticsearch-7.6.1.rpm?? ?//7.6版本自带jdk
官方教程:
Elasticsearch Guide [7.6] | Elastichttps://www.elastic.co/guide/en/elasticsearch/reference/7.6/index.html
修改配置文件:
# vim /etc/elasticsearch/elasticsearch.yml
vim /etc/elasticsearch/elasticsearch.yml
17 cluster.name: my-es //集群名称
23 node.name: server2 //主机名,需要解析
33 path.data: /var/lib/elasticsearch //数据目录
37 path.logs: /var/log/elasticsearch //日志目录
43 #bootstrap.memory_lock: true //锁定内存,内存小时千万不要开
55 network.host: 172.25.254.2 //数据目录
59 http.port: 9200 //http服务端口
68 discovery.seed_hosts: ["server2", "server3", "server4"] //集群中包含的节点
72 cluster.initial_master_nodes: ["server2", "server3", "server4"] //集群中的master节点
日志存放地址:</var/log/elasticsearch/my-es.log>
elasticsearch的全局配置文件: </etc/sysconfig/elasticsearch>
只有当配置文件中开启“锁定内存<?43 #bootstrap.memory_lock: true ? ?>”功能时,需要做以下配置后才可以启动。(未开启“锁定内存”功能时,不用做以下设置)
1、修改系统限制
vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch - nofile 65536
elasticsearch - nproc 4096
2、
vim jvm.options
-Xms1g
-Xmx1g
Xmx设置不超过物理RAM的50%,以确保有足够的物理RAM留给内核文件系统缓存。但不要超过32G。
3、修改systemd启动文件
# vim /usr/lib/systemd/system/elasticsearch.service
[Service] #在service语句块下添加
LimitMEMLOCK=infinity
配置更改完成后,重新载入系统配置:?
# systemctl daemon-reload
设置服务自启:
# systemctl enable --now elasticsearch
禁止swap交换分区:
#swapoff -a
#vim /etc/fstab? ? ? ? ? ? ? ? ? //取消开机挂载swap
集群中其他节点按同样步骤设置好,注意</etc/elasticsearch/elasticsearch.yml>文件中的主机名和主机IP。
浏览器测试:
?
3、elasticsearch图形化插件安装——elasticsearch-head
官方文档:
GitHub - mobz/elasticsearch-head: A web front end for an elastic search clusterA web front end for an elastic search cluster. Contribute to mobz/elasticsearch-head development by creating an account on GitHub.https://github.com/mobz/elasticsearch-head
下载elasticsearch-head插件:
# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
# unzip elasticsearch-head-master.zip
head插件本质上是一个nodejs的工程,因此需要安装node:
# wget https://mirrors.tuna.tsinghua.edu.cn/nodesource/rpm_9.x/el/7/x86_64/nodejs-9.11.2-1nodesource.x86_64.rpm
# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
# node -v
# npm -v?? ?
更换npm源安装:
# cd elasticsearch-head-master/ //进入elasticsearch-head插件目录下安装
# npm install ?--registry=https://registry.npm.taobao.org
修改ES集群的主机ip和端口(入口):任何节点都可以,这里以server2为例
# vim elasticsearch-head-master/_site/app.js
4388 "http://172.25.254.2:9200"
启动head插件:在<elasticsearch-head-master>目录下
[root@server2 elasticsearch-head-master]# npm run start &
修改ES跨域支持(server2/3/4三个节点都要设置):
vim /etc/elasticsearch/elasticsearch.yml
55 network.host: 0.0.0.0 #监听本机所有端口
60 http.cors.enabled: true # 是否支持跨域
61 http.cors.allow-origin: "*" # *表示支持所有域名
在浏览器测试:
在server2中添加数据
添加的数据已经同步到server3上,由两个节点共同支持。当一个节点挂掉后,数据仍然可用灰色标识没有副本,黄色代表没有主分片丢失
?
4、elasticsearch图形化插件安装——cerebro
可以使用docker部署cerebro。在Redhat8上,podman作为docker的完美替代,运行cerebro容器,可以用来管理ES集群节点。
项目地址:
https://github.com/lmenezes/cerebrohttps://github.com/lmenezes/cerebro
在宿主机<172.25.254.50>上运行cerebro镜像。
podman search cerebro
podman load -i /var/ftp/ELK/cerebro.tar
podman run -d --name cerebro -p 9000:9000 docker.io/lmenezes/cerebro
?在浏览器访问cerebro,并连接任一ES集群节点:
?
5、elasticsearch节点角色
Master | 主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader。 | Data Node | 主要负责集群中数据的索引和检索,一般压力比较大。 | Coordinating Node | 原来的Client node的,主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node,且不能关闭该属性。 | Ingest Node | 专门对索引的文档做预处理 |
6、elasticsearch节点优化
在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。
默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。
通过编辑配置文件<vim /etc/elasticsearch/elasticsearch.yml >设置,更改完成后重启服务。
节点角色是由以下属性控制: 默认情况下这些属性的值都是true。
node.master: ?false|true? | 这个属性表示节点是否具有成为主节点的资格 ? ? 注意:此属性的值为true,并不意味着这个节点就是主节点。 ? ? 因为真正的主节点,是由多个具有主节点资格的节点进行选 ? ? 举产生的。 | node.data: ?true|false | 这个属性表示节点是否存储数据。 | ?node.ingest: ?true|false | 是否对文档进行预处理。 | search.remote.connect: true|false | 是否禁用跨集群查询 |
(1)第一种组合:(默认)
node.master: true
node.data: true
node.ingest: ?true
search.remote.connect: true
这种组合表示这个节点即有成为主节点的资格,又存储数据。 如果某个节点被选举成为了真正的主节点,那么他还要存储数据,这样对于这个节点的压力就比较大了。 测试环境下这样做没问题,但实际工作中不建议这样设置。
(2)第二种组合:(Data node——数据节点,抓们存储数据)
node.master: false
node.data: true
node.ingest: false
search.remote.connect: false
这种组合表示这个节点没有成为主节点的资格,也就不参与选举,只会存储数据。 这个节点称为data(数据)节点。在集群中需要单独设置几个这样的节点负责存储数据。后期提供存储和查询服务。
(3)第三种组合:(master node——专门用来管理集群)
node.master: true
node.data: false
node.ingest: false
search.remote.connect: false
这种组合表示这个节点不会存储数据,有成为主节点的资格,可以参与选举,有可能成为真正的主节点。 这个节点我们称为master节点。
(4)第四种组合:(Coordinating Node——负载均衡/查询节点)
node.master: false
node.data: false
node.ingest: false
search.remote.connect: false
这种组合表示这个节点即不会成为主节点,也不会存储数据, 这个节点的意义是作为一个协调节点,主要是针对海量请求的时候可以进行负载均衡。
(5)第五种组合:(Ingest Node——文档预处理节点)
node.master: false
node.data: false
node.ingest: true
search.remote.connect: false
这种组合表示这个节点即不会成为主节点,也不会存储数据, 这个节点的意义是ingest节点,对索引的文档做预处理。
节点需求:
master节点:普通服务器即可(CPU、内存 消耗一般)
data节点:主要消耗磁盘、内存。
???????? path.data: data1,data2,data3?? ?
???????? 这样的配置可能会导致数据写入不均匀,建议只指定一个数据路径,磁盘可以使用raid0阵列,而不需要成本高的ssd。
Coordinating节点:对cpu、memory要求较高。
二、logstash数据采集——日志采集/数据预处理
1、logstash简介
Logstash是一个开源的服务器端数据处理管道。?
Logstash拥有200多个插件,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(大多都是 Elasticsearch。)
Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。
?
输入:采集各种样式、大小和来源的数据 ?
????????Logstash 支持各种输入选择 ,同时从众多常用来源捕捉事件。
????????能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。
过滤器:实时解析和转换数据
???????? 数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。??
????????????????利用 Grok 从非结构化数据中派生出结构 ?
?????????????????从 IP 地址破译出地理坐标 ? ?
????????????????将 PII 数据匿名化,完全排除敏感字段 ? ?
????????????????简化整体处理,不受数据源、格式或架构的影响
输出:选择您的存储库,导出您的数据 ?
????????尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。
???????? Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。
?
2、Logstash安装与配置
软件下载:(需要和ES版本保持一致)
下载中心 - Elastic 中文社区Elastic 官方中文社区,围绕 Elastic 开源项目:elasticsearch、logstash、kibana、beats 等及周边技术的交流与探讨。https://elasticsearch.cn/download/
官方文档:
Logstash Reference [7.6] | Elastichttps://www.elastic.co/guide/en/logstash/7.6/index.html
logstash安装:
# yum install -y java-1.8.0-openjdk.x86_64 //安装jdk
# rpm -ivh logstash-7.6.1.rpm //安装logstash软件包
配置文件目录:</etc/logstash/> ?
(1)标准输入到标准输出(终端,测试):
stdin/stdout,表示在终端输入什么,输出信息在终端也输出什么(类似一个管道)
[root@server5 bin]# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
(2) file输出插件——标准输入到文件
首先,编辑配置文件</etc/logstash/conf.d/file.conf>
# vim /etc/logstash/conf.d/file.conf
input {
stdin { }
}
output {
file {
path => "/tmp/logstash.txt" #输出的文件路径
codec => line { format => "custom format: %{message}"} #定制数据格式
}
}
然后,指定配置文件运行
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf
最后,在标准输入(终端)中键入"hello world"后可以查看:
# cat /tmp/logstash.txt
custom format: hello world
(3)elasticsearch输出插件——标准输入到ES主机
首先,编辑配置文件</etc/logstash/conf.d/file.conf>:
# vim /etc/logstash/conf.d/es.conf
input {
stdin { }
}
output {
elasticsearch {
hosts => "172.25.254.2:9200" #输出到的ES主机与端口
index => "logstash-%{+YYYY.MM.dd}" #定制索引名称
}
}
然后,指定配置文件运行:
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf
最后,查看ES主机:
?
(4)file输入插件——把文件内容输出到es主机
首先,编辑配置文件</etc/logstash/conf.d/file.conf>:
# vim /etc/logstash/conf.d/file.conf
1 input {
2 file {
3 path => "/var/log/messages"
4 start_position => "beginning"
5 }
6 }
7 output {
8 stdout {}
9
10 elasticsearch {
11 hosts => ["172.25.254.2:9200"]
12 index => "messagelog-%{+YYYY.MM.dd}"
13 }
14 }
然后,指定配置文件运行:
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf
最后,查看终端和ES主机
?
(5)sincedb文件内容解释
在上一步实验中,将</var/log/messages>日志文件中的内容上传到ES主机,如果遇到意外关闭时,再次启动上传会从之前上传的地方接着上传,而不会把messags文件中的内容重新上传。
logstash会把进度保存到sincedb文件中:</usr/share/logstash/data/plugins/inputs/file/.sincedb_452905a167cf4509fd08acb964fdb20c>
?
# pwd
/usr/share/logstash/data/plugins/inputs/file
# cat .sincedb_452905a167cf4509fd08acb964fdb20c
51046926 0 64768 114464 1647869070.551306 /var/log/messages
# ls -i /var/log/messages
51046926 /var/log/messages
sincedb文件一共6个字段:? inode编号;?文件系统的主要设备号; 文件系统的次要设备号; 文件中的当前字节偏移量; 最后一个活动时间戳(浮点数); 与此记录匹配的最后一个已知路径
(6)Syslog输入插件——实现简单的日志采集及管理
首先,编辑配置文件</etc/logstash/conf.d/file.conf>:
[root@server5 ~]# vim /etc/logstash/conf.d/file.conf
1 input {
2 syslog {}
3 }
4
5
6
7 output {
8 stdout {}
9
10 elasticsearch {
11 hosts => ["172.25.254.2:9200"]
12 index => "syslog-%{+YYYY.MM.dd}"
13 }
14 }
然后,配置客户端传入日志:(想采集哪个主机就在哪个主机设置)
[root@server3 ~]# vim /etc/rsyslog.conf
15 $ModLoad imudp
16 $UDPServerRun 514
92 *.* @@172.25.254.5:514 //所有日志发送到server5的514端口
?接着,指定配置文件运行:
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf
最后,在server5终端和浏览器上查看:
?
(7)多行过滤插件——多行过滤可以把多行日志记录合并为一行事件
针对多行日志表示的单个事件,如果按照之前的方法上传到ES后,会分别按多行显示出来,我法分析多行日志表示的意思,因此需要通过“多行过滤”将多个日志记录合并为一行事件。
首先,编辑配置文件</etc/logstash/conf.d/file.conf>:
vim /etc/logstash/conf.d/file.conf
1 input {
2 file {
3 path => "/var/log/my-es.log"
4 start_position => "beginning"
5 codec => multiline {
6 pattern => "^\["
7 negate => "true"
8 what => "previous"
9 }
10 }
11 }
12 output {
13 stdout {}
14 elasticsearch {
15 hosts => ["172.25.254.2:9200"]
16 index => "eslog-%{+YYYY.MM.dd}"
17 }
18 }
?接着,指定配置文件运行:(注意:如果之前上传过此文件的话,记得删除“sincedb文件”中村的进度信息)
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf
最后,在server5终端和浏览器上查看:
?
?
(8)grok过滤插件
官方文档:
Grok filter plugin | Logstash Reference [7.6] | Elastichttps://www.elastic.co/guide/en/logstash/7.6/plugins-filters-grok.html
grok的功能是将日志切分,便于宏观分析及统计
实验准备:
在server5上安装并启用Apache,通过其他主机对此网站进行100次压力测试,得到日志文件.
?
首先,编辑配置文件</etc/logstash/conf.d/file.conf>:
# vim /etc/logstash/conf.d/grok.conf
1 input {
2 file {
3 path => "/var/log/httpd/access_log"
4 start_position => "beginning"
5 }
6 }
7
8 filter {
9 grok {
10 match => { "message" => "%{HTTPD_COMBINEDLOG}" }
11 }
12 }
13
14 output {
15 stdout {}
16 elasticsearch {
17 hosts => ["172.25.254.2:9200"]
18 index => "apachelog-%{+YYYY.MM.dd}"
19 }
20 }
?接着,指定配置文件运行:
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf
最后,在server5终端和浏览器上查看:
?
三、kibana数据可视化——日志分析
1、kibana简介
Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。
?将地理数据融入任何地图
?精选的时序性 UI,对您Elasticsearch 中的数据执行高级时间序列分析。
?利用 Graph 功能分析数据间的关系
?Kibana 开发工具为开发人员提供了多种强大方法来帮助其与 Elastic Stack 进行交互。
?
2、kibana安装与配置
注意:ELK三个部分生产环境中是分布式部署的,由于单机电脑配置的原因,无法再开启虚拟机,因此将kinana部署在server5上。此前server5上已经部署了logstash。
(1)kibana下载与安装
下载中心 - Elastic 中文社区https://elasticsearch.cn/download/?
[root@server5 ~]# rpm -ivh kibana-7.6.1-x86_64.rpm
(2)kibana配置:
# vim /etc/kibana/kibana.yml
2 server.port: 5601 //服务端口
7 server.host: "0.0.0.0" //监听本机所有端口
25 server.name: "server5" //服务名称(可选)
28 elasticsearch.hosts: ["http://172.25.254.2:9200"] //ES集群地址
115 i18n.locale: "zh-CN" //语言改成中文
(3)启动kibana服务
# systemctl enable --now kibana.service
查看端口:
[root@server5 kibana]# netstat -antlp |grep 5601
tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 3589/node
(4)访问kibana并测试样例
?
?
?
3、kibana使用
注意:kibana的所有数据都是从ES服务器上获得的,所以一定要保证ES服务器步出问题
以分析上一实验中的“Apache”日志为例。
实验一:绘制访问量统计图
第一步:导入数据/创建索引
?输入匹配的索引字段
6——根据时见戳创建索引?
?
第二步:绘制可视化图形
?
?
可以统计实时的Apache访问量?
可视化结果保存
?
实验二:绘制访问量前五的垂直条形图
第一步:导入Apache数据
第二步:绘制条形图
?已经可以统计好各个IP地址访问的访问量
?保存图形项目
?
实验三:绘制访问量前五的饼图
?
?实验四、创建仪表板来显示各类指标
?向仪表盘中添加指标:
添加完成后如下所示:
?
?保存仪表盘:
?
4、kibana监控
4.1使用kibana的默认监控——单机模式
可以查看当前ELK集群中每个节点的各种监测数据和节点状态。
4.2 使用kibana的metricbeat监控——集群模式
4.2.1 启用xpack安全验证
集群模式需要先创建证书——在master节点上执行:
在server2上执行
# cd /usr/share/elasticsearch/
# bin/elasticsearch-certutil ca
# bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# cp elastic-certificates.p12 /etc/elasticsearch
# chown elasticsearch elastic-certificates.p12
将证书复制到集群中其他节点(server3/4),并更改权限
# scp elastic-certificates.p12 root@172.25.254.3:/etc/elasticsearch/
# scp elastic-certificates.p12 root@172.25.254.4:/etc/elasticsearch/
在server3/4上执行
# chown elasticsearch /etc/elasticsearch/elastic-certificates.p12
配置所有的elasticsearch集群节点</etc/elasticsearch/elasticsearch.yml>:
# vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12
完成后重启ES集群所有节点的服务:
在server2/3/4上执行
#systemctl restart elasticsearch.service
ES集群重启正常后,设置用户密码:
# /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
这里需要设置各种服务的密码,统一都设置成westos
设置完成后,重新登录cerebro。
用户名为:elastic ;密码为:westos。次用户具有最高权限。
设置Logstash连接ES用户密码:
# vim /etc/logstash/conf.d/grok.conf
1 input {
2 file {
3 path => "/var/log/httpd/access_log"
4 start_position => "beginning"
5 }
6 }
7
8 filter {
9 grok {
10 match => { "message" => "%{HTTPD_COMBINEDLOG}" }
11 }
12 }
13
14 output {
15 stdout {}
16 elasticsearch {
17 hosts => ["172.25.254.2:9200"]
18 index => "apachelog-%{+YYYY.MM.dd}"
19 user => "elastic"
20 password => "westos"
21 }
22 }
?添加head访问:设置完成后重启ES
# vim /etc/elasticsearch/elasticsearch.yml
66 http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
# systemctl restart elasticsearch.service
浏览器访问ES-head
http://172.25.0.13:9100/?auth_user=elastic&auth_password=westos
?
4.2.2 连接kibana
第一步:设置kibana连接ES的用户密码
# vim /etc/kibana/kibana.yml
46 elasticsearch.username: "kibana"
47 elasticsearch.password: "westos"
第二步:重启kibana
# systemctl restart kibana.service
第三步:登录kibana
用户名为:elastic ;密码为:westos。次用户具有最高权限。
?第四步:设置Metricbeat监测
生产环境中,ES集群和日志监控集群是分开的,也就是说,数据集群就只搞数据,监控集群就只搞监控。但是这里电脑资源限制,我们将监控集群和数据集群合并在一起了。?
以下步骤需要添加哪个节点就在哪个节点设置
第五步:安装Metricbeat软件——
下载中心 - Elastic 中文社区https://elasticsearch.cn/download/
# rpm -ivh metricbeat-7.6.1-x86_64.rpm
第六步:启动加密监控插件xpack,并设置用户名和密码
# cd /etc/metricbeat/modules.d/ //进入metracbeat配置目录
# metricbeat modules enable elasticsearch-xpack //启用xpack插件
添加用户名和密码
# vim /etc/metricbeat/modules.d/elasticsearch-xpack.yml
17 username: "elastic"
18 password: "westos"
第七步:更改metricbeat配置文件,添加访问监测集群的用户名和密码
# vim /etc/metricbeat/metricbeat.yml
94 hosts: ["172.25.254.2:9200"] //监测集群地址
101 username: "elastic"
102 password: "westos"
第八步:启动metricbeat服务
# systemctl enable --now metricbeat.service
第九步:查看kibana,配置成功?
每个节点都添加metricbeat插件:
?监控效果如下所示:
?
四、本章总结
1、常见服务的日志格式
常见服务的日志格式在目录</usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns>中,用于从日志中提取变量。
?2、logstash服务读取日志时,一定要记得设置日志即其目录的可读权限
|