精华内容
下载资源
问答
  • 基于VMware实现 ElasticSearch集群+Logstash集群+Kibana+kafka集群+Filebeat 实现日志管理系统
  • 上文介绍了如何搭建kibana elasticsearch之搭建日志收集系统ELK之kibana搭建 这里介绍如何搭建logstash实现日志收集 1、上传logstash安装包(资料) 2、解压tar –zxvf logstash-6.4.3.tar.gz 3、在config目录下...

    上文介绍了如何搭建kibana   elasticsearch手把手搭建生产环境日志收集系统ELK之kibana

    这里介绍如何搭建logstash实现日志收集

     

    1、上传logstash安装包(资料)

    2、解压tar –zxvf  logstash-6.4.3.tar.gz

    3、在config目录下放入middle.conf.conf 读入并且读出日志信息

    这里介绍一下middle.conf....这个文件是自己建的.用来让logstash进行创建每天日志的索引.配置日志的路径等信息

    input {
        # 从文件读取日志信息 输送到控制台
        file {
            path => "/usr/local/elasticsearch-6.4.3/logs/myes.log"
            codec => "json" ## 以JSON格式读取日志
            type => "elasticsearch"
            start_position => "beginning"
        }
    }
    
    # filter {
    #
    # }
    
    output {
        # 标准输出 
        # stdout {}
        # 输出进行格式化,采用Ruby库来解析日志   
         stdout { codec => rubydebug }
    	 elasticsearch {
            hosts => ["192.168.212.190:9200"]
            index => "adlog-%{+YYYY.MM.dd}"
        }	 
    }
    

    4.启动方式:案例如下:

     

    去中台启动中台的logstash  默认配置为占用2G内存   

    nohup  ./logstash -f ../config/middle.conf

    如下启动成功后可以去kibana中将已经被logstash创建的索引新建出来进行管理.

     

    利用kibana进行索引日志查询与管理

    1.进入kibana,点击managerment 


    2. 点击Index Patterns  然后创建索引create index  

    3.在index-name*一列输入自己的索引名称进行创建....可以看见已经列出来了通过logstash创建的索引adlog-2020.02.21   就是通过上面的logstash配置生成的....每天创建一个.所以输入这个名字.点击下一步.

     

    4.然后选择@timestamp进行日志的排列.然后点击createIndex pattern,.

     

     

    看到如下就证明自己的索引创建成功了.

     

    5.进入discover  可以开始索引数据的搜索了.可以看到下面有该索引的一些数据.通过搜索栏输入相关数据进行查询.(精确搜索需要加上双引号),并且左侧可以选择主面板需要展示的字段...

     

     

    总结:

          到这里一个elk分布式日志收集系统就完整的搭建好了.但是我们需要考虑一些问题

          这种日志收集是从服务器的日志文件处实时的进行日志的获取.也就是说如果我服务器特别多的话...基本上每个服务器都要装logstash进行日志收集了.所以如果有几十台服务器需要收集日志....那不得累死吗?...所以,总结下来.这种elk如果对于服务器数量比较少的小项目来说还是比较简单的.但是对于服务器数量众多的大项目来说.还是需要考虑考虑了.

         

    所以基于上述总结来说.对于我们的大项目是不适用的.维护起来太累了.那么该怎么办呢?我们可以使用kafka来从日志产生的根源(也就是代码)进行收集发送到ogstash配置了kafka对应的主题的索引.然后再通过logstash写入到es中.这是一种最完美的方案.

    下文开始搭建elasticsearch手把手搭建生产环境日志收集系统ELK之kafka单实例搭建

     

    展开全文
  • 使用主流的开源日志收集系统ELK,并结合分布式消息队列redis部署实时消息自动化系统,能够快速、实时地收集应用日志,提高运维人员的工作效率。详细介绍了Docker、ELK、Docker Swarm和Etcd的功能及原理,最后通过...
  • 1. ELK介绍 ElK,即ElasticSearch+Logstash+Kibana ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动...

    1. ELK介绍
    ElK,即ElasticSearch+Logstash+Kibana

    ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。

    Elasticsearch优势

    横向可扩展性:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。

    分片机制提供更好的分布性:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。

    高可用:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。
    口使用简单:共需一条命令就可以下载文件,然后很快就能搭建一一个站内搜索引擎。


    Elasticsearch应用场景

    大型分布式日志分析系统ELK  elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据)

    大型电商商品搜索系统、网盘搜索引擎等。


    Elasticsearch存储结构

    Elasticsearch是文件存储,Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:

    {
        "name" :     "jiayoubing",
        "sex" :      0,
        "age" :      25
    }
    

    关系数据库     ⇒ 数据库 ⇒ 表    ⇒ 行    ⇒ 列(Columns)

    Elasticsearch    ⇒ 索引(Index)   ⇒ 类型(type)  ⇒ 文档(Docments)  ⇒ 字段(Fields)

     

    Centos上安装Elasticsearch

    关闭防火墙 systemctl stop firewalld.service

    1.配置jdk安装环境,vi /etc/profile

    在最后加入jdk环境变量

    export JAVA_HOME=/usr/java/jdk1.8.0_11
    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
    export PATH=$PATH:${JAVA_HOME}/bin

    刷新环境变量:source /etc/profile

    2.下载elasticsearch安装包

    进入elasticsearch官网:https://www.elastic.co/cn/downloads/elasticsearch

    注意:linux安装内存建议1g内存以上

    3.新建elasticsearch的群组和用户(elasticsearch默认不允许在root用户下面运行)

    第一步:liunx创建新用户  adduser elk 然后给创建的用户加密码 passwd elk 输入两次密码。

    [root@192 ~]# adduser elk
    [root@192 ~]# passwd elk
    Changing password for user elk.
    New password: 
    Retype new password: 
    passwd: all authentication tokens updated successfully.

    第二步:新建elk的群组 groupadd elk

    在lcoal目录中,给elk同等root权限:sudo chown -R elk /usr/local

    su elk 切换用户

    4.通过ftp上传elasticsearch安装包(我这里统一用7.6.1版本)

    5.解压elasticsearch

    tar -xvf elasticsearch-7.6.1-linux-x86_64.tar.gz 

    6.修改elasticsearch-7.6.1/config/elasticsearch.yml

    network.host: 192.168.234.142
    http.port: 9200
    node.name: node-1
    cluster.initial_master_nodes: ["node-1"]

    7.启动elasticsearch

    cd /usr/local/elasticsearch-7.6.1/bin

     ./elasticsearch

    解决报错问题,日志如下

    [2020-04-06T07:24:34,390][INFO ][o.e.b.BootstrapChecks    ] [192.168.234.142] bound or publishing to a non-loopback address, enforcing bootstrap checks
    ERROR: [3] bootstrap checks failed
    [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
    [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    [3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
    ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/elasticsearch-7.6.1/logs/elasticsearch.log

    在sysctl中增加如下:vi /etc/sysctl.conf

    vm.max_map_count=655360

    在limits.conf中增加如下:vi /etc/security/limits.conf

    * soft nofile 65536

    * hard nofile 131072

    * soft nproc 2048

    * hard nproc 4096

    sysctl -p  刷新生效

    保存后重启,启动成功,查看日志如下

    网页登录查看状态(切记这里要用ip地址登录,127.0.0.1已经修改为对外IP地址)

     

     

    展开全文
  • ELK简介: ELK=Elasticsearch+ Logstash + Kibana,是同一家公司开发的3个...Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到...
    ELK简介:

    ELK=Elasticsearch+ Logstash + Kibana,是同一家公司开发的3个开源工具,可组合起来搭建海量日志分析平台,目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析。
    在这里插入图片描述
    参考:初识ES数据库


    Logstash介绍:

    Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
    核心流程:Logstash事件处理有三个阶段:inputs→filters→outputs。是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。


    传统日志收集存在的问题:

    传统日志收集一般都是用log4j,slf4j,logback等一些日志插件,帮我们做日志存储并保存到本地,可配置按每天存储或指定日志文件大小等一些功能。在单体应用下这样做或许没啥问题,但是当做了集群或者是分布式系统中问题一下就暴露出来了。
    例如:当系统出现异常我们需要查询某个日志时,我们需要这样做:

    1. 先定位到某个服务,确定该日志是哪个服务产生的。
    2. 由于服务做了集群会自动负载均衡,我们不知道该日志在哪个服务节点(实例)上,需要依次登录到每个节点的服务器进行排查,当服务节点很多时可想而知这样的工作量是巨大的;而且日志文件一般很大查询相率也不高。

    而ELK就可以帮我们解决这个痛点,Logstath将各服务节点的日志收集起来并集中存储到ES,ES强大的搜索功能可以帮我们实现快速查询,我们只需要利用Kibana可视化界面进行查询操作即可展示结果。

    ELK日志收集原理图解:

    在这里插入图片描述
    注:Logstash三个核心功能Input(收集读取日志)、Filter(过滤日志信息)、Output(将日志存储到ES)。
    在实际应用中,还需要引入消息队列如Kafka,后面在介绍


    ELK环境搭建

    搭建顺序为Elasticsearch、Logstash,Kibana只是个图形化界面先搭后搭都不影响。

    1. 安装ES与Kibana并启动
    关于ES与Kibana的安装这里不赘述了,请参考:Elasticsearch入门(ES,Kibana可视化界面安装)

    2. 安装Logstash

    • 下载安装包: wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.3.tar.gz
    • 解压:tar -zcvf logstash-6.4.3.tar.gz
    • 在Logstash的config目录下放入myservice.conf文件(见下)
    • 启动:./logstash -f myservice.conf #进入logstash的bin目录下,启动时指定配置文件

    myservice.conf文件内容如下:

    input{
    	#从文件读取日志信息输送到控制台 path:这里测试ES的日志收集,就不单独搭建服务了
    	file{
    	    # 要读取的日志文件,还可以是Kafk、数据库、MongoDB、Redis...
    		path => "/usr/local/elasticsearch-6.4.3/1ogs/myes.1og" 
    		codec => "json"  # 以JSON格式读取日志
    		type => "elasticsearch" # 索引类型,可自定义 如:order-service
    		start_position=>"beginning"
    	}
    }
    # filter{
    #
    # }
    output{
    	# 标准输出,写入ES
    	# stdout{}
    	# 输出进行格式化,采用Rulby库来解析日
    	stdout{ codec => rubydebug }
    	
    	elasticsearch {
    		# hosts:配置ES服务列表地址  
    		hosts => ["192.168.2.101:9200"]
    		#index:根据每天日期创建索引  格式:es-YYYY.MM.dd  默认索引类型:doc
    		index => "es-%{+YYYY.MM.dd}"
    	}
    }
    

    3. 测试是否成功
    启动后我们查看到Logstash日志输出如下JSON字符串即表示成功:
    在这里插入图片描述
    4. 利用Kibana的DevTools进行查询(常用)
    浏览器访问Kibana地址:http://192.168.2.101:5601

    在这里插入图片描述
    测试命令:

    #### 例如今天产生的索引名为: es-2019.10.10
    ### 查看文档映射
    GET es-2019.10.10/_mapping
    
    ### 所有字段message中匹配node-0的日志
    GET es-2019.10.10/_search
    {
      "query": {
        "match": {
          "message": "node-0"
        }
      }
    }
    
    

    5. 可视化界面查询
    第一次进入Discover需先创建一个 es*,表示索引名为es开始的
    在这里插入图片描述

    ELK初体验就到这里了,后面将介绍ELK+Kafka实现分布式系统日志收集

    展开全文
  • ELK日志收集系统讲析

    2018-10-25 14:39:20
    ELK日志收集系统讲析,ELK+filebeat+Kafka,多组件结合
  • 日志分析系统ELK + Filebeat安装包,版本为7.6,包含了Elasticsearch、Filebeat、Logstash、Kibana
  • 下载 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-windows-x86_64.zip 将下载的压缩包解压到“C:\Program Files\Filebeat”
  • ELK日志收集系统ELK

    2019-08-30 08:35:02
    收集日志,转发到ES,过滤转换字段 Kibana java 过滤,分析,搜索,展示 Filebeat GO 收集日志,转发给ES 1.kibana安装 [root@elk01 /server/tools/EFLK软件包v6.6.0]# ls ...

    工作中每天需要做的报表

    1.找出访问排名前10的IP
    2.找出访问排名前10的URL
    3.找出10点到14点之间访问频次最高的IP和URL
    4.找出10点到14点之间bbs网站访问最高的IP和URL
    5.找出攻击者的IP,他都访问了什么页面?从什么时候来的,什么时候走的,一共访问多少次
    6.找出昨天和今天同时间段访问有什么变化
    7.查看各大搜索引擎今天访问了多少次,都访问了哪些页面
    8.找出哪些是伪造的爬虫IP,并查封
    9.5分钟内告诉我结果

    资料链接

    ELK日志收集

    Elasticsearchjava存储,提供数据
    Logstashjava收集日志,转发到ES,过滤转换字段
    Kibanajava过滤,分析,搜索,展示
    FilebeatGO收集日志,转发给ES


    1.kibana安装

    [root@elk01 /server/tools/EFLK软件包v6.6.0]# ls
    ansible_elk.tar.gz
    elasticsearch-6.6.0.rpm
    filebeat-6.6.0-x86_64.rpm
    kibana-6.6.0-x86_64.rpm
    logstash-6.6.0.rpm
    
    rpm -ivh kibana-6.6.0-x86_64.rpm
    

    2.kibana配置

    [root@lb01 /data/soft]# grep "^[a-z]" /etc/kibana/kibana.yml
    server.port: 5601
    server.host: "10.0.0.5"
    elasticsearch.hosts: ["http://10.0.0.5:9200"]
    kibana.index: ".kibana"
    
    重启kibana
    systemctl restart kibana.service
    





    删除例子

    3.filebeat

    安装filebeat
    rpm -ivh filebeat-6.6.0-x86_64.rpm 
    
    查看配置文件路径
    [root@elk01 ~]# rpm -qc filebeat 
    /etc/filebeat/filebeat.yml
    
    修改配置文件
    [root@elk01 ~]# vim  /etc/filebeat/filebeat.yml
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/nginx/access.log
    output.elasticsearch:
      hosts: ["10.0.0.5:9200"]
    
    启动filebeat
    [root@elk01 ~]# systemctl restart filebeat.service
    
    查看日志
    [root@elk01 ~]# tail -f /var/log/filebeat/filebeat 
    
    安装nginx
    [root@elk01 ~]# yum install -y nginx
    
    启动nginx
    [root@elk01 ~]# systemctl restart nginx.service 
    
    在浏览器上刷一些访问日志
    http://10.0.0.5/YouArePig
    
    查看nginx的日志
    [root@elk01 ~]# tail -f /var/log/nginx/access.log
    
    filebeat工作原理
    100条
    停止filebeat
    110条
    启动filebeat
    

    刷新elasticsearch-head插件

    操作kibana







    收集Nginx的json日志

    1.第一步:修改nginx日志为json格式,重启nginx

    > /var/log/nginx/access.log
    
    log_format json '{ "time_local": "$time_local", '
                         '"remote_addr": "$remote_addr", '
                         '"referer": "$http_referer", '
                         '"request": "$request", '
                         '"status": $status, '
                         '"bytes": $body_bytes_sent, '
                         '"agent": "$http_user_agent", '
                         '"x_forwarded": "$http_x_forwarded_for", '
                         '"up_addr": "$upstream_addr",'
                         '"up_host": "$upstream_http_host",'
                         '"upstream_time": "$upstream_response_time",'
                         '"request_time": "$request_time"'
     ' }';
    
    
    systemctl restart nginx
     
    access_log  /var/log/nginx/access.log  json; 
    

    第二步:修改filebeat配置文件

    [root@lb01 ~]# cat /etc/filebeat/filebeat.yml 
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/nginx/access.log
      json.keys_under_root: true
      json.overwrite_keys: true
      tags: ["access"] 
    
    - type: log
      enabled: true
      paths:
        - /var/log/nginx/error.log
      tags: ["error"] 
    
    output.elasticsearch:
      hosts: ["10.0.0.5:9200"]
      indices:
      - index: "nginx-access-%{[beat.version]}-%{+yyyy.MM}"
        when.contains:
          tags: "access"
      - index: "nginx-error-%{[beat.version]}-%{+yyyy.MM}"
        when.contains:
          tags: "error"
    
    setup.template.name: "nginx"
    setup.template.pattern: "nginx-*"
    setup.template.enabled: false
    setup.template.overwrite: true
    
    =================================
    

    重启filebeat

    systemctl restart filebeat
    

    第三步: 访问nginx

    ab -c 10 -n 100 http://10.0.0.5/oldzhang.html
    

    第四步: kibana添加索引








    展开全文
  • ELK日志收集系统搭建

    2019-08-13 01:18:34
    NULL 博文链接:https://donald-draper.iteye.com/blog/2302224
  • 分布式系统日志收集ELK

    万次阅读 2019-01-07 21:50:36
    1. ELK介绍 ElK,即ElasticSearch+Logstash+Kibana ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,326
精华内容 5,330
关键字:

日志收集系统elk