zoukankan      html  css  js  c++  java
  • 利用RELK进行日志收集

    利用RELK进行日志收集

    发布时间:April 3, 2018 // 分类:运维工作,开发笔记,python // No Comments

    前不久在做应急的总是遇到要求对日志进行分析溯源,当时就想到如果对常见的日志类进行解析后统一入库处理,然后在对相关的IP/URL进行统计归纳。对于溯源之类的很是方便。想到数据量比较大,又要便于分析,就想到了ELK.

    搭建一套基于elk的日志分析系统。
    系统centos 内存4G 双核

    大概架构如此

    1.elk搭建

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm
    wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-x86_64.rpm
    wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.rpm
     
    rpm -ivh elasticsearch-6.4.2.rpm
    sudo chkconfig --add elasticsearch
    /etc/init.d/elasticsearch start
     
    rpm -ivh kibana-6.4.2-x86_64.rpm
    /etc/init.d/kibana start
    sudo chkconfig --add kibana
     
    rpm -ivh logstash-6.4.2.rpm
    cd /usr/share/logstash
    ln -s /etc/logstash ./config

    整个elk系统搭建好了,安装redis作为agent收集日志来作为logstash的输入源

    wget http://download.redis.io/redis-stable.tar.gz
    tar zxf redis-stable.tar.gz
    cd redis-stable
    make && make install

    修改redis.conf。

    bind 0.0.0.0
    protected-mode no
    daemonize yes
    maxclients 1000000

    启动redis

    sudo redis.conf /etc/
    redis-server /etc/redis.conf

    Logstash配置文件是JSON格式,放在/etc/logstash/conf.d 。 该配置由三个部分组成:输入,过滤器和输出。

    input 数据输入端,可以接收来自任何地方的源数据。
    file:从文件中读取
    syslog:监听在514端口的系统日志信息,并解析成RFC3164格式。
    redis:从redis-server list 中获取
    beat:接收来自Filebeat的事件
    Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下。
    grok: 通过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,满足大部分需求。
    mutate: 在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。
    drop: 完全丢弃事件,如debug事件。
    clone: 复制事件,可能添加或者删除字段。
    geoip: 添加有关IP地址地理位置信息。
    output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用,常用的有:
    elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。
    file: 将事件数据写入到磁盘文件上。
    mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。
    redis:将数据发送至redis-server,常用于中间层暂时缓存。
    graphite: 发送事件数据到graphite。http://graphite.wikidot.com/
    statsd: 发送事件数据到 statsd。

    编写logstash的配置文件。对所有的数据全盘接受,感谢Mosuan师傅的指导。

    input {   
        redis {
            host => '127.0.0.1'
        port => 6379
            password => 'password'
            data_type => 'list'
            key => 'logstash:redis'
        }
    }
    output {
        elasticsearch { hosts => localhost }
        stdout { codec => rubydebug }
    }

    Logpara

  • 相关阅读:
    HUST第八届程序设计竞赛-G小乐乐打游戏(双bfs)
    HDU-1575-Tr A(矩阵快速幂模板)
    HDU-1061-Rightmost Digit (快速幂模板)
    HihoCoder 1142-三分求极值(三分模板)
    Aizu ITP2_6_A(二分模板)
    Codeforces-938D-Buy a Ticket(最短路设虚拟节点+Dijk优先队列优化)
    POJ-1797-Heavy Transportation(最短路变形)
    HDU-5137-How Many Maos Does the Guanxi Worth(最短路删点)
    POJ-1094-Sorting It All Out (拓扑排序)(判断环和排名是否唯一)
    HDU-1869-六度分离(多源到多源最短路)
  • 原文地址:https://www.cnblogs.com/zgq123456/p/10063318.html
Copyright © 2011-2022 走看看