参考文章:
https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/
http://blog.csdn.net/K_Zombie/article/details/51103745
公司之前一直用splunk(破解?),同事提出了搞搞ELK玩的想法,还能顺便写在简历里,对于我这个即将告别运维的人来说,闲着也是闲着,在41℃的天为大家发发光、散散热也不失一项善举-。- 。
整个过程比较简单,把其中遇到的一些坑列一下,以供参考。
网上找到的文档中采用下载tar包方式,比较通用,但是安装会有很多问题(比如找不到用户,权限不对),不过在此推荐centos7的yum直接安装方式,官网有Ubuntu的apt方式也比较简洁。
系统:centos 7 (3.10.0-514.6.2.el7.x86_64)
Java版本: jdk1.8.0_131
注意:本文环境为ELK全部在一台服务器上运行,配置文件仅做了简单的修改,如果要将三个程序分开部署,需要更改配置文件相关配置
官方安装文档
https://www.elastic.co/guide/index.html
kibana源
https://www.elastic.co/guide/en/kibana/current/rpm.html
elasticsearch源
https://www.elastic.co/guide/en/elasticsearch/reference/5.5/rpm.html
logstash源
https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
软件安装方法
打开上面三个源的链接,里面有详细的安装方法,这里只介绍kibana的作为例子
安装kibana:
导入rpm-key
rpm --import[https://artifacts.elastic.co/GPG-KEY-elasticsearch](https://artifacts.elastic.co/GPG-KEY-elasticsearch)
key导入后新建yum源文件
在/etc/yum.repo.d/目录中新建一个.repo结尾的文件
写入如下内容
[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
安装
yum install kibana -y
(elasticsearch和logstash安装方法同理,在此不再赘述,需要注意的是,logstash安装前要先配置好Java环境,不然安装后会报错)
软件安装好后,为了能够访问,先简单更改一下配置文件。
elasticsearch:
vim /etc/elasticsearch/elasticsearch.yml
设置network.host: 为"0.0.0.0"或者本机IP
kibana:
vim /etc/kibana/kibana.yml
设置server.host: 为"0.0.0.0"或者本机IP
Logstash:
vim /etc/logstash/logstash.yml
设置http.host: 为"0.0.0.0"或者本机IP
安装后启动ELK(注意按elasticsearch logstash kibana顺序启动)
启动elsaticsearch:
Systemctl start elasticsearch
访问 ip:9200即可
启动logstash:
Systemctl start logstash
网上的验证方法是用logstash工具,但是yum安装后并没有此工具,只能看日志有没有报错信息。没有就算成功了
启动kibana:
Systemctl start kibana
访问 ip:5601即可
kibana启动后需要配置索引,按照默认配置创建一下就好了,如果kibana是先启动的,配置logstash-*的索引会提示找不到,重启或者logstash正常后等一会就好了。
接下来简单的测试一下索引日志的功能
在logstash文件夹下新建配置文件:
vim /etc/logstash/conf.d/logstash_start.conf
内容如下
input {
file {
path => "/var/log/messages"
start_position => "beginning"
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
}
意思就是将/var/log/messages文件作为输入,然后输出到9200端口的elasticsearch程序中。
编辑后保存,重启logstash
Systemctl restat logstash
打开kibana,就可以看见结果了