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

[经验分享] Logstash+Kibana+多ElasticSearch集群部署

[复制链接]

尚未签到

发表于 2019-1-29 07:40:55 | 显示全部楼层 |阅读模式
ELK原理与介绍
   
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash 。
官方文档 :https://www.elastic.co/



  • Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  • Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

   


主机
IP
主要服务




linux-node1
192.168.200.129
jdk、logstash、elasticsearch、kibana


linux-node2
192.168.200.130
jdk、elasticsearch
   

操作步骤
   


  • 安装elasticsearch、jdk
  •   Logstash需要Java 8.不支持Java 9。

    # rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch  //导入密钥
    # vim /etc/yum.repos.d/elasticsearch.repo       //配置源
    [elasticsearch-2.x]
    name=Elasticsearch repository for 2.x packages
    baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
    gpgcheck=1
    gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
    enable=1
    # yum install elasticsearch -y     //安装elasticsearch
    # yum install java -y             //安装java  jdk
    # java -version     //查看java版本 (1.8版本)
  •   配置elasticsearch

    -------------------linux-node1服务器配置 -------------------------
    # vim /etc/elasticsearch/elasticsearch.yml
    cluster.name: abner   //17行 集群名称
    node.name: linux-node1   //23行 节点名称
    path.data: /data/es-data   //33行37行 工作目录
    path.logs: /var/log/elasticsearch/
    bootstrap.memory_lock: true   //43行 防止交换swap分区
    network.host: 0.0.0.0    //54行 监听网络
    http.port: 9200   //58行 端口
    discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.200.130"]   
    //68行 单播列表自动发现机制
    -------------------linux-node2服务器配置(其他同上)---------------------
    node.name: linux-node2   // 23行 节点名称
    discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.200.129"]   
    //68行 单播列表自动发现机制
    # mkdir -p /data/es-data
    # chown -R elasticsearch:elasticsearch /data/es-data/
    # systemctl start elasticsearch.service
    # netstat -ntap | grep 9200



  • 测试
      http://192.168.175.132:9200


   

   



  •   RESTful API (通过json格式交互)

    # curl -i -XGET 'http://192.168.200.129:9200/_count?pretty' -d '{"query": { "match_all": {} }}'


   




  • 内存解锁和文件限制
      生产环境中必须要修改(注意)

    # vim /etc/security/limits.conf
    //末尾插入
    elasticsearch soft memlock unlimited
    elasticsearch hard memlock unlimited
    * soft nofile 65535        
    * hard nofile 65535
    # systemctl stop elasticsearch.service
    # systemctl start elasticsearch.service
   




  • 安装elasticsearch-head插件
  • 安装完成后打开浏览器输入:
  •   http://192.168.200.129:9200/_plugin/head/

    # /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

   




  • 安装elasticsearch-kopf插件
  • 安装完成后打开浏览器输入:
  •   http://192.168.200.129:9200/_plugin/kopf/#!/cluster

    # /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf



   


logstash部署


  • Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

  •   安装logstash

    # rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    # vim /etc/yum.repos.d/logstash.repo
    [logstash-2.1]
    name=Logstash repository for 2.1.x packages
    baseurl=http://packages.elastic.co/logstash/2.1/centos
    gpgcheck=1
    gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
    enable=1
    # yum install logstash -y
  •   定义输入和输出流,类似管道

    # /opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{} }'
  •   详细格式显示

    # /opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } }'


   


  •   写入到elasticsearch中

    # /opt/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.200.129:9200"] } }'

   


  •   写入ES和同时详细格式显示

    # /opt/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.200.129:9200"] } stdout { codec => rubydebug } }'

   


  •   创建 logstash配置文件写入

    # vim /etc/logstash/conf.d/01-logstash.conf
    input { stdin { } }
    output {
    elasticsearch { hosts => ["192.168.200.129:9200"] }
    stdout { codec => rubydebug }
    }
    # /opt/logstash/bin/logstash -f /etc/logstash/conf.d/01-logstash.conf
   


  • 使用logstash配置文件:
  • 收集系统日志
  • 收集java异常日志
  •   事件优化处理

    # vim /root/file.conf
    input {
    file {
    path => "/var/log/messages"
    type => "system"
    start_position => "beginning"
    }     
    file {
    path => "/var/log/elasticsearch/abner.log"
    type => "es-error"
    start_position => "beginning"   
    codec => multiline {
    pattern => "^\["
    negate => true
    what => "previous"
    }
    }
    }
    output {
    if [type] == "system" {
    elasticsearch {
    hosts => ["192.168.200.129:9200"]
    index => "system-%{+YYYY.MM.dd}"
    }
    }
    if [type] == "es-error" {
    elasticsearch {
    hosts => ["192.168.200.129:9200"]
    index => "es-error-%{+YYYY.MM.dd}"
    }
    }
    }
    # logstash -f /root/file.conf

   


kibana部署


  •   Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

    # wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz  
    # tar zxvf kibana-4.3.1-linux-x64.tar.gz -C /opt/
    # mv /opt/kibana-4.3.1-linux-x64/ /usr/local/kibana
    # vim /usr/local/kibana/config/kibana.yml
    server.port: 5601           //2行
    server.host: "0.0.0.0"   //5行
    elasticsearch.url: "http://192.168.200.129:9200"    //12行 ES地址
    elasticsearch.url: "http://192.168.200.130:9200"    //节点2的 ES地址
    kibana.index: ".kibana"    //20行
  •   Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

    # yum install screen -y  
    #  screen   //开启
    # /usr/local/kibana/bin/kibana   //启动监听
      按下组合键 ctrl+a+d  进行丢入后台
    打开浏览器:http://192.168.200.129:5601/









运维网声明 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-668901-1-1.html 上篇帖子: Elasticsearch的CURD操作 下篇帖子: elasticsearch 内存溢出,节点崩溃
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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