ELK 简介
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
ELK下载
下载地址:https://www.elastic.co/downloads/
下载Elasticsearch、Logstash、Kibana三个对应的安装包文件
安装前提
安装JDK8环境;
设置内核参数
/etc/sysctl.conf
#增加以下参数
vm.max_map_count=655360
#执行以下命令,确保生效配置生效:
/sbin/sysctl –p
设置资源参数
/etc/security/limits.conf
#修改
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
设置elk用户参数
/etc/security/limits.d/20-nproc.conf
#增加(注意elk为后文创建的用户)
elk soft nproc 65536
创建ELK相关文件夹
mkdir /usr/local/elk #elk系统位置
mkdir /usr/local/elk/es # es日志及数据存放文件夹
创建elasticsearch执行用户及权限
groupadd elk #创建elk用户组
useradd elk -g elk -p 密码
更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch:
chown -R elk:elk /usr/local/elk # "/usr/local/elk"为elk等的安装及日志、数据文件存放位置
安装Elasticsearch
解压elasticsearch
cd /usr/local/elk
tar -zxvf elasticsearch-6.1.1.tar.gz
mv elasticsearch-6.1.1 elasticsearch
修改配置文件
vim elasticsearch/config/elasticsearch.yml
#这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name:es_dev
#数据目录
path.data:/usr/local/elk/es/data
# log目录
path.logs:/usr/local/elk/es/logs
# 节点名称
node.name: es-node1
#修改一下ES的监听地址,这样别的机器也可以访问
network.host:0.0.0.0
#默认的端口号
http.port:9200
进入elasticsearch的bin目录,使用./bin/elasticsearch -d命令启动elasticsearch。
使用
ps -ef|grep elasticsearch
查看进程
使用
curl -X GET http://localhost:9200
安装Logstash
下载及解压
cd到安装目录:cd /usr/local/elk
tar -zxvf logstash-6.1.1.tar.gz
在logstash的config目录创建logstash.conf文件
内容(备注:elasticsearch 集成es)
input{
stdin { }
}
output {
elasticsearch {
hosts => "192.168.102.139:9200"
index => "logstash-test"
}
stdout {
codec => rubydebug {}
}
}
启动logstash
进入logstash安装目录
执行命令:./bin/logstash -f config/logstash.conf
后台启动:nohup ./bin/logstash -f config/logstash.conf &
安装kibana
解压包文件
tar -zxvf kibana-6.1.1-linux-x86_64.tar.gz
配置文件
vmi config/kibana.yml
配置内容:
server.port:5601
server.host:192.168.102.139 #kibana服务器地址
elasticsearch.url: "http://192.168.102.139:2700" #elasticsearch服务器地址
启动kibana
./bin/kibana
后台启动方式
nohup ./bin/kibana &
Redis集成
redis作为输入端
编辑logstash的logstash.conf文件,输入端修改为redis
配置内容
input {
redis {
data_type => "list"
type => "redis-input"
key => "logstash:redis"
host => "192.168.102.140"
port => 6379
threads => 5
codec => "json"
}
}
output {
elasticsearch {
hosts => "192.168.102.139:9200"
index => "logstash-test"
}
stdout {
codec => rubydebug {}
}
}
重新启动logstash,有redis注册信息日志说明成功:可以查看logstash中的日志文件