大数据的体现(Elk分析数据)
大数据
Elk是一个数据分析技术栈,在我们的信息时代最重要的就是信息,通过对信息的分析,我们可以了解到一切我们想了解的事情。
elk分析日志只是其中一个很小的功能,它更多的功能是结合Hadoop做一个大数据的分析。
什么是大数据?
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
我们Elk做的就是大数据的分析,大数据的功能体现在哪?
在我们用淘宝京东购买商品的时候,他会根据你的喜好推荐一些你喜欢的物品,做一个刺激消费。
比如我很喜欢键盘,多次搜索机械键盘 ,那么他的算法就会根据键盘给你推荐一些不同价位的键盘,这是如果我看到喜欢的键盘 就会买下来,这就起到了一个刺激消费的结果,你以为这就完了? 这才刚开始!
他会根据你买东西的价位来估算你的经济条件,根据你的搜索判断你的职业,根据算法给你推荐符合你经济条件,且需要的商品,来刺激你消费。
还有一个很重要的问题,我们打开很多APP 都会弹出领取红包,奖金之类的选项,它们都是有使用条件的,如果你觉得麻烦 ,不差这点红包而不去点击这些按钮,就进入了一个算法,它会认为你不需要优惠,这类人 如果对比的话,就会发现同一个商品你手机里的购买价格和别人手机里的价格是不同的,这些优惠的价格 据我推测,因为它默认你不接受优惠所以就把这笔钱赚走了,积少成多!
在信息时代 我们身边处处都是大数据,作为一个IT工作者,我们应该对大数据做一定的了解,我采用的是ELK数据分析技术栈。
日志也是数据的一种,下面我会简述ELK分析nginx的日志
ELK介绍
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana
1、Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
2、Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。
一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3、Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
4、FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
准备环境
两台测试服务器
服务器一号 192.168.14.111 Elasticsearch Kibana
服务器二号 192.168.14.222 Logstash Nginx
关闭防火墙
同步时间
在1,2服务器上 安装 ntpdate
在1服务器上
vim /etc/chrony.conf
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.14.111
allow 192.168.14.0/24
local stratum 10
重启chronyd
在2服务器上
ntpdate 192.168.14.111
9 Apr 13:48:44 ntpdate[2327]: adjust time server 192.168.14.111 offset -0.000198 sec
在一号服务器上传包 安装els
ls
anaconda-ks.cfg elasticsearch-6.6.0.rpm
yum -y install java-1.8.0-openjdk
rpm -ivh elasticsearch-6.6.0.rpm
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
node.name: node-1
network.host: 192.168.14.111
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.14.111"]
在一号服务器上启动,设置开机自启
systemctl start elasticsearch
systemctl enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
我们测试一下
1554789517968.png
成功!
在二号服务器上安装logstash
ls
anaconda-ks.cfg logstash-6.6.0.rpm
yum -y install java-1.8.0-openjdk
rpm -ivh logstash-6.6.0.rpm
chmod 644 /var/log/messages
chmod 644 /usr/local/nginx/logs/access.log
vim /etc/logstash/conf.d/syslog.conf
input {
file {
path => "/var/log/messages"
type => "systemlog"
start_position => "beginning"
stat_interval => "2"
}
}
output {
elasticsearch {
hosts => ["192.168.100.100:9200"]
index => "logstash-systemlog-%{+YYYY.MM.dd}"
}
}
vim /etc/logstash/conf.d/nginx.conf
input{
file{
path => "/usr/local/nginx/logs/access.log"
type => "nginxlog"
start_position => "begining"
stat_interval => "2"
}
}
output{
elasticsearch {
hosts => ["192.168.14.111:9200"]
index => "logstash-nginxlog-%{+YYYY.MM.dd}"
}
}
systemctl start logstash
systemctl enable logstash
Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service.
#验证是否成功
在一号服务器上配置kibana
ls
anaconda-ks.cfg elasticsearch-6.6.0.rpm kibana-6.6.0-x86_64.rpm
rpm -ivh kibana-6.6.0-x86_64.rpm
vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "192.168.14.111"
elasticsearch.hosts: ["http://192.168.14.111:9200"]
systemctl start kibana
systemctl enable kibana
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.
测试一下
![1554792519699.png](https://img.haomeiwen.com/i15296763/2853fc908154b0bc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 1554797747301.png使用apache自带的压力测试工具ab