分布式ELK平台
分布式ELK平台
一.什么是elk?(三大模块)
1.Elasticsearch:负责日志检索和存储 (数据库)
2.Logstash 负责日志的分析和处理(program程序)
3.Kibana 负责日志的可视化(web展示)
二.elk能做什么?
ELK组件在海量日志系统的运维中,可用于解决
分布式日志数据集中式查询和管理
系统监控,包含系统硬件和应用各个组件的监控
故障排查
安全信息和事件管理
三.Elasticsearch部分
elasticsearch是一个基于lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于restful API的web接口
elasticsearch是用java开发的,并作为apache许可条款下的开源发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.
特点:实时分析
1.分布式实时文件存储,并将每一个字段都编入索引
2.文档导向,所有的对象全部是文档
3.高可用性,易扩展,支持集群(Cluster),分片和复制(shards和replicas)
4.接口友好,支持JSON
ES没有什么?
没有典型意义的事务,是一种面向文档的数据库,没有提供授权和认证特性
四.相关概念
node:装有一个es服务器节点
cluster:有多个node组成的集群
document:一个可被搜索的基础信息单元
index:拥有相似特征的文档集合
type:一个索引中可以定义一种或多种类型
filed:是es的最小单位,相当于数据的某一列
shards:索引的分片,每一个分片就是一个shard
replicas:索引的拷贝
五.ES与Nosql对比

六.ES集群安装
步骤一:安装elasticsearch和java-1.8.0-openjdk,同步配置文件
1)更改对应的主机名、 ip地址以及搭建yum源(以案例1为例子)
2)安装elasticsearch四台主机同样操作(以es2为例子)
- [root@es2 ~]# yum -y install java-1.8.0-openjdk.x86_64
- [root@es2 ~]# yum -y install elasticsearch
3)同步配置/etc/hosts和/etc/elasticsearch/elasticsearch.yml, 修改node.name字段(以es2为例子)
- for i in {52..55} ; do scp /etc/hosts 192.168.1.$i:/etc/hosts; done
- [root@es1 ~]# for i in {52..55} ; do scp \
- /etc/elasticsearch/elasticsearch.yml \
- 192.168.1.$i:/etc/elasticsearch/elasticsearch.yml; done
- [root@es2 ~]# vim /etc/elasticsearch/elasticsearch.yml
- node.name: es2 //另外三台修改为对应es3,es4,es5
- [root@es2 ~]# systemctl restart elasticsearch
- [root@es2 ~]# systemctl enable elasticsearch
4)访问测试
firefox http://192.168.1.51:9200/_cluster/health?pretty

案例3:练习插件
步骤一:部署插件
插件装在哪一台机器上,只能在哪台机器上使用(这里安装在es5机器上面)
1)使用远程 uri 路径可以直接安装

3)访问kopf插件,如图-5所示:
- [student@room9pc01 ~]$ firefox http://192.168.1.55:9200/_plugin/kopf
4) 访问bigdesk插件,如图-6所示:
- [student@room9pc01 ~]$ firefox http://192.168.1.55:9200/_plugin/bigdesk
步骤二:使用head创建index

案例4:插入,增加,删除查询数据
本案例要求:
- 使用curl命令连接使用ES数据库
- 使用PUT方法增加数据
- 使用POST修改数据
- 使用GET查询数据
- 使用DELETE删除数据
步骤一:增加数据

步骤二:修改数据

步骤三:查询数据

步骤四:删除数据

步骤五:删除索引

案例5:导入数据
步骤一:导入数据
使用POST方式批量导入数据,数据格式为json,url 编码使用data-binary导入含有index配置的json文件
2)使用GET查询结果
系统;命令curl
在linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.
它支持多种请求模式,自定义请求头等强大功能,是一款综合工具
curl 常用参数介绍
-A 修改请求 agent
-X 设置请求方法
-i 显示返回头信息
RESTful API 调用
Elasticsearch 提供了一系列RESTful的API
检查集群,节点,索引的健康度,状态和统计
管理集群,节点,索引的数据及元数据
对索引进行CURD操作及查询操作
执行其他高级操作如分页,排序,过滤等
POST或PUT数据使用jason格式
curl http://es2:9200/_cat/master
创建索引
curl -XPUT http://es1:9200/nsd -d '
> {
> "settings": {
> "index": {
> number_of_shards: 5,
> number_of_replicas: 2
> }
> }
> }:'
插入数据
curl -XPUT http://es2:9200/tedu/teacher/1 -d '
{
"姓名": "丁丁",
"年龄": "88",
"爱好": "写书"
}'
修改数据
curl -XPOST http://es4:9200/tedu/teacher/2/_update -d '
{ "doc": {"年龄":"38"}}'
查数据
curl -XGET 'http://es1:9200/tedu/teacher/2'
删除
curl -XDELETE 'http://es1:9200/tedu/teacher/2'

浙公网安备 33010602011771号