ES (ElasticSearch) 简易解读(三)企业级日志分析ELK架构的搭建与使用

elasticsearch Logstash Kibana简称elk

架构

在这里插入图片描述

工作机制

  • 在需要收集日志的应用上安装filebeat
  • 启动filebeat后,会收集该应用的日志推送给redis,
  • 然后logstash从redis中收集日志推送到Elasticsearch

Logstash

主要是用来日志的搜集、分析、过滤日志的工具

# 下载 https://www.elastic.co/cn/downloads/logstash
# 注意logstash的版本需要与elasticsearch的版本保持一致
# 安装完成后解压logstash,即可安装成功
tar -zxvf logstash...
# 在logstash目录创建一个文件夹,用来存放同步数据需要用到的东西
mkdir sync

官网下载 http://www.elastic.co/cn/products/logstash


在这里插入图片描述

与数据库的同步需要使用连接jar包
下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
选择与数据库版本一致的jar包上传到sync文件夹


修改配置文件

配置文件文件作用
jdbc.conflogstash启动时加载的文件
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
		i.id as itemId,
		i.item_name as itemName,
		i.sell_counts as sellCounts
		i.updated_time as updated_time
FROM
		items i
WHERE
		ii.is_main = 1
		-- 以上的查询条件都不重要,只要保证数据库中的更新时间这一列与配置文件中的名字保持一致就行
		-- AND条件之后内容代表es同步数据的条件 
		-- sql_last_value是logstash中的关键字
AND
		i.updated_time >= :sql_last_value

配置完成后,启动logstash同步查询

# 使用logstash中bin目录下的命令,指明配置文件进行启动即可
../bin/logstash -f logstash-db-sync.conf

参考 Logstash 安装与使用 (https://blog.csdn.net/HueyLong/article/details/119842817)

  • 后台启动logstash
 nohup ./logstash -f XXXX.conf &

Kibana

是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面

Elasticsearch是集群,只需某台Elasticsearc安装一个Kibana,
需要安装一个head插件。,提供给运维查看数据状态
  • 安装
# 准备安装包
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
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全面解读

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值