CENTOS6.5安装日志分析ELK elasticsearch + logstash + redis + kibana

1、日志平台的工作流程

  • 多个独立的agent(Shipper)负责收集不同来源的数据,一个中心agent(Indexer)负责汇总和分析数据,在中心agent前的Broker(使用redis实现)作为缓冲区,中心agent后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。
  • Shipper表示日志收集,使用LogStash收集各种来源的日志数据,可以是系统日志、文件、redis、mq等等;
  • Broker作为远程agent与中心agent之间的缓冲区,使用redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心agent提取数据失败时,数据保存在redis中,而不至于丢失;
  • 中心agent也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter);
  • ElasticSearch用于存储最终的数据,并提供搜索功能;
  • Kibana提供一个简单、丰富的web界面,数据来自于ElasticSearch,支持各种查询、统计和展示;

2、机器的部署情况

192.168.1.140 # redis 服务器,角色broker
192.168.1.140 # logstash 角色 indexer 服务器,集成elasticsearch, kibana,必须有安装web服务
192.168.1.132  # nginx服务器,角色生产服务器,logstash需要收集它的日志

这里选用的软件的版本:

logstash-1.4.2

elasticsearch-1.4.2

redis-2.6.16

kibana 是logstash内带的

这些软件之间有兼容性问题,请用其他代替版本的同学注意。

2.1 安装logstash-1.4.2

yum -y install java-1.7.0-openjdk    安装logstash需要jdk的支持

wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz

tar xzvf logstash-1.4.2.tar.gz -C /app/ && mv /app/logstash-1.4.2 /app/logstash

mkdir  -p /app/logstash/conf

注:如果yum出现这样的问题:

需要按照epel

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


测试安装

cd /app/logstash/bin

./logstash -e ‘input { stdin { } } output { stdout {} }‘

输入“good job”, 如果出现类似下图,说明logstash正常工作

2.2 安装 elasticsearch-1.4.2

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.tar.gz

tar xzvf  elasticsearch-1.4.2.tar.gz -C /app/

cd /app/elasticsearch-1.4.2/config

修改配置文件elasticsearch.yml

discovery.zen.ping.multicast.enabled: false  #关闭广播,如果局域网有机器开9300 端口,服务会启动不了

network.host: 192.168.1.140                 #指定主机地址,其实是可选的,但是最好指定因为后面跟kibana集成的时候会报http连接出错(直观体现好像是监听了:::9200 而不是0.0.0.0:9200)

http.cors.allow-origin: "/.*/"

http.cors.enabled: true                      #这2项都是解决跟kibana集成的问题,错误体现是 你的 elasticsearch 版本过低

启动elasticsearch

cd /app/elasticsearch-1.4.2/bin

./elasticsearch   # 配置阶段建议直接启动,日志会输出到stdout,-d 选项表示以daemon的方式启动,如果没有出现error ,表示服务正常启动

测试logstash 跟elasticsearch数据交互

/app/logstash/bin/logstash -e ‘input { stdin { } } output { elasticsearch { host => 192.168.1.140 } }‘

输入you know

curl ‘http://192.168.1.140:9200/_search?pretty‘ # 如果有输出且没有出现错误表示服务器交互成功

注:可能出现如下错误信息,我也不知道什么原因,我没有管  不过不耽误后面的搭建  有谁知道这个是怎么回事  或者怎么解决的请留言 谢谢!!

2.3  安装kibana

cd /app/logstash/vendor

vim kibana/config.js   #elasticsearch: "http://"+window.location.hostname+":9200",修改成"http://192.168.1.140:9200"

cp -Rv  kibana  /var/www/html       拷贝网页的配置

/etc/init.d/httpd start  /  service httpd start

能够访问url http://192.168.1.140/kibana/index.html  看到这样的画面

2.4安装redis

#tar xzvf redis-2.6.16.tar.gz -C /app

#cd /app/redis-2.6.16 && mkdir conf

#make target=linux26 (报错 可能缺少一些编译的工具,按照提示,yum安装就行了

如果出现如下报错:

可以执行  make MALLOC=libc

详细原因可以直接百度出来

http://www.41443.com/HTML/DB2/20150525/373733.html

#./src/redis-server redis.conf  # daemonize yes 使用默认的配置文件

2.5 集成logstash  redis

vim /app/logstash/conf/nginx_acces.conf  写入如下内容

input {
    redis {
        host => ‘192.168.1.140‘  # 我方便测试没有指定password,最好指定password
        data_type => ‘list‘
        port => "6379"
        key => ‘logstash:redis‘ #自定义
        type => ‘redis-input‘   #自定义
    }
}
output {
    elasticsearch {
        host => "192.168.1.140"   # 由于redis和elasticsearch在一台机器上所以IP是一个

codec => "json"
        protocol => "http"  #版本1.0+ 必须指定协议http
    }
}

验证配置文件

cd /app/logstash

#bin/logstash -f ./conf/nginx_access.conf -t  # 无误后启动

#bin/logstash -f ./conf/nginx_access.conf  --verbose # 要检查错误 --debug

启动成功  有警告没有管

2.6  日志接入 另一台机器  安装logstash 过程 跟上面一样 但是  nginx_access.conf 配置如下

  1. input {
  2. file {
  3. type => "nginx_access"
  4. path => "/var/log/nginx/access.log"  日志的路径
  5. }
  6. }
  7. output {
  8. stdout { codec => rubydebug }
  9. redis {
  10. host => ‘192.168.1.140‘              对接的redisIP
  11. data_type => ‘list‘
  12. key => ‘logstash:redis‘
  13. }
  14. }

到此配置告一段落,下面验收成果

刷新nginx日志

然后在132上的logstash能够看到如下

然后在140端能够看到:

重点是访问http://192.168.1.140/kibana/index.html  验收最后的页面

这个是一个简单的格式 已经设计好的 当然可以自己定义了。

定义的方法:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4938039&uid=24940078

点进去以后的界面是这样的:

3 安装插件  安装bigdesk

要想知道整个插件的列表,请访问http://www.elasticsearch.org/guide/reference/modules/plugins/ 插件还是很多的,个人认为比较值得关注的有以下几个,其他的看你需求,比如你要导入数据当然就得关注river了。

该插件可以查看集群的jvm信息,磁盘IO,索引创建删除信息等,适合查找系统瓶颈,监控集群状态等,可以执行如下命令进行安装,或者访问项目地址:https://github.com/lukas-vlcek/bigdesk

先上一张效果图:

这里我是按照https://github.com/lukas-vlcek/bigdesk

上面的第二种  git clone的方式做的(第一种没成功。。。)

首先确保安装git

yum install -y git

然后将按照上面的命令做:

git clone https://github.com/lukas-vlcek/bigdesk.git

cd bigdesk/

git tag

[... some tags left out for brevity ....]
   v2.2.2
   v2.2.3
   v2.4.0

git checkout v2.4.0

然后将整个bigdesk目录拷贝到http下

cp -ar bigdesk /var/www/html/

然后就可以访问了

http://192.168.1.140/bigdesk

先修改host  然后连接  然后会出来一个小图标(成果展示图里的) 点击小图标就能出现监控的选项了。

声明:该文参考了如下几位的博客,但是是我亲自搭建了整个过程,对整个的流程进行了新的把控和优化。

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=17291169&id=4898582

http://www.mamicode.com/info-detail-475881.html

http://nkcoder.github.io/blog/20141031/elkr-log-platform-deploy/

时间: 2024-11-07 11:33:49

CENTOS6.5安装日志分析ELK elasticsearch + logstash + redis + kibana的相关文章

[Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这

ELK(ElasticSearch+Logstash+Kibana)日志分析工具

日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事

CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们很关心安全,不过他们压根就没看过和关注过自己服务器的日志,这是有点讽刺的.先把日志管理好,然后我们再去深入讨论安全. Mirantis的Fuel,已经引入ELK作为OpenStack的监控工具,所以我们也需要重点去学习一下ELK. 刚好看到一个老外的视频,介绍CentOS 7安装ELK,讲的很实在,

ELK日志系统:Elasticsearch+Logstash+Kibana搭建教程

ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载包:jdk-8u131-linux-x64.rpm yum localinstall jdk-8u131-linux-x64.rpm mvn 安装 cd /usr/lo

ELK服务搭建(开源实时日志分析ELK平台部署)(低版本—简单部署)

开源实时日志分析ELK平台部署 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的

开源实时日志分析ELK

开源实时日志分析ELK 2018-01-04 转自:开源实时日志分析ELK平台部署 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事

Linux下开源实时日志分析elk部署详解

前言: Elk主要就是3个软件的组合,主要是elasticsearch搜索引擎,Logstash是一个日志收集日志,kibana实时分析进行展示. [关于日志搜集的软件,如:scribe,flume,heka,logstash,chukwa,fluentd,当然rsyslog rsyslog-ng都可以搜集. 关于日志手机后存储软件,如:HDFS,Cassandra mongodb, redis,elasticsearch. 关于日志分析软件比如要用HDFS就可以写mapreduce分析,如果需

日志分析ELK平台搭建

当服务器数量以及应用达到一定的数量后,操作系统日志以及应用软件日志数量庞大,遇到问题时日志是第一手资料.平时用的sed.grep.awk已经难以满足我们的需求.随着互联网技术的发展,好多大型互联网公司研发了不同的日志分析产品,例如开源的Graylog.ELK还有Splunk等,同时Splunk也是一个商业产品,功能很强大,但是在目前的互联网领域里ELK的使用应该是更广泛.接下来会根据官网资料搭建ELK平台. 环境介绍: 操作系统  CentOS 7.4 Java版本:openjdk 1.8.0_