ES(三)ELK的搭建与使用

概念

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。Logstash 是一个动态数据收集管道。支持以 TCP/UDP/HTTP 多种方式收集数据(也可以接受 Beats 传输来的数据),并对数据做进一步丰富或提取字段处理

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

LogStash

准备安装包logstash-5.6.0.tar.gz

tar -xvf logstash-5.6.0.tar.gz 解压安装

运行测试:

logstash -e ‘input{stdin{}}output{stdout{codec=>rubydebug}}’

这行命令的意思就是收集控制台打印内容,并且转化成固定格式的字符串在控制台输出

在这里插入图片描述

得到这样的结果,表示logstash运行成功

使用Logstash导入mysql数据到es

准备要导入的表information

安装jdbc-input插件(logstash-input-jdbc-4.2.4.tar.gz),上传到logstash下的plugins目录下(如果目录不存在手动创建)

准备好jdbc的驱动:logstash-input-jdbc-4.2.4.tar.gz

编写配置文件

jdbc.conf logstash启动时加载的文件

jdbc.sql 执行的查询语句

template.json输出到es中的数据类型的mapping

jdbc.conf
input {
    stdin {
    }
    jdbc {
      # 连接mysql地址和库
      jdbc_connection_string => "jdbc:mysql://localhost:3306/tsdn"
      # 登录名密码
      jdbc_user => "root"
      jdbc_password => "123456"
      # 上传的mysql-connector的jar包,确定路径
      jdbc_driver_library => "/home/resources/mysql-connector-java-5.1.38-bin.jar"
      # 驱动类全路径名称
      jdbc_driver_class => "com.mysql.jdbc.Driver"
        # 开启分页,和分页最大值,自定义设置
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
        #连接数据库执行的sql语句,可以在文件中设定搜索,更新等
      statement_filepath => "/home/resources/jdbc.sql"
        #设定监听事件间隔
      schedule => "* * * * *"
      #导入es中的类型,es中有个字段是type
      type => "info_type"
    }
}
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}
output {
    #设定收集数据的输出位置
    elasticsearch {
        #es的连接地址
        hosts => "192.168.168.101:9200"
        #新建的索引 , 数据存入时所在的索引名称
        index => "tsdn_info"
        #使用搜出出来的那个字段设定docid,我们使用商品id
        document_id => "%{id}" 
		template_overwrite => true
        template =>"/home/software/logstash5.6.0/
        #template模板文件,定义,输入到es中的数据类型的mapping
        template/template.json"
    }
    stdout {
        codec => json_lines
    }
}
jdbc.sql
select
   id,title,description,source,author
from
    information
template.json
{
    "template": "*",
    "version": 50001,
    "settings": {
        "index.refresh_interval": "5s"
    },
    "mappings": {
        "_default_": {
            "_all": {
                "enabled": true,
                "norms": false
            },
            "dynamic_templates": [
                {
                    "message_field": {
                        "path_match": "message",
                        "match_mapping_type": "string",
                        "mapping": {
                            "type": "text",
                            "norms": false
                        }
                    }
                },
                {
                    "string_fields": {
                        "match": "*",
                        "match_mapping_type": "string",
                        "mapping": {
                            "type": "text",
                            "norms": false,
                            "analyzer": "ik_max_word",
                            "fields": {
                                "keyword": {
                                    "type": "keyword"
                                }
                            }
                        }
                    }
                }
            ],
            "properties": {
                "@timestamp": {
                    "type": "date",
                    "include_in_all": false
                },
                "@version": {
                    "type": "keyword",
                    "include_in_all": false
                }
            }
        }
    }
}

启动logstash

./logstash -f /home/resources/jdbc.conf

即开始导入数据

Kibana

准备安装包kibana-5.5.2-linux-x86_64.tar.gz

解压安装tar -xvf kibana-5.5.2-linux-x86_64.tar.gz

修改安装目录下的config下的kibana.yml

2 server.port: 5601
7 server.host: "192.168.168.101"
21 elasticsearch.url: "http://192.168.168.101:9200"
30 kibana.index: ".kibana"

设置完成后,切换到bin目录,输入./kibana启动kibana(要先启动es)

在网页测试访问,我的是192.168.168.101:5601

在这里插入图片描述

kibana界面标签

discover查询:用于通过菜单界面主要用于通过搜索请求,过滤结果,查看文档数据

visualize展示:要用于将查询出的数据进行可视化展示,且可以将其保存加载合并到 Dashboard 中

dashboard控制面板:菜单界面中,我们可以自由排列一组已保存的可视化数据。

timelion时间序列化展示组件:是一个时间序列数据的可视化,可以结合在一个单一的可视化完全独立的数据源

dev tools开发工具:使用户可以方便的通过浏览器直接与es进行交互,发送restful请求进行增删查改

management 管理

猜你喜欢

转载自blog.csdn.net/ifenggege/article/details/86103682
今日推荐