设为首页 收藏本站
查看: 1624|回复: 0

[经验分享] E L K 以及 filebeat

[复制链接]

尚未签到

发表于 2019-1-29 13:45:09 | 显示全部楼层 |阅读模式
  《 Elasticsearch 》
ESC和mongdb都属于document,NOSQL非关系型数据库。
Elasticsearch 是一个基于apache lucene(性能最好,功能最全的全文搜索引擎)的搜索服务器,是一个分布式多用户的全文搜索引擎,基于JAVA开发的需要装JDK的包,安装即可。
基于restful web接口(用于客户端和服务器交互类的软件,更易于实现缓存等机制)。
它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,是面向文档的,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。
集群的读取数据的每台服务器可能不同步。
特点:

  • 分布式存储,每个字段都被索引,并且可搜索。
    2.分布式的实时分析引擎。
    3.可以扩展到上百台服务器,分布式处理(PB级,Peripheral Buffer 外围缓冲器)结构化和非结构化数据。
    JSON(document)文档型,像 [列表] {字典} 分层解决。Lucene只是一个库,用于Java的二次开发加了一些界面,通过提供的接口进行访问,客户端不用关心后台是怎么操作的。
    结构化(有规律) 无结构化(无规律无结构,如日志)
    安装:JDK: rpm -ivh  jdk-8u162-linux-x64.rpm  java -version 保证jdk是最新的包。
    如果不是最新的,切换,alternatives --config 软件名   
    创建esc的源:/etc/yum.repo.d/elasticsearch.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
    安装ESC的包: rpm   -ivh  elasticsearch-6.2.3.rpm
    开启:systemctl start elasticsearch
    查找进程是否开启: ps  -ef  |grep  java  (基于java的)
    l
  设置监听地址:vim /etc/elasticsearch/elasticsearch.yml
cluster.name: 集群名字,统一的。(很多不允许数字开头)
node.name:  Node名字,自定义,自己的。
node.attr.rack: r1  机架名 ,根据生产环境定义,实验测试可放在同一台。
path.data: /var/lib/elasticsearch  数据存放路径,习惯性的在/data/下做一个软链:
(mv  /var/lib/elasticsearch  /data/      ln -s  /data/elasticsearch  /var/lib/elasticsearch)
path.logs: /var/log/elasticsearch  日志存放路径
discovery.zen.ping.unicast.hosts:   改版以后需要填域名,必须能解析 ,中括号里的第一个主机一般都是master
在页面里  * 代表master ,做过群集的服务器状态低于%70说明数据不同步,旧的服务器认为以前的NODE节点不在了便不会同步新的服务器。
  node 节点数最好是单数,防止脑裂(双数的群集在master)
discovery.zen.ping.unicast.hosts: ["yxlxixi", "yxlhaha"]
network.host: 0.0.0.0   网络主机
  重启:systemctl   restart   elasticsearch
ss  -anl  |grep  9200  elasticsearch 端口 9300 :ESC群集之间通讯的  9100:图形界面端口
查看 elasticsearch的信息(版本) :curl http://localhost:9200
"lucene_version" : "7.2.1": elasticsearch的版本信息,群集之间的版本要相同,不然会导致数据不同步,为了防止版本的不同步,在配置完elasticsearch.yml后改成备份的名字,ESC不认识的文件名,就可以防止yum  update后的版本不一致导致数据不同步的现象。
curl 访问ESC 的语法 :curl -X '://:/?' -d ''
说明:
VERB HTTP方法: GET , POST , PUT , HEAD , DELETE
PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用
HOST Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
PORT Elasticsearch HTTP服务所在的端口,默认为9200
PATH API路径(例如count将返回集群中文档的数量),PATH可以包含多个组件,例如cluster/stats或者
_nodes/stats/jvm
QUERY_STRING 一些可选的查询请求参数,例如 ?pretty 参数将使请求返回更加美观易读的JSON数据  BODY 一个JSON格式的请求主体(如果请求需要的话)
查看master和node的状态 :curl -X GET localhost:9200/_cat/nodes
查看群集的状态:curl -X GET localhost:9200/_cluster/state/nodes?pretty   或
curl -X GET localhost:9200/_cat/health
  Logstash架构收集日志
原理:监控nginx apache 等日志,然后将收集的日志(filter过滤)输出(output)给本机的ESC或其他服务器的logstash,也可以是redis:
多台服务器上都部署有logstash收集日志(日志收集的代理),写在多个或一个redis(解耦合的队列),后边的logstash(集中日志)从redis上读取日志数据再写到ESC(存储日志)里。因为logstash收集的日志太多太快,通过redis(慢)给后边的logstash或者ESC减轻前台Logstash的压力,前台的logstash只管把数据交给Redis其他的不管,这就是队列服务器,Redis后边的logstash或者ESC先进先出的顺序来读取数据。不产生依赖,一个坏掉不影响其他的。(这就是解耦合也就是松耦合的架构,两个程序模块有关联就叫做耦合,也叫做生产者消费模型)如果没有队列,前台的loastash得发送一个数据等后边的服务器接收到才继续下一个动作。
  Logstash 安装与测试:之前配置的elasticsearch.repo即可,yum  -y  install  logstash
测试:/usr/share/logstash/bin/logstash -e 'input {stdin{}} output{stdout{codes=>rubydebug}}' --path.settings /etc/logstash
Logstash收集nginx log:
  测试:/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf --path.settings /etc/logstash &(后台)
Kibana(图形化操作界面)
  filebeat:一个插件,也可以监控日志,相当于agent和logstash,filebeat讲数据传输给logstash或者redis,losstash再把数据存储到ESC上:
配置filebeat:
  重启logstash . systemctl  restart  logstash
安装: 在另一台服务器上装  rpm  -ivh  filebeat-6.2.4-x86_64.rpm
配置:
  Hosts: server端logstash:ip 以及filebeat端口
vim  /etc/firebeat/filebeat.yml :  注释Outputs的hosts行 ,开启logstash output行的hosts: ["server端的ip:5044"]
开启: systemctl  start  filebeat
测试: curl  http://localhost:9200/_cat/indices
浏览器测试:firebeat端ip  出现Apache的网页多刷进行测试,再次查看,curl  http://localhost:9200/_cat/indices ,发现日志数量增多了。
  有许多图片没上传,暂时不上传了。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669240-1-1.html 上篇帖子: Elastic Search搜索引擎在SpringBoot中的实践 下篇帖子: Elastic
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表