大家好,欢迎来到IT知识分享网。
**
ELK安装管理之win版本
**
(一)Elasticsearch+Logstash +Kibana 简称elk,下面将是各个安装过程
(二) 安装ELK
1.安装elasticsearch
1.https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-windows-x86_64.zip
下载文件进行解压,版本号可以进行更改 尽量适配版本
2.解压好之后 至今在bin目录下cmd 也可自行切换命令输入elasticsearch.bat
2.安装 kibana
1.https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-windows-x86_64.zip
下载后解压文件,依然版本号可更改适配es版本号
2.解压好之后 至今在bin目录下cmd 也可自行切换命令输入kibana.bat
3.http://127.0.0.1:5601/ 运行好去浏览器输入会进入这个页面
4.在dev tool测试es是否成功开启
3.安装Logstash
1.https://www.elastic.co/fr/downloads/logstash 去上面下载 选择自己所需要的版本
2.解压之后在bin目录下面新建个文件logstash.conf
3.文件里面放入
input{
stdin{
}
}
output{
stdout{
}
}
4.cmd切换到bin目录下 运行logstash –f logstash.conf 也就是刚才创建的conf
5.运行成功之后的截图是这个样子
6.在127.0.0.1:9600 会得到
7.注意一下 conf要另存为所有文件格式并且编码是ANSI值,此外安装路径不允许存在任何中文 否则会报编码错误
4.目前是一个简单的elk框架算是安装完毕,下一步就要用logstash连接数据库进行自动抽取
(三)配置logstash.conf 对接数据库
1.创建一个sql的文件夹 里面主要存放的是你的sql文件
2.比如说你的sql文件是all_data.sql 我们接下来就要conf指定这份文件
3.在config文件夹下面创建文件all_data.conf 在里面配数据库数据
这是个完整的例子
# logstash同步数据到ES中的启动方式:cd到logstash的bin目录,logstash.bat -f #该配置文件所在的路径#
input{
jdbc{
# 数据库驱动包存放路径
jdbc_driver_library => "D:\es\logstash-7.10.2\logstash-7.10.2\lib\mysql-connector-java-8.0.18.jar"
# 数据库驱动器;踩过的坑:驱动器前面少了Java:: 导致启动成功后执行报错
jdbc_driver_class => "Java::com.mysql.cj.jdbc.Driver"
# 数据库连接方式
jdbc_connection_string => "jdbc:mysql://182.92.157.122:3306/elasticsearch?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"
# 数据库用户名
jdbc_user => "root"
# 数据库密码
jdbc_password => "123456"
# 数据库重连尝试次数
connection_retry_attempts => "3"
# 判断数据库连接是否可用,默认false不开启
jdbc_validate_connection => "true"
# 数据库连接可用校验超时时间,默认3600s
jdbc_validation_timeout => "3600"
# 开启分页查询(默认false不开启)
jdbc_paging_enabled => "true"
# 单次分页查询条数(默认100000,若字段较多且更新频率较高 建议调低此值)
jdbc_page_size => "500"
# statement为查询数据sql,如果sql较复杂,建议通过statement_filepath配置sql文件的存放路径 我这边选择的是filepath
statement_filepath => "D:\es\logstash-7.10.2\logstash-7.10.2\sql\all_data.sql"
# sql_last_value为内置的变量,存放上次查询结果中最后一条数据tracking_column的值,此处即为rowid
# statement => "SELECT * FROM nba_player where id > :sql_last_value"
# 是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false);
lowercase_column_names => false
# 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件
record_last_run => true
# 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值
use_column_value => true
# 查询结果用于增量同步数据的字段数据类型,仅包括numeric和timestamp,默认为numeric,如果表内有时间的话 尽量用时间字段
tracking_column_type => numeric
# 需要记录的字段,用于增量同步,需是数据库字段
tracking_column => "id"
# 记录上次执行结果数据的存放位置
last_run_metadata_path => "D:\es\logstash-7.10.2\logstash-7.10.2\logs\all_data.log"
# 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false
clean_run => false
# 同步频率(分 时 天 月 年),默认每分钟同步一次
schedule => "* * * * *"
# ES索引的type
type => "nba"
}
# 如果同步多个表,可以在复制一个jdbc{}块,修改相应的地方即可
}
output{
if [type] == "nba" {
elasticsearch{
hosts => "127.0.0.1:9200"
index => "all_data"
document_id => "%{id}"
}
}
}
4.如果发生编码问题 看错误 报那种编码错误 就修改文件成那种编码
5.下面是需要重点注意的值
6.jdbc每次只能指定一份sql文件 不可多个指定 所以如果是多个的话就直接复制一份 例如这样
重新编写一份就可,注意type 新的日志地址新的sql地址
7.然后直接logstash –f [conf地址] 就可以 例如logstash -f D:\es\logstash-7.10.2\logstash-7.10.2\config\all_data_nba.conf
8.运行成功了之后是这个样子
注意:运行中遇到编码问题 UTF-8 或者ASNI 等 将有编码问题的文件修改为相应的编码即可,还有logstash在7.0的版本就已经开始移除了type类型 一个索引一个类型默认_doc 如果要一个索引下面多个类型尽量用6.0版本一下的,如果是6.0版本请设置include_type_name=true ,8.0的版本已经完全移除了type 升级需谨慎
(四)在Kibana查看刚才的数据
1.进入网站127.0.0.1:5601
2.在菜单栏选项找到
点进去之后选择
这里可以看到你所有的索引数据
索引名称是你刚才在conf中指定的名称,看索引是否存在如果不存在请排查故障
3.之后点击
选择
页面上是我已经创建好的不用在意,点击之后
在index-name中输入你的索引名称进入下一步,如果搜不到索引,说明数据conf文件没有运行成功,进入之后
选择Time field ,按需选择,创建成功之后会有这个界面
代表创建成功,然后选择看板
进入之后选择自己的索引,不同版本的kibana界面不一样,但是选项都是通用的,上面会显示你索引中的数据
4.Kibana中的dev tool功能
下面介绍一些比较简单的命令,因为我本地的是最新的版本所以7.0默认_doc ,6.0一下的版本直接把_doc更换为自己在conf中指定的type便可
1.获取所有数据
GET /all_data/_doc/_search
2.轻量级搜索
GET /all_data/_doc/_search?q=teamName:"骑士"&&q=displayName:"马修 德拉维多瓦",将查询数值赋值给q= 多个查询条件直接加&&,q是query的简写
3.条件查询
GET /all_data/_doc/_search
{
"query":{
"match":{
"displayName":"科迪 马丁"
}
}
}
4.更复杂的条件查询
上图的意思是 查询条件为displayName&&playYear 这是must里面的条件
而should里面的条件则是||
(五)配置管道ingest-attachment 用于读取文件
1.切换到es bin 目录下面打开cmd 然后输入
elasticsearch-plugin install ingest-attachment
2.会自动安装 安装好重启es
3.在console上面创建相应的索引
PUT /_ingest/pipeline/attachment?pretty
{
“description”: “Extract attachment information”,
“processors”: [
{
“attachment”: {
“field”: “data”
}
}
]
}
这是官方创建管道的方法
4.载入数据和查看数据
关于管道的整体流程是将附件转成base64的编码,后使用管道 直接将附件的base64编码放入es 即可,由于我们使用的管道,所以 ingest-attachment 会自动从你添加的base64的编码中提取文本放入 attament.content 中。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15717.html