栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ELK初学

ELK初学

ELK ELK之Elasticsearch(7版本?)

搜索而生,网站、应用、文档、企业级搜索、地理位置、日志、nginx、商业分析

特点
  • 横向拓展能力
  • 极限性能(毫秒级返回结果)
  • 相关性,(输入abc会出来跟abc相关的)
连接

python可以使用RESTful APi 通过端口9200进行通信也可以用curl

curl -X '://:/?' -d ''
增删改查

在kibana中的Dev Tools中的console控制台就可以创建数据

创建索引 索引名/type/id

POST twitter/_doc/1

{

‘user’:‘GR’,

“city”:“beijing”,

“province”:beijing ,

‘location’:{

‘lat’:‘219.11’,

‘lon’:‘111’

}

}

获取

GET twitter/_doc/1

修改(不是简单的替换字段,是替换库)

PUT twitter/_doc/1

{

‘user’:‘GR’,

}

or

POST teitter/_updeat_by_query

{

“script”:{

​ “source”:“ctx._source.city=params.city;ctx._source=params.province;”,

​ “lang”:“painless”,

​ “params”:{

​ “city”:“上海”

​ “province”:“上海”

}

},

“quert”:{

“match”:{

“user”:“GR”

}

}

}

删除

DELETE teitter

1中的index代表的就是对2进行插入(生成索引),这个index也可以是put(修改)、delete(删除)下面是文档内容,json

查看表结构

GET twitter/_mapping

有的时候会分析错。要重新配置_mapping,先删除这个twitter然后

PUT teitter

{

“srttings”:{“number_of_shards”:1}

}

再利用mapping接口重新定义

注意location的type 这个时候在去查看 就正确了, 然后再把数据加进去

查询

GET twitter/_search

{

“query”:{“match”:{“city”:“北京”}}

}

复合查询

这里的must可以更改为“must_not”

GET twitter/_search{

“query”:{"bool:

​ {“must”:[

​ {“match”:{“city”:“北京”}},

​ {“match”:{“age”:“30”}}]}"}

}

计数

GET twitter/_count{

“query”:{"bool:

​ {“should”:[

​ {“match”:{“city”:“北京”}},

​ {“match”:{“age”:“30”}}]}"}

}

基于地理位置查询

范围查询


关联搜索(忽略大小写)

范围计数(当size:10就是展示分组的数据)

分词

分完之后是小写,具体用法参考文档

GET twitter/_analyze{

“text”:[“Happy Birthday”],

“analyzer”:"standord

}

or 自己设置

ELK之Logstash
  • 开源的流式ETL引擎
  • 只需几分钟即可构建数据流处理管道
  • 具有自适应缓冲的水平伸缩性和弹性
  • 数据来源中立性,支持众多数据源
  • 丰富的周边插件,200多个第三方集成和处理器
  • 自带监控和管理
数据源
  • log&files
  • 指标信息,服务器指标
  • 安全相关
  • 数据存储(云,本地,redis,mq,kfk)

架构

分布式收集,实时收集监控

input

数据采集端,收集和反序列化,Codecs来设置解码器

Beats,TCP,UDP,HTTP,JDBC,HTTPPoiler

filter

数据传进来之后,对数据进行处理

Structure:把数据在进行格式化,一行log文本中可能有很多字段,可进行拆分过滤

Transform

Normalize

GoolP Enrichment

Extern Lookup Enrichment

CIDR & DNS Lookups

outputs

存储

Elasticsearch,TCP,UDP,HTTP,数据库或消息队列

AY-least-once交付保障和基于持久化队列的自适应缓冲

将错误时间发送到死信队列(dead letter queue)中,用于离线处理和重放

Pipeline Dynamics

管道可以动态修改不用重启

  • 带条件和多管道的直接数据流
  • 使用身份验证和加密来确保传输安全
  • 使用modules来一键交付
  • 可轻松构建自定义插件集成和处理器

配置

基本

#获取端口为5043的数据
input{
beats {port => 5043}
}
#对数据进行过滤,将message中的字段都改为小写
filter{
mutate{lowervase => ["message"]}
}
#输出到es
output{
elasticsearch{}
}
事件

主要数据单元就是事件

文档类型,与json相似,支持任意层次结构和类型

{
"@timestap" => 2017-09-09T01-01-01,
"message"=>"bar",
"some_other_field"=>{
"has_complex_values"=>123
}
}
管道
  • 一个管道包含数据处理的一个逻辑流程

  • 管道从input接收数据

  • 发送到queue

  • 然后传递给workers来处理

可伸缩
  • 支持多个input

  • 支持多个workers来处理filter/output部分

ELK之Kibana 简介

开源的数据分析和可视化平台,可以使大数据通俗易懂,基于浏览器的界面便于快速创建和分享动态数据仪表板来追钟Elasticsearch(es)的实时数据变化

安装

在官网上下载.zip安装包

https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-windows-x86_64.zip

下载好解压到你放置的地方

cd进去

启动

.binkibana

默认情况下,会在前台启动,输出log到STDOUT,可以通过ctrl+c 停止Kibana

在config/kibana.yml中加载配置文件,目录结构如下

文件名描述
bin二进制脚本,包括kibana启动服务和kibana-plugin安装插件
config配置文件包括kibana.yml
datakibana和其插件写入磁盘的数据文件位置
optimize编译过的源码,
plugins插件文件的位置,每一个插件都有以恶搞单独的二级目录
配置

在kibana.yml中

  • server.port
    • 默认值:5601 ,由后端提供服务,该配置可指定服务端口号
  • server.host
    • 默认值:‘localhost’ ,指定后端服务器的主机地址
  • server.basePath
    • 如果启用代理,指定kibana的路径,该配置只影响kibana生成的Urls
    • 转发请求到kibana时代理会移除基础路径值,且不能以‘/’结尾
  • server.maxPayloadBytes
    • 默认值:1048576 服务器请求最大负载单位时字符
  • server.name
    • 默认值:‘主机名’,kibana对外展示的名称
  • server.defaultRoute
    • 默认值:‘/app/kibana‘ 默认路径,可改变kibana的登陆页面
  • elasticsearch.preserchHost
    • 默认值:True
  • elasticsearch.url:
    • 默认值: “http://localhost:9200” 用来处理所有查询的 Elasticsearch 实例的 URL 。
  • elasticsearch.preserveHost:
    • 默认值: true 该设置项的值为 true 时,Kibana 使用 server.host 设定的主机名,该设置项的值为 false 时,Kibana 使用主机的主机名来连接 Kibana 实例。
  • kibana.index:
    • 默认值: “.kibana” Kibana 使用 Elasticsearch 中的索引来存储保存的检索,可视化控件以及仪表板。如果没有索引,Kibana 会创建一个新的索引。
  • kibana.defaultAppId:
    • 默认值: “discover” 默认加载的应用。

等。。。详情观看:

https://www.elastic.co/guide/cn/kibana/current/settings.html

连接elasticsearch

你要告诉kibana去链接的elasticsearch,第一次访问会提示定义一个index pattern也就是索引模式来匹配一个或者多个索引,也可以在 Management 页面增加,

默认是链接localhost上的elasticsearch实例,如需要连接不同的elasticsearch,可以修改kibana.yml中的Elasticsearch URL 配置项并重启 Kibana。

若是生产环境

https://www.elastic.co/guide/cn/kibana/current/production.html

注意:

Kibana 可视化控件中的字段以及 .kibana 索引管理依赖动态映射(dynamic mapping)功能,如果动态映射被关闭,您需要手动提供字段的映射以便于 Kibana 用于正确的创建可视化控件

kibana和elasticsearch动态映射

默认情况下,Elasticsearch 启用了字段的 动态映射。Kibana 需要利用动态映射在可视化控件中正确使用字段,同时管理 .kibana 索引,这些索引存储了已保存的搜索、可视化图表和仪表板。

如果 Elasticsearch 使用场景需要禁止动态映射,这就需要手动提供创建可视化控件所需要字段的映射,并手动启用 .kibana 索引的动态映射。

下面的步骤假定 Elasticsearch 中不存在索引 .kibana ,且 elasticsearch.yml 中 index.mapper.dynamic 配置为 false :

  1. 启动 Elasticsearch。

  2. 创建 .kibana 索引并只针对该索引打开动态映射:

    PUT .kibana
    {
      "index.mapper.dynamic": true
    }
    
  3. 启动 Kibana ,转到 web 页面,确认没有动态映射相关的错误。

访问

直接访问

localhost:5601

查看状态

localhost:5601/status

来访问 Kibana 的服务器状态页,状态页展示了服务器资源使用情况和已安装插件列表。

若有问题参见:

https://alvin.onloading.cn/2018/10/06/elasticsearch-install/

应用 discover

查看es结构化日志的窗口

日志的量
(丢图了)
结构化好了的文档信息,浅灰色代表的是字段,后面代表的值
(同上)
这里也可以添加筛选

visualize

提供了很多样例


创建新的模板样例,其中TSVB是(使用可视化管道接口构建时间服务器)

创建可视化,以热力图为例

选择数据源

选择你要设置的聚合函数

选择你要求的字段

设置x轴y轴


就可以按照你的要求出图了,然后可以保存

点击可以观看样例

dashboard

仪表板,点击可以查看样例,

点击右上角创建

Canvas

新的可视化组件,H5的标准像素级别

选定了一个样例后 点击样式,可以改变样式

也可以更改查询语句

插入新的样式,点击添加样式

Maps

进入数据源

这个编辑器比你想象的要强大

Machine Learning:略 Metrics:略 Logs:略 APM:略 Uptime:略 SISM:略 Dev Tools

开发工具,三大模块

控制台可以搜索一些你想要的数据,并展示(有提示的那一种)

search Profiler: 可以进行验证

Grok Debugger:正则,从原始的日志文本中抽取日志数据,可以查看你收取的数据是不是你想要的

Stack Monitiring

对集群进行检测的数据展示

Management

设置

干货 需求背景:
  • 业务发展越来越大,服务器越来越多
  • 各种日志量也越来越多
  • 开发人员排查问题需要上服务器上查日志,不方便
  • 运营想要分析日志数据
  • 5.0之前叫ELK 之后添加了Beats 就叫Elastic Stack
包含
  • Elasticsearch 关于日志搜索,存储
  • kibana 图形化展示
  • logstash 收集日志(对内存,CPU资源消耗比较高,但可定义输出的日志格式 beats不行)
  • beats : 轻量级日志采集器
    • filebeat 收集日志文件
    • metricbeat 指标(cpu啥的)监控
    • packertbeat 网络数据
    • winlogbeat win事件日志
    • auditbeat 审计日志
    • heartbeat 运行时间监控
  • x-pack: 实现安全、报警、监控、报表、图标等功能的套件(收费)
  • Cloud/ECE 云相关
架构 ELK安装
  • 准备3台机器130(主节点),132(数据节点),133(数据节点)
  • 全部安装es,openjdk(yum install -y java-1.8.0-openjdk) 130(主机)安装kibana
  • 132安装logstash
安装es(6.0版本)

下载

rpm–import https://artifacts.elastic.co/GPG-KEY-elasticsearch

添加配置

vim /etc/yum.repos.d/elastic.repo //加入以下内容

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum list |grep elastic


yum install -y elasticsearch

在启动之前

vi /etc/elasticsearch/elasticsearch.yml

#集群名称

cluster.name: rubis

#节点名称

node.name: node-1

#数据文件与日志文件存放目录

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

#网络设置

network.host: 0.0.0.0 #通过本机访问
http.port: 9200

#集群设置

cluster.initial_master_nodes: [“node-1”]

启动

#启动
systemctl start elasticsearch

#查看状态
systemctl status elasticsearch

localhost:9200即可访问

安装Kibana

下载

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

添加配置

vi /etc/yum.repos.d/kibana.repo

#内容
[kibana-7.x]
name=Kibana 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=1
autorefresh=1
type=rpm-md

yum install -y kibana

vi /etc/kibana/kibana.yml

server.host: “0.0.0.0”
elasticsearch.hosts: [“http:localhost:9200”]
i18n.locale: “zh-CN”

启动

#启动
systemctl start kibana

#查看状态
systemctl status kibana

精选博客

[ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台]> (https://www.cnblogs.com/zclzhao/p/5749736.html)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/335645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号