zoukankan      html  css  js  c++  java
  • logstash的output插件

    logstash 的output插件

    nginx,logstash和redis在同一台机子上

    yum -y install redis,vim /etc/redis.conf 设置bind 0.0.0.0 ,使redis监听在所有端口上

    systemctl start redis.service, cd /etc/logstash/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}"

    }

    }

    其中output是将nginx的日志发送给redis的list,list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中

    key理解为链表的名字,Redis的list类型其实就是一个每个子元素都是string类型的双向链表。链表的最大长度是(2的32次方)。我们

    可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列

    %{type}是调用前面的nginxlog, date_type是将数据存入redis的list中

    刷新一下nginx的页面,使用redis-cli登陆redis,并使用命令LLEN logstash-nginxlog 就可查看到该list有多少个元素了,使用

    lindex logstash-nginxlog 0命令可以查看第一个元素,如果这些元素没被取出将会一直存在于此list中

    再启动一台logstash服务器,yum -y install logstash-1.5.4-1.noarch.rpm, cd /etc/logstash/conf.d/,

    vim server.conf

    input {

    redis {

    port => "6379"

    host => "192.168.204.135"

    data_type => "list"

    key => "logstash-nginxlog"

    }

    }

    output {

    stdout {

    codec => rubydebug

    }

    }

    这台logstash服务器的目的是到redis上去取数据,并把数据输出到标准输出,这时刷新一下nginx的页面就可以看到数据了

    开启一台elasticsearch服务器,yum -y install java-1.7.0-openjdk-devel, yum -y elasticsearch-1.7.2.noarch.rpm

    编辑配置文件:vim /etc/elasticsearch/elasticsearch.yml

    编辑:cluster.name: loges node.name: "node1"

    service elasticsearch start

    /usr/share/elasticsearch/bin/plugin -i bigdesk -u file:///root/bigdesk-master.zip 安装插件

    浏览器中http://192.168.204.131:9200/_plugin/bigdesk/ 访问此插件

    安装kibana 4.1.4, kibana是一个前端展示数据工具,可以安装在elasticsearch集群中的某一个节点,也可以安装在一台单独的节点

    tar xf kibana-4.1.4-linux-x64.tar.gz -C /usr/local/ cd /usr/local

    ln -s kibana-4.1.4-linux-x64 kibana cd kibana/config

    vim kibana.yml

    修改:其实默认无需修改什么,因为kibana和上面的elasticsearch服务器在同一台主机上

    启动程序在/usr/local/kibana/bin目录下,在/usr/local/kibana目录下使用bin/kibana -h 查看命令帮助

    bin/kibana 运行在前台, bin/kibana &运行在后台 ss -tnl 查看5601端口是否开启

    浏览器中http://192.168.204.131:5601访问kibana

    现在将日志输出到ES集群中去,并有kibana展示

    修改前面一台logstash服务器的配置文件,vim server.conf

    input {

    redis {

    port => "6379"

    host => "192.168.204.135"

    data_type => "list"

    key => "logstash-nginxlog"

    }

    }

    output {

    elasticsearch {

    cluster => "loges"

    index => "logstash-%{+YYYY.MM.dd}"

    }

    }

    logstash -f ./server.conf --configtest

    [2016-07-21 08:27:28.434] WARN -- Concurrent: [DEPRECATED] Java 7 is deprecated, please use Java 8.

    Java 7 support is only best effort, it may not work. It will be removed in next release (1.0).

    Configuration OK

    检查配置文件时告诉我,虽然java 7尽力支持但见我我使用java 8 因此以后要用java 8咯

    实验做到这里报错了,可能是版本的问题,架构是部署logstash在web服务器上收集日志,并将日志传给redis,另外部署一台

    logstash到redis上去取日志,然后将取到的日志传给elasticsearch服务器

     

  • 相关阅读:
    vue 交互 跨域获取数据
    计算属性computed缓存 与 methods 的思考
    _this 与 this
    python 占位符 %s Format
    odoo 中字段属性对象Field
    安装CentOS7.7图解
    docker的volumes
    Docker常用命令详解
    Ubuntu修改时区和更新时间
    SqlServer创建时间维度
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5706813.html
Copyright © 2011-2022 走看看