文章目录
ELK
ELK介绍
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch
lasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash
是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana
一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志
安装
尝试了 几个版本的安装方式都是差不多的。
本人服务器不行,故以windows安装了。。。
https://www.elastic.co/downloads 官网
下载安装的elk一定要是相同版本的。
JDK
yum install -y java-1.8.0-openjdk --安装jdk (会自动安装jdk相关的配置)
软件包
将下载的elk上传到服务器
Elasticsearch
cd /usr/local/tools
tar zxf elasticsearch-6.5.0.tar.gz --解压elasticsearch
mv elasticsearch-5.4.1 /usr/local/elasticsearch --将elasticsearch重命名移动到其它目录
cd /usr/local/elasticsearch/config/
配置elasticsearch
编辑elasticsearch.yml
正常配置 服务器更改ip以及data&logs 路径
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-3"] --参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群
path.data: D:/search7.12.0/elasticsearch-7.12.0/data --数据存储路径
path.logs: D:/search7.12.0/elasticsearch-7.12.0/logs --日志存储路径
bootstrap.memory_lock: false --为true锁定内存地址&false不锁定
bootstrap.system_call_filter: false
node.name: node-3 --节点名
node.master: true --是否为主节点
network.host: 127.0.0.1 --ip
http.cors.enabled: true --是否支持跨域,默认为false不支持
http.cors.allow-origin: "*" --当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址
可选配置
http.cors.allow-methods --允许跨域的请求方式,默认OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers --跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials --是否返回设置的跨域Access-Control-Allow-Credentials头,如果设置为true,那么会返回给客户端。
配置完成之后启动elasticsearch
启动elasticsearch
windows启动
windows点击bin目录下的
linux启动
./bin/elasticsearch & --启动es
启动成功之后访问
logstash
linux再将lonstash解压到对应目录下之后
解压
tar –zxvf logstash-7.12.0.tar.gz
配置logstash
在bin新建一个.conf文件,输入以下配置信息
input {
jdbc {
# 数据库
jdbc_connection_string => "jdbc:mysql://59.110.240.77:3306/infomation"
jdbc_user => "fetter"
jdbc_password => "fetter"
# mysql驱动解压的位置
jdbc_driver_library => "E:/Download/mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"
# mysql驱动类
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#可以使用sql文件的方式
#statement_filepath => ""
#要同步的表
statement => "select id,username,password,dev_mac from user"
schedule => "* * * * *"
#索引type
type => "tag"
#索引设置时区
jdbc_default_timezone => "Asia/Shanghai"
}
}
output {
elasticsearch {
hosts => "http://127.0.0.1:9200"
#索引名称
index => "myindex"
document_id => "%{id}"
#输出的索引type此处表示上面的tag
"document_type" => "%{type}"
}
stdout {
codec => json_lines
}
}
下面的输出会将对应的日志输出到对应ip的es之上。
启动logstash
windows启动
windows下cmd执行bin目录之下创建.conf文件启动
linux启动
./bin/logstash -f bin/pg.conf & --加& 表示离线运行
nohup ./bin/logstash -f bin/pg.conf & --加nohup表示扔到后台运行
启动成功之后查看logstash
http://localhost:9100
Kibana
linux 解压kibana
这里的配置不用修改,直接默认启动。
windows启动
windows直接点击bin目录之下的kibana.bat
linux启动
进入kibana bin文件中执行
./bin/kibana & --&表示kibana后台运行
运行kibana
访问默认的5601端口,上面能看到采集到的日志
http://localhost:5601