Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful风格接口,多数据源,自动搜索负载等。
Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。
kibana 也是一个开源和免费的工具,他 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志
elk安装步骤:
获取软件:
https://www.elastic.co/
下载三个包:
logstash
Elasticsearch
Kibana
我的安装环境:
Elasticsearch:192.168.1.220 192.168.1.221 做一个集群
logstash:192.168.1.199 192.168.1.188 运行nginx
Kibana:192.168.1.188
1.安装jdk环境1.8
yum remove java-1.7.0
yum install java-1.8.0-openjdk.x86_64
然后安装:
注意可以分开安装,也可以合并一起安装。
你需要在那台机器上面收集日志就在那台机器上面安装Logstash,然后配置conf文件将日志传到Elasticsearch的机器。Kibana可以单独安装,只要url指向Elasticsearch的9200端口就ok。
Elasticsearch:
mkdir -pv /path/to/{data,logs}
rpm -ivh elasticsearch-2.3.4.rpm
注意安装扩展的时候有问题:
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
这个会报安全错误,不能安装,可以自己在网页运行如下命令,然后手动安装:
https://github.com/lmenezes/elasticsearch-kopf/archive/master.zip
/usr/share/elasticsearch/bin/plugin install file:/etc/elasticsearch/elasticsearch-kopf-master.zip
elasticsearch-head的扩展相似即可。
/usr/share/elasticsearch/bin/plugin install file:/etc/elasticsearch/elasticsearch-head-master.zip
Logstash:
rpm -ivh logstash-2.3.4-1.noarch.rpm
Kibana:
rpm -ivh kibana-4.5.3-1.x86_64.rpm
配置:
Elasticsearch集群配置:
/etc/elasticsearch/elasticsearch.yml:
cluster.name: elk1 ##集群名称,必须相同
node.name: foreman4.com##节点名称,随意取但是要与其他节点不同
path.data: /path/to/data ###Elasticsearch存放日志数据的目录,需要创建
path.logs: /path/to/logs###Elasticsearch存放日志的目录
bootstrap.mlockall: true
network.host: 120.24.76.62 ##绑定的ip地址
http.port: 9200 ##端口
discovery.zen.ping.unicast.hosts: ["120.24.76.62", "182.140.196.149"]##指明集群中的节点
注意:
####另外一台除了network.host很node.name那么不一样,其余都一样
Logstash配置:
/etc/init.d/logstash 配置为root运行
LS_USER=root
#LS_GROUP=logstash
LS_GROUP=root
配置抓取nginx的日志:
cat /etc/logstash/conf.d/nginx.conf
input {
file {
type => "accesslog"
path => "/opt/web/6l_duobao_develop/accessadmin.log" #日志的位置
start_position => "beginning" #日志收集文件,默认end
}
}
output {
if [type] == "accesslog" {
elasticsearch {
hosts => ["120.24.76.62"] ###elasticearch的地址
index => "admin-access-%{+YYYY.MM.dd}" #生成的索引和刚才的test一样会在那里生成后面的是日期变量。
}
}
}
##
重启logstash,然后就可以在设置的Elasticsearch设置的目录中查看是否有admin-access-xxx文件生成。
配置kibana:
server.port: 5601
elasticsearch.url: "http://elasticsearch的地址:9200" ##指向elasticsearch的地址
然后启动kibana,就可以使用http://ip:5601访问,配置一下就OK
基本配置参考:
http://shaonian.blog.51cto.com/2975261/1795389
本文转自 674591788 51CTO博客,原文链接:http://blog.51cto.com/mrdeng/1831846