elasticsearch:7.7.0

需要使用jdk环境

拉去docker镜像

docker pull elasticsearch:7.7.0

运行
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0

在谷歌中访问http://localhost:9200   出现以下运行成功

二,下载kibana

注意:版本必须和elasticsearch的版本一致

https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-windows-x86_64.zip

运行bin目录下的kibana.bat,启动Kibana的用户界面,访问 http://localhost:5601 

三,安装logstash

必须和elasticsearch版本一直

3.1通过百度云下载

链接:https://mirrors.huaweicloud.com/logstash/?C=N&O=D

3.2 下载之后进入bin目录运行

logstash -e "input { stdin { } } output { stdout {} }"


 

 运行报错

could not find java; set JAVA_HOME or ensure java is in PATH

配置JAVA_HOME  

我的:

正确的

 3.3  然后在logstash中新建一个mysql文件夹(注意不是在bin目录下) 然后执行 logstash -e "input { stdin { } } output { stdout {} }" 依然报错

[ERROR] 2022-03-14 19:41:36.950 [main] Logstash - java.lang.IllegalStateExce

这个是因为我的在中文目录下,所以给他换一个没有中文目录就解决拉

四,安装logstash-input-jdbc插件

cmd命令在bin目录下执行

这里先声明一下:

对于logstash2.x版本是没有集成logstash-jdbc-input插件的需要我们自己去安装,如果你是2.x版本可以参考:http://blog.csdn.net/yeyuma/article/details/50240595 这位老铁的文章;

对于logstash5.x版本他自身已经集成了这个插件,不需要我们去单独安装,直接使用即可,我这里说一下与mysql进行同步的简单配置

logstash-plugin install logstash-input-jdbc

出来以下就说明安装成功
Validating logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful

安装插件,成功后会有提示信息

五,新建目录存放配置文件和mysql驱动jar包

 jdbc.conf配置   增量


input {
  stdin {
  }
  jdbc {
  # mysql jdbc connection string to our backup databse  后面的test对应mysql中的test数据库
  jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/p11_tubatu_pingtai?useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC&useSSL=false"   # 可修改
  # the user we wish to excute our statement as
  jdbc_user => "root"  # 自己的用户名
  jdbc_password => "123" # 自己的密码
  # the path to our downloaded jdbc driver
  jdbc_driver_library => "F:/es/logstash-7.7.0/mysql/mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar"   # 自己的jar数据库程序位置
  # the name of the driver class for mysql
  jdbc_driver_class => "com.mysql.jdbc.Driver"
  jdbc_paging_enabled => "true"
  jdbc_page_size => "500"
#以下对应着要执行的sql的绝对路径。
        statement => "SELECT * FROM `article` "  # 加入的sql语句  也可以文件加入
 #  statement_filepath => "F:/es/logstash-7.7.0/mysql/all_mysql.sql"
#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)
# 两秒执行一次
          schedule => "*/2 * * * * *"
#设定ES索引类型
  type => "cc_type"
  }
}

filter {
  json {
  source => "message"
  remove_field => ["message"]
  }
}

output {
  elasticsearch {
#ESIP地址与端口
  hosts => "127.0.0.1:9200"
#ES索引名称(自己定义的)
  index => "cc_article"
#自增ID编号
  document_id => "%{id}"
  }
  stdout {
#以JSON格式输出
  codec => json_lines
  }
}

全量配置

# 读取数据源
input {
 stdin { }
    jdbc {
		# 数据连接地址(你要连接哪个数据库)
        jdbc_connection_string => "jdbc:mysql://localhost:3306/springcloud"
		# 自己数据库用户名
        jdbc_user => "root"
		# 自己数据库密码
        jdbc_password => "root"
		# 驱动位置(自己电脑驱动的位置)
        jdbc_driver_library => "D:\install\develop\ELK\logstash-7.6.2\logstash-7.6.2\bin\mysql-connector-java-5.1.29.jar"
		# 驱动名称
        jdbc_driver_class => "com.mysql.jdbc.Driver"
		
        jdbc_paging_enabled => "true"

        jdbc_page_size => "50000"
		
		# 设置执行SQL
		use_column_value => false
		# 设置时区
		jdbc_default_timezone =>"Asia/Shanghai"
		#查询的数据库表
        statement => "SELECT * FROM `userkibana` "
		
		# 设置监听间隔 各字段含义(从左至右)分、时、天、月、年,全为*默认含义为每分钟都更新
        schedule => "* * * * *"
    }
 }

 output {
     stdout {
        codec => json_lines
    }
    elasticsearch {
		# ES位置
        hosts => "localhost:9200"
		# 索引名称
        index => "user1"
		# 文档类型
        document_type => "_doc"
		# 文档ID(指你数据库表中的id,如果没有就不用写)
        document_id => "%{id}"
    }
}

cmd在bin目录下执行

logstash -f ../mysql/jdbc.conf

注意:如果运行报错 删除 F:\es\logstash-6.4.3\data\.lock再次运行即可

报错
F:\es\logstash-6.4.3\bin>logstash -e "input { stdin { } } output { stdout {} }"
Sending Logstash logs to F:/es/logstash-6.4.3/logs which is now configured via log4j2.properties
[2022-03-15T14:33:03,940][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2022-03-15T14:33:04,011][FATAL][logstash.runner          ] Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting.
[2022-03-15T14:33:04,032][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

解决 :
将data下的.lock文件删除
# 在kibana中输入进行查询
GET _search
{
  "query": {
    "match": {
      "_index":"cc_index"   # 自己的索引
    }
  }
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值