自动化运维之FLK

目录

一、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

 5、kibans节点日志采集插件——filebeat

四、本章总结

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插件:

 监控效果如下所示:

 5、kibans节点日志采集插件——filebeat

5.1 filebeat安装及配置

在所有需要采集日志的ES节点上安装。

5.1.1 filebeat的安装

下载中心 - Elastic 中文社区https://elasticsearch.cn/download/

[root@server2 ~]# rpm -ivh filebeat-7.6.1-x86_64.rpm 

注意版本和ES集群版本相匹配

5.1.2 filebeat的配置

Elasticsearch module | Filebeat Reference [7.6] | Elastichttps://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-elasticsearch.html根据此文当,更改</etc/filebeat/modules.d/elasticsearch.yml>文件

# cd /etc/filebeat/modules.d                    //进入filebeat配置目录
# filebeat modules enable elasticsearch         //启用elasticsearch功能

# vim elasticsearch.yml                     //更改内容如下

编辑filebeat的主配置文件</etc/filebeat/filebeat.yml> 

# vim /etc/filebeat/filebeat.yml 
150   hosts: ["172.25.254.2:9200"]                //filebeat生成日志的传送目的地
157   username: "elastic"
158   password: "westos"

5.1.3 启动filebeat

# systemctl enable --now filebeat.service

5.1.4 测试

在cerebro上查看,filebeat的日志已经显示出来。

在kibana上查看,filebeat日志也已经采集成功。

四、本章总结

1、常见服务的日志格式

常见服务的日志格式在目录</usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns>中,用于从日志中提取变量。

 2、logstash服务读取日志时,一定要记得设置日志即其目录的可读权限

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值