云计算进阶(八)-分布式ELK平台 、 ES集群安装 、 扩展插件

分布式ELK平台
数据库(核心)
Web集群(核心)
缓存服务器
ELK集群:日志分析,处理


一 ELK介绍
1 ELK是一整套解决方案,是三个软件产品的首字母缩写,很多公司都在使用,比如华为,携程,美团,sina

ELK:Elasticsearch:日志检索与存储 ->M
Logstash: 日志收集分析与处理->P
Kibana: 日志可视化->N(web)
三个软件都是开源软件,通常都是配合使用,而且由先后归与Elastic.co公司名下,故简称ELK

2 作用:1分布式日志数据集中式查询与管理
2系统监控,系统硬件和应用各个组件的监控
3故障排查
4安全信息与事件管理,->反爬虫
5报表功能
ZAbbix :服务器死没死,宕机否,服务没了
ELK 在海量日志系统的运维中解决以上问题.


学一门技术帮助
1 Help
2 Man
3 官方文档


3 ELK /故障排查:网站流量突然翻倍
1 单ip访问次数
2 分部署拒绝服务攻击
3 CDN内容分发网络

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术
4 每一个应用链接流量增长
5 网站首页->


二 ELK首页效果图


一 数据备份安全:
1日常备份
2离线:机房服务器坏了
3磁带

二 人才高薪两点:
1 不可替代性
2 稀缺性


一 Elasticsearch 部分

1 简介:Elasticsearch:
是一个基于lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfui API的接口
Elasticsearch是用java开发的,并作为apache许可条款的开放源代码发布,是当前流行的企业级搜索引擎,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.
2 主要特点:实时分析
分布式实时文件存储,并将每一个字段都编入索引
文档导向
高可用性,易拓展,支持集群,分片和复制
接口友好,支持JSON

3 ELK组成部分:Elasticsearch (1)->给运维看的,使用的而不是普通用户
Logstash(2)
Kibana(3)

4 ES 没有什么:
1Elasticsearch没有典型意义的事物
2Elasticsearch是一种面向文档的数据库
3Elaseicsearch没有提供授权和认证特性

5相关术语概念
Node:装有一个ES服务器的节点
Cluster 由多个Node组成的集群
Document:(行)->一个可以被搜索的基础信息单元
Index:(库)->拥有相似特征的文档的集合
Type:(表)->
Filed:(字段)
Shards:(分片)索引的分片,每一个分片就是一个shard
Replicas:(索引的拷贝)->副本

二 SQL 与NoSQL 对比:

Easticsearch架构图:


三 ES集群安装部署

环境准备;

执行步骤:
1 设置IP与知己名称对应关系-
->/etc.hosts
192.168.1.41 es1
2 解决依赖关系
Elasticsearch 要求至少java7
-> 一般推荐使用openjdk 1.8
3 安装软件包
-> java-1.8.0-openjdk elasticsearch
4 修改配置文件
->vim /etc/elasticsearch/elasticsearch.yml
5 启动服务
6 检查服务
Firefox http://192.168.1.41:9200

1 真机:
cd /linux-soft/04/elk
Mkdir /var/ftp/elk
Cp * /var/ftp/elk
Createrepo /var/ftp/elk
2 Es1 ES2 ES3 ES4 ES5 主机
Vim /etc/yum.repos.d/local.repo
[elk]
name=elk
baseurl=“ftp://192.168.1.254/elk
enabled=1
gpgcheck=0
~
yum -y install elasticsearch java-1.8.0-openjdk
vim /etc/elasticsearch/
Network.host 0.0.0.0
cd /etc/elasticsearch/
ls
vim elasticsearch.yml
systemctl start elasticsearch.service
systemctl enable elasticsearch.service

浏览器验证:firefox: http://192.168.1.41:9200

3 ELK 集群主机
配置文件
Vim /etc/elasticsearch/elasticsearch.yml
Cluster.name: elk -配置集群名字
Node.name: es2/es3/es4/es5/ -当前主机名字
Network.host: 0.0.0.0 -监听所有地址
Discovery.zen.ping.unicast.hosts:[“elk1”,”elk2”,”elk3”] -声明集群成员

4启动服务并设置开机自启
Systemctl start elasticsearch
Systemctl enable elasticsearch
验证查看端口:
Ss -ntulp 是可以看到9200 9300 端口的

5浏览器访问
Firefox http://192.168.1.41(42 43 44 45 ):9200

Curl http://es1:9200/_cluster/health?pretty

验证集群,使用ES内置字段_cluster/health
Curl http://192.168.1.41:9200/_cluster/health?pretty

总结: ES集群配置
1集群中的所有节点要互相能够ping通,要在所有集群机器上配置/etc/hosts中的主机名与ip对应关系
2 集群中所有的机器都要安装java环境
3 cluster,name集群名字配置要要求完全一致
4 node.name 为当前节点标识,应配置本机的主机名
5 discovery为集群节点机器,不需要全部配置
6 配置完成后启动所有节点服务


Ansible-playbook 自动化执行:

cat essetup.yml

  • hosts: es
    remote_user: root
    tasks:
    • copy:
      src: local.repo
      dest: /etc/yum.repos.d/local.repo
      owner: root
      group: root
      mode: 0644
    • name: install elasticsearch
      yum:
      name: java-1.8.0-openjdk,elasticsearch
      state: installed
    • template:
      src: elasticsearch.yml
      dest: /etc/elasticsearch/elasticsearch.yml
      owner: root
      group: root
      mode: 0644
      notify: reload elasticsearch
      tags: esconf
    • service:
      name: elasticsearch
      enabled: yes
      handlers:
    • name: reload elasticsearch
      service:
      name: elasticsearch
      state: restarted

四 ES 插件
1 head
它展现了ES集群的拓扑结构,并且可以通过它进行索引index 和节点node 的操作
它提供一组针对集群的查询API,并将结果以json和表格形式返回
它提供一些快捷菜单,用以展现集群的各种状态

2 Kopf
是一个Elasticsearch的管理工具
它提供了对ES集群操作的API

3 Bigdesk
是Elasticsearch的一个集群监控工具
可以通过它来查看集群的各种状态,比如:CPU,内存使用情况,索引数据,搜索情况,http连接数


四 插件的安装
1查看安装的插件
/usr/share/elasticsearch/bin/plugin list

2 安装插件:
Plugin:
COMMANDS
install Install a plugin
remove Remove a plugin
list List installed plugins
Es5主机安装三插件:head kopf bigdesk
/usr/share/elasticsearch/bin/plugin install

ftp://192.168.1.254/elk/elasticsearch-head-master.zip / file://192.168.1.254/head.zip
这里使用url的方式进行安装,如果文件在本地,我们也需要使用file://的方式指定路径,例如文件在/tmp/xxx 下面,我们要写成file:///tmp/xxx
删除使用remove指令

ftp://192.168.1.254/elk/elasticsearch-kopf-master.zip

ftp://192.168.1.254/elk/big-master.zip


四 拓展插件->RESTful>RESTful API调用

1 http协议简介
请求行,消息报头,请求正文
请求的URI和协议版本,格式
Method Requist-URI HTTP-Version CRLF

2
HTTP 请求方法
常用方法:GET POST HEAD
其他方法:OPTION PUT DELETE TRACE CONNECT

3 ES常用:
PUT -增
DELETE -删
POST -改
GET -查

4 系统命令:curl
一个利用URL规则在命令行下的文件传输工具
强大http命令行工具,支持多中请求模式,自定义请求头,之一款综合工具

常用参数
-A 修改请求agent
-X 设置请求方法
-i 显示返回头信息

Curl -A “windows /IE 11.0” 192.168.1.254/info.php -伪装成IE浏览器
Curl -i http://www.taobao.com/ https://www.sohu.com/
Server :tengine->

Curl -XPOST/DELETE /GET / http://192.168.1.254/info.php

5 RESTful API 调用
Elasticsearch 提供了一系列RESTful 的API
 检查集群,节点,索引的健康度,状态和统计
 管理集群,节点,索引的数据及元数据
 对索引进行CRUD操作及查询操作
 执行其他高级操作如分页,排序,过滤等
 POST 或PUT 数据使用json格式

Json (JSON javascript Object Nation ) 意思是基于文本独立语言的轻量级
数据交换格式
Json格式:数组[“aa”,”bb”,”cc”]
键值对{key:value}

_cat API 查询集群信息,节点信息
-V参数显示详细信息
-help显示帮助信息
-nodes查询节点状态信息
-indices?v

_cat/master
/nodes
/indices?v
/health

curl http://192.168.1.41:9200/_cat/masterv
curl http://192.168.1.41:9200/_cat/nodes
curl http://192.168.1.41:9200/_cat/indices?v
curl http://192.168.1.41:9200/_cat/shards


命令行对增删改查
创建一个索引,设置分片数量与副本数量
PUT插入数据
curl -XPUT http://es5:9200/tedu -d ’
{“settings”:{
“Index”:{
“number_of_shards”:5,
“number_of_replicas”:1
}}
} ’

Curl -XPUT http://es5:9200/tedu/teasher/2 -d ‘
{
“姓名”:”静静”,
“爱好”:”撸猫”,
“阶段”:”3”
} ‘

POST 修改
修改数据,使用POST方法
在修改数据的时候必须调用_update
调用方式:数据库地址/索引/类型/id值/_update
Curl -XPOST ‘http://192.168.1.41:9200/ooxx/stu/3/_update’ -d ‘{
“doc”:{
“年代”:”唐代”
}
}’
查询GET
查询使用GET 方法,GET为默认方法
查询显示结果时候可以用pretty规范显示格式
多条查询需要使用_mget关键字配合JSON调用
Curl -XGET ‘http://192.168.1.41:9200/ooxx/stu/1’
删除同上DELETE


批量导入数据
使用_bulk批量导入数据
批量导入在数据使用POST方式,数据格式为json,url编码使用data-binary

Curl -XPOST http://es2:9200/_bulk/oooxx --data-binary @
Shakephere.json

导入含有index配置的json文件
物理机真机:
scp /var/ftp/elk/*gz root@192.168.1.45:/root/
gzip -d logs.jsonl.gz

主机es5 : curl -XPOST “http://192.168.1.45:9200/_bulk” --data-binary @logs.jsonl

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~上善若水~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值