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

[经验分享] 55 logstach应用详解、ELK Stack

[复制链接]

尚未签到

发表于 2019-1-28 12:06:19 | 显示全部楼层 |阅读模式
  01logstash应用详解
  

  配置环境:
  node3192.168.1.133CentOS Linux release 7.2
  node4192.168.1.134CentOS Linux release 7.2
  

  [root@node4 ~]# cd /etc/logstash/conf.d/
  [root@node4 conf.d]# vim filesample.conf
  input {
  file {
  path    =>  ["/var/log/messages"]
  type    =>  "system"
  start_position  =>  "beginning"
  }   
  }   
  

  output {
  stdout {
  codec   =>  rubydebug
  }   
  }   
  

  [root@node4 conf.d]# logstash -f filesample.conf --configtest
  Configuration OK
  

  

  
  [root@node3 ~]# rpm -ivh epel-release-latest-7.noarch.rpm
  [root@node3 ~]# yum -y install collectd  
  [root@node3 ~]# vim /etc/collectd.conf
  修改
  #Hostname    "localhost"
  
  Hostname    "node3"
  修改
  #LoadPlugin df
  
  LoadPlugin df#监控磁盘
  修改
  #LoadPlugin network
  
  LoadPlugin network
  在程序端后添加
  
     
     
  
  [root@node3 ~]# systemctl start collectd.service
  

  [root@node4 conf.d]# vim udpsample.conf
  input {
  udp {
  port    =>  25826
  codec   =>  collectd {}
  type    =>  "collectd"
  }   
  }   
  

  output {
  stdout {
  codec   =>  rubydebug
  }   
  }
  [root@node4 conf.d]# logstash -f udpsample.conf --configtest
  Configuration OK
  [root@node4 conf.d]# logstash -f udpsample.conf
  [root@node4 conf.d]# yum -y install httpd
  [root@node4 conf.d]# systemctl start httpd.service
  [root@node4 conf.d]# vim groksample.conf
  input {
  stdin {}
  }
  

  filter {
  grok {
  match   =>  { "message" =>  "%{IP:clientip} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
  }
  }
  

  output {
  stdout {
  codec   =>  rubydebug
  }
  }
  [root@node4 conf.d]# logstash -f groksample.conf --configtest
  Configuration OK
  [root@node4 conf.d]# logstash -f groksample.conf
  Logstash startup completed
  1.1.1.1 GET /index.html 30 0.23
  {
         "message" => "1.1.1.1 GET /index.html 30 0.23",
        "@version" => "1",
      "@timestamp" => "2017-01-03T13:37:24.978Z",
            "host" => "node4",
        "clientip" => "1.1.1.1",
          "method" => "GET",
         "request" => "/index.html",
           "bytes" => "30",
        "duration" => "0.23"
  }
  

  [root@node4 conf.d]# vim apachelogsample.conf
  input {
      file {
          path            =>  ["/var/log/httpd/access_log"]
          type            =>  "apachelog"
          start_position  =>  "beginning"
      }
  }
  

  filter {
      grok {
          match       =>  { "message" =>  "%{COMBINEDAPACHELOG}" }
      }
  }
  

  output {
      stdout {
          codec       =>  rubydebug
      }
  }
  

  [root@node4 conf.d]# logstash -f apachelogsample.conf --configtest
  Configuration OK   
  

  [root@node4 conf.d]# vim /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-0.3.0/patterns/grok-patterns
  在末尾添加
  # nginx Logs
  NGUSERNAME [a-zA-Z\.\@\-\+_%]+
  NGUSER %{NGUSERNAME}
  NGINXACCESS %{IPORHOST:clientip} - %{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{OS:agent} %{NOTSPACE:http_x_forwarded_for}  
  

  [root@node4 conf.d]# systemctl stop httpd.service
  [root@node4 conf.d]# yum -y install nginx
  [root@node4 conf.d]# systemctl start nginx.service
  [root@node4 conf.d]# cd /var/log/nginx/
  [root@node4 nginx]# ls
  access.log  error.log
  [root@node4 nginx]# tail access.log
  192.168.1.204 - - [03/Jan/2017:22:18:03 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C)" "-"
  192.168.1.204 - - [03/Jan/2017:22:18:03 +0800] "GET /nginx-logo.png HTTP/1.1" 200 368 "http://192.168.1.134/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C)" "-"
  192.168.1.204 - - [03/Jan/2017:22:18:03 +0800] "GET /poweredby.png HTTP/1.1" 200 2811 "http://192.168.1.134/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C)" "-"
  [root@node4 conf.d]# cd -
  [root@node4 conf.d]# cp apachelogsample.conf nginxlogsample.conf  
  [root@node4 conf.d]# vim nginxlogsample.conf
  input {
      file {
          path            =>  ["/var/log/nginx/access.log"]
          type            =>  "nginxlog"
          start_position  =>  "beginning"
      }
  }
  

  filter {
      grok {
          match       =>  { "message" =>  "%{NGINXACCESS}" }
      }
  }
  

  output {
      stdout {
          codec       =>  rubydebug
      }
  }
  

  [root@node4 conf.d]# logstash -f nginxlogsample.conf
  

  02ELK Stack
  

  [root@node4 ~]# yum install redis
  [root@node4 ~]# vim /etc/redis.conf
  修改
  bind 127.0.0.1
  
  bind 0.0.0.0
  [root@node4 ~]# systemctl start redis.service
  [root@node4 ~]# redis-cli
  127.0.0.1:6379> help
  redis-cli 2.8.19
  Type: "help @" to get a list of commands in
        "help " for help on
        "help " to get a list of possible help topics
        "quit" to exit
  

  [root@node4 ~]# cd /etc/logstash/conf.d/
  [root@node4 conf.d]# cp nginxlogsample.conf nglogredissample.conf
  [root@node4 conf.d]# vim nglogredissample.conf
  input {
      file {
          path            =>  ["/var/log/nginx/access.log"]
          type            =>  "nginxlog"
          start_position  =>  "beginning"
      }
  }
  

  filter {
      grok {
          match       =>  { "message" =>  "%{NGINXACCESS}" }
      }
  }
  

  output {
      redis {
          port        =>  6379
          host        =>  ["127.0.0.1"]
          data_type   =>  "list"
  key         =>  "logstash-%[type]"
      }
  }
  [root@node4 conf.d]# logstash -f nglogredissample.conf --configtest
  Configuration OK
  
  [root@node3 ~]# vim /etc/profile.d/java.sh
  export JAVA_HOME=/usr
  [root@node3 ~]# yum install -y logstash-1.5.4-1.noarch.rpm
  [root@node3 ~]# cd /etc/logstash/conf.d/
  [root@node3 conf.d]# vim server.conf
  input {
      redis {
          port        =>  "6370"
          host        => "192.168.1.134"
          data_type   =>  "list"
          key         =>  "logstash-nginxlog"
      }   
  }   
  

  output {
      stdout {
          codec       =>  rubydebug
      }   
  }   
  

  [root@node3 conf.d]# vim /etc/profile.d/logstash.sh
  export PATH=/opt/logstash/bin:$PATH
  [root@node3 conf.d]# . /etc/profile.d/logstash.sh
  [root@node3 conf.d]# logstash -f server.conf --configtest
  Configuration OK
  

  [root@node1 ~]# yum makecache
  [root@node1 ~]# yum install java-1.7.0-openjdk-devel.x86_64
  [root@node1 ~]# vim /etc/profile.d/java.sh
  export JAVA_HOME=/usr
  [root@node1 ~]# yum install elasticsearch-1.7.2.noarch.rpm -y
  [root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml
  修改
  #cluster.name: elasticsearch
  
  cluster.name: loges
  修改
  #node.name: "Franz Kafka"
  
  node.name: "node1"
  [root@node1 ~]# systemctl daemon-reload
  [root@node1 ~]# systemctl start elasticsearch.service
  [root@node1 ~]# /usr/share/elasticsearch/bin/plugin -i bigedsk -u file:///root/bigdesk-latest.zip
  [root@node1 ~]# tar xf kibana-4.1.2-linux-x64.tar.gz -C /usr/local/
  [root@node1 ~]# cd /usr/local/
  [root@node1 local]# ln -s kibana-4.1.2-linux-x64/ kibana
  [root@node1 local]# cd kibana
  [root@node1 kibana]# ls
  bin  config  LICENSE.txt  node  plugins  README.txt  src
  [root@node1 kibana]# cd config/
  [root@node1 config]# vim kibana.yml
  修改
  elasticsearch_url: "http://localhost:9200"
  
   elasticsearch_url: "http://192.168.1.131:9200"
  

  #启动
  [root@node1 kibana]# /usr/local/kibana/bin/kibana
  

  [root@node3 conf.d]# vim server.conf
  input {
      redis {
          port        =>  "6370"
          host        => "192.168.1.134"
          data_type   =>  "list"
          key         =>  "logstash-nginxlog"
      }
  }
  

  output {
      elasticsearch {
          cluster     =>  "loges"
          index       =>  "logstash-%{+YYYY.MM.dd}"
      }
  }
  [root@node3 conf.d]# logstash -f server.conf --configtest
  Configuration OK
  [root@node3 conf.d]# logstash -f server.conf
  

  [root@node1 ~]# curl -XGET 'localhost:9200/_cat/indices'
  yellow open .kibana 1 1 1 0 2.4kb 2.4kb
  

  该节视频到71:55(65382)由于错误太多无法继续进行
  





运维网声明 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-668687-1-1.html 上篇帖子: 配置ELK添加marvel插件 下篇帖子: CentOS7搭建开源分布式搜索平台ELK实现日志实时搜索并展示图表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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