ELK初探

760 阅读3分钟

需求背景:

业务发展越来越大,服务器越来越多,各种访问日志,应用日志,错误日志也越来越多,开发人员排查问题,需要上服务器查,不方便,运营人员需要一些数据,也需要运维人员上服务器分子日志。

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等。

Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。

kibana 也是一个开源和免费的工具,他 Kibana 可以为 Logstash 和 Elastic Search 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。


一、准备工作

三台服务器环境:

192.168.153.13 (主节点)cnetos7

192.168.153.14 (数据节点)centos7

192.168.153.15 (数据节点)centos7

角色划分:

3台全部安装elasticsearch

主节点上安装kibana

其中一个(192.168.153.15 )数据节点上安装logstash

二、部署工作:

1、三台机器上都安装jdk

yum install -y java-1.8.0-openjdk

2、安装elasticsearch

下载6.3版本的

在一台机器上执行

wget artifacts.elastic.co/downloads/e…

用scp同步到另外两台机器上

然后分别在三台机器上执行:

rpm -ivh elasticsearch-6.3.0.rpm

3、配置es

在主节点上配置如下信息:

vim /etc/elasticsearch/elasticsearch.yml

cluster.name: test

node.name: test-01

node.master: true

node.data: false

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 192.168.153.13

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.153.13","192.168.153.14", "192.168.153.15"]

配置完保存,分别拷贝到其他两个节点上

在一个从节点:

vim /etc/elasticsearch/elasticsearch.yml #修改以下4行数据

node.name: test-14

node.master: false

node.data: true

network.host: 192.168.153.14

在另一个从节点也是同样的修改(注意ip和node.name不一样)

4、启动es

顺序:主,从,从

systemctl start elasticsearch

#curl '192.168.153.13:9200/_cluster/health?pretty'

查看集群节点有没有问题


5、安装kibana(主机器上)

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-x86_64.rpm

rpm -ivh kibana-6.3.0-x86_64.rpm

vim /etc/kibana/kibana.yml #配置kibana

server.port: 5601

server.host: 192.168.153.13

elasticsearch.url: "http://192.168.153.13:9200"

启动:

systemctl start kibana

查看进程,端口,检查服务是否启动起来

浏览器访问:192.168.153.13:5601,可以访问到说明成功了

6、安装logstash

在192.168.153.15机器上安装

wget artifacts.elastic.co/downloads/l…

rpm -ivh logstash-6.3.0.rpm

配置logstash

vim /etc/logstash/conf.d/syslog.conf #以收集系统日志为例

input{

syslog{

type => "syslog-syslog"

port => 10514

}

}

output{

stdout{

codec => rubydebug

}

}

检查配置文件是否有错:

cd /usr/share/logstash/bin

./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te

st_and_exit

显示Configuration OK,说明可以启动了

注:启动之前要做一件事,检查10514端口是否打开,没有打开,那么配置一下

vim /etc/rsyslog.conf

在#### RULES #### 下面添加一行

*.*@@192.168.153.15:10514

启动:

./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf

注:此处一个小实验

执行了./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf ,终端页面不会退出,在新打开一个终端页面,执行systemctl restart rsyslog,然后反过去看之前的终端页面,会出现日志信息(图略)

三、配置logstash收集信息展示在kibana上

1、配置并启动logstash

vim /etc/logstash/conf.d/syslog.conf

input{

syslog{

type => "syslog-syslog"

port => 10514

}

}

output{

elasticsearch{

hosts => ["192.168.153.13:9200"]

index => "system-syslog-%{+YYYY.MM}"

}

}

检查配置:

/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te

st_and_exit

为对logstash的日志和数据目录授权:

chown -R logstash /var/lib/logstash/

chown -R logstash /log/lib/logstash/

启动:

systemctl restart logstash

稍等查看端口9600是否启动起来

2、kibana上看日志

配置logstash监听192.168.153.15这个ip

vim /etc/logstash/logstash.yml

http.host: "192.168.153.15"

systemctl restart logstash

web页面打开kibana并配置索引;

索引可以执行:curl '192.168.153.13:9200/_cat/indices?v' 来获取


然后下一步,create;

回到首页discover,可以看到


3、实验:

终端窗口关闭192.168.153.15这个页面,再重新连接,会看到/var/log/messages下会生成新的日志;

刷新kibana页面,可以看到新生成的日志