部署ELK平台,构建分布式日志存储处理分析架构

ELK平台是由elasticsearch,logstash,kibana三大组件构成。其中elasticsearch对日志进行分布式存储,logstash负责对日志的收集,处理,分析。kibana负责提供可视化。ELK可以快速,有效的对日志进行收集处理分析,并且提供了较高的可靠性。所以是很不错的一个选择。

一、环境准备

1、准备elasticsearch分布式存储的集群架构,准备5台服务器,主机名se1-se5,IP地址范围:192.168.1.61-192.168.1.65

2、准备一台服务器作为kibana主机,主机名为kibana,ip为192.168.1.66

3、准备一台服务器作为logstash主机,主机名为logstash,ip为192.168.1.67

4、搭建好NTP时间同步服务器,ELK平台所有主机进行时间同步。配置统一的YUM源,ELK所有主机配置完整的hosts文件,以se1为管理节点,配置ssh秘钥,分发给ELK平台其他主机。

二、se1安装elasticsearch,配置elasticsearch,启动之

ELK非光盘安装包有:

其中rpm包为三大组件的安装包,zip包为插件安装包

1、se1安装elasticsearch(ELK平台依赖JAVA的环境,所有机器安装JAVA的JDK)

yum -y install java-1.8.0-openjdk.x86_64

yum -y install elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

配置就这么几行,打开注释,然后补充正确信息。这里的含义是定义集群名称,节点名称,监听网络,集群包含的集群若干个

2、启动se1中的elasticsearch,然后再安装其他存储节点的elasticsearch。再同步se1的配置过去,修改节点名称,再启服务

尝试访问一下,看看服务是否正常

服务正常。给其他存储节点安装elasticsearch,修改配置启服务

启动服务后,其他节点会自动加入集群里面,而且因为se1是第一个启动的,所以他会是管理节点。

查看集群信息

三、认识curl的强大作用,-X 为设置请求方法,常见的PUT-增,DELETE-删,POST-改,GET-查

1、查看elasticsearch集群的节点信息

2、查看集群健康状态

四、ELK常用的三个插件,分别是bigdesk,kopf,head

1、安装插件(插件在那个节点安装了,就只能在那个节点使用。我们安装在se1)

elasticsearch的插件脚本,在这里。

/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/elk/bigdesk-master.zip
/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/elk/elasticsearch-kopf-master.zip

/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/elk/elasticsearch-head-master.zip

查看已安装的插件

2、进行访问

例如head插件,可以让我们很轻松的可以创建索引,分片,副本数都可以方便设置。也可以查询到插入的相关数据。

五、elasticsearch增删改查数据

1、我们使用head插件创建一个名为httpd的索引,分片数为5,副本数为1

2、往索引里面新增数据,我们可以这样理解,这里的索引相当于数据库里面的库,库里面还需要表格,表格里面插入记录

往数据库httpd里面的表格mingren里面插入数据记录1,插入内容是职业:诗人,名字:礼拜,称号:诗仙,年代:唐朝

3、我们用head插件查看一下数据

数据已经存在了。我们用curl查看一下

查询成功

4、删除数据

curl -X DELETE "http://192.168.1.61:9200/httpd/mingren/1"

5、删除索引

curl -X DELETE "http://192.168.1.61:9200/httpd

六、安装kibana

yum -y install kibana

rpm -qc kibana                 ##查询kibana安装的默认路径

打开注释,然后填写正确配置。服务端口,监听地址,elasticsearch地址,kibana创建的索引,kibana打开的首页,ping超时时间,请求超时时间,启动超时时间。

systemctl restart kibana

systemctl enable kibana

服务起来了。

访问一下

七、批量导入离线数据,并且进行查询数据

批量导入离线数据,数据必须是json格式的,使用curl的POST的方式上传,上传的方式是_bulk,url的编码我们使用的是data-binary

例如我现在有3个压缩包。都是日志来的

解压

上传数据

curl -X POST "http://192.168.1.61:9200/xixi/haha/_bulk"  --data-binary @accounts.json

curl -X POST "http://192.168.1.61:9200/xixi/haha/_bulk"  --data-binary @shakespeare.json

curl -X POST "http://192.168.1.61:9200/xixi/haha/_bulk"  --data-binary @logs.jsonl

查看数据

Firefox http://192.168.1.61:9200/_plugin/head

数据导入成功

八、分析离线数据

打开kibana的主页

刚刚导入到elasticsearch的数据有这个索引,现在我们把这个索引的数据导入kibana

导入成功后,选择discover

选择正确的数据时间

自己做数据统计

然后保存等操作,就不一一介绍了。都是点图标的操作

九、安装logstash,负责日志的收集,处理分析。另外配置一台apache的web服务器作为配合

yum -y install logstash

logstash没有配置文件,我们需要自己写一个

分步骤写出来

touch /etc/logstash/logstash.conf

测试一下这个配置文件

测试OK,这里的含义是,logstash从标准输入,经过filter处理(没配置,等于没处理),然后再进行标准输出。

新增输入格式为json格式,输出格式为rubydebug格式

测试一下效果

https://github.com/logstash-plugins    官方文档,写配置的时候,可以参考写

新增配置参数,可以这里理解,数据来源文件,路经为xxxxxx,数据读取的记录文件路径为xxxxx,数据读取的方式为,自定义数据处理的类型为

我们测试一下,启动logstash测试,然后从另外一个终端,对这2个路径出入内容后,看看情况

追加内容进去刚刚定义的2个文件的路径

看看logstash的数据收集结果

数据收集正常

设置数据来源于TCP和UDP。我们查看官网可以得知,仅仅需要定义监控的主机,端口,type就可以了

我们测试一下

另外一个终端,查看一下8888和9999端口是否开启

TCP端口接收数据正常

UDP端口接收数据正常

监控系统日志内容。

查看514端口是否开启

被监控的主机,例如se1,把info的日志,发送给logstash收集。

[root@se1 ~]# vim /etc/rsyslog.conf 

systemctl restart rsyslog

logger -p local0.info -t “哈哈哈哈哈” “嘻嘻嘻嘻嘻嘻”

在logstash这边就可以接收得到了

在logstash配置文件里面,我们可以根据官网给出的文档进行参考编写配置文件,可以定义好数据源的信息,例如来源于文件?TCP?UDP?等等。编写好type,就可以区分出信息的来源了。

基本上input里面的编写规则就是如此。

接下来是filter里面的编写规则了。

grok插件,使用正则匹配,处理非结构化的日志的时候,无往不利。随便编写困难。但实用性非常广

这里的这个参数是这样来的    find / -name grok-*

这里我们是可以使用正则匹配来做自定义的数据分析的。但篇幅有限。就不做了。

这个参数是标准的apache的web日志收集参数。启动后得到的结果是这样的

会自动把日志拆分,分析。让你一目了然。

十、Web服务器安装filebeat,搭配logstash。实时把日志存储到elasticsearch里面

上面提到我是用se1安装了web服务的。那么就用这个来测试,在se1安装filebeat

1、安装filebeat

yum -y install filebeat

vim /etc/filebeat/filebeat.yml

paths:

- /var/log/httpd/access_log

document_type: log

#elasticsearch:

# hosts: ["localhost:9200"]

logstash:

hosts: ["192.168.1.67:5044"]

systemctl resatrt filebeat

systemctl enable filebeat

2、对192.168.1.61进行访问。

3、查看到elasticsearch里面会创建了apachelog的索引,并且数据在增加

4、登录kibana,对apachelog进行日志分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值