前言:随着硬件成本的不断低廉,我们可以存储更多数据内容,也会对各数据加以利用,其中一项很重要的数据内容便是日志文件,无论是访问日志还是系统日志或是应用日志,都显得十分重要,而怎么加以利用一直是一个难题,本文就着重于ELK三套件的搭建,是比较流行或者说可靠的日志分析组件,值得注意的说,本文暂时只考虑单机Elasticsearch,并且为了作为演示,就linux的系统日志收集作为演示。


版本说明:

ElasticSearch  1.7.1

Kibana      4..1

Logstash     1.5.2

JAVA      jdk-7u76

注: 最新的上面不一定是最新的版本,不同的版本之间可能有兼容问题,而上面的组合是本人已经验证过的了。

首先放一张图镇镇楼

强调:不要用IE浏览Kibana!!!

ELK下载地址:https://www.elastic.co/downloads

JAVA环境的安装就不演示了!!!(推荐使用jdk-7u76-linux-x64.gz)

1
2
3
tar zxvf elasticsearch-1.7.1.tar.gz
tar zxvf kibana-4.1.1-linux-x64.tar.gz
tar zxvf logstash-1.5.2.tar.gz

值得注意的是,你可以通过elastic提供的rpm包直接安装,但是那对于一个运维人员太没挑战性了~~再者,对ELK的认识实在不够深刻。

下载elasticsearch-servicewrapper(是一个elasticsearch的启动脚本)

#wget https://github.com/elastic/elasticsearch-servicewrapper/archive/master.zip

###通过这个脚本可以更简单执行Elasticsearch服务启动关闭等命令

其中包括

Console 在前台启动

Start     在后台启动

Stop     关闭

Install   装到启动项里面

Remove 移除卸载

开始安装

1
2
3
4
5
mv elasticsearch-1.7.1 /data/elasticsearch
unzip master.zip
mv elasticsearch-servicewrapper-master/*/data/elasticsearch/bin/
mv logstash-1.5.2 /data/logstash
mv kibana-4.1.1 /data/kibana

ELK三套件都是依赖JAVA环境并不需要编译安装,所以安装其实非常简单,只是有版本兼容问题所以部分人总是装不上,再者ELK需要相关优化,不然就会总是抛出异常。

ELK中的E,elasticsearch一个全文搜索引擎,存储着收集过来的所有数据并支持集群模式,你只用真正的会用的时候你才会体会到它的异常强大,虽然笔者也是刚刚深入,但是又一次通过Python调用API查询自安装使用至今,查询结果大于五万条数据,嗖的一下就返回,没有任何延迟,并且是结果聚合的数据,由此可见一斑,而且是单机版的。

配置elasticsearch

1
vi/data/elasticsearch/config/elasticsearch.yml

增加下面两行

1
2
http.cors.enabled:true
http.cors.allow-origin:http://ip(本机IP)

启动Elasticsearch

1
/data/elasticsearch/bin/service/elasticsearch start

本地测试Elasticsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -X GET http://localhost:9200/
{
  "status" : 200,
  "name" "Jack Flag",
  "cluster_name" :"elasticsearch",
  "version" : {
    "number" "1.7.1",
    "build_hash" :"927caff6f05403e936c20bf4529f144f0c89fd8c",
    "build_timestamp" "2015-07-16T14:11:12Z",
    "build_snapshot" false,
    "lucene_version" :"4.10.2"
  },
  "tagline" "You Know, forSearch"
}

ELK中的L指Logstash,是一个日志收集应用,本文主要用来收集系统日志,你当然也可以用来解析各种日志,如Tomcat,Nginx,MongoDB等相关应用日志,此文档作为安装文档就不做演示了。

配置logstash

1
2
mkdir /data/logstash/conf/
vi /data/logstash/conf/sys.conf

input {

syslog{

port => "514"

type => "syslog"

}

}

output {

elasticsearch {

host => "127.0.0.1"

}

}

上面的信息是说,以syslog作为输入,监听514端口,Type为syslog,将接收的信息输出到本机的elasticsearch。

如果你执行/data/logstash/bin/logstash -f /data/logstash/conf/sys.conf

你会发现本机监听514端口,但是没有用,因为没有配置任何机器的rsyslog,其他机器怎么会发信息过来~

所以我们配置一下,需要收集系统日志的主机的rsyslog

1
2
3
4
 yum -y install rsyslog
 vi /etc/rsyslog.conf
 ##加入下面一行,ip填日志服务器的IP
 *.* @@ip:514

当你重启被收集日志主机的rsyslog,该主机就会往日志服务器的514端口以syslog的格式发送系统日志了。

因为是源码安装的,所以可能需要用& 或者nohup 或者自己写的启动脚本将logstash服务放到后台,这里推荐supverisor,后面的kibana也通过supervisor放到后台。

#修改kibana配置文件

1
2
# vi/data/kibana/config/kibana.yml
port: 80   ##改为80(默认监听5601端口)

然后启动kibana

1
/data/kibana/bin/kibana>/dev/null 2>&1 &

但是通过&或者nohup实在太不优雅了,我们使用supervisor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yum -y install supervisor
[program:kibana]
command=/data/kibana/bin/kibana
autorestart = true
redirect = true
stderr_logfile = /var/log/kibana/kibana.log
startsecs = 3
[program:logstash]
command=/data/logstash/bin/logstash -f /data/logstash/conf/logstash.conf -l /data/logstash/logstash_debug.log
autorestart = true
redirect = true
stderr_logfile = /var/log/logstash/logstash.log
startsecs = 3

至于supervisord的详细配置,请参考:http://youerning.blog.51cto.com/10513771/1714627

最后启动supervisord即可。

现在你就可以访问日志服务器了。

第一次登陆,应该是下面的页面

因为我们没有创建索引,所以他会提示我们创建索引,点击create即可,如果你没有配置发送系统日志的rsyslog你会发现,输入框是红色,不能create,这是因为elasticsearch没有任何内容。

当然可以手工的创建一条信息。

创建一个配置文件

1
vi hello.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
input {
  stdin {
    type => "human"
  }
}
  
output {
  stdout {
    codec => rubydebug
  }
  
  elasticsearch {
    host => "127.0.0.1"
  }
}

/data/logstash/bin/logstash -f hello.conf

在提示Completed之后,随便输入一条信息即可。

上面安装完成后,你会发现kibana总是会出现红色提示框"shards faild",所以需要相关优化

关于elasticsearch的优化

配置文件/data/elasticsearch/config/elasticsearch.yml增加一面内容

# Search pool

threadpool.search.type: fixed

threadpool.search.size: 20

threadpool.search.queue_size: 10000

系统优化

vi /etc/security/limits.conf

1
2
3
4
elasticsearch soft  nofile 32000
elasticsearch hard  nofile 32000
root          hard nofile 32000
root          soft nofile  32000

后记:好吧,安装文档就到这里吧,关于Elasticsearch的API调用(主要通过Python)以及Kibana的使用在以后的内容文章会说到

本文转自 youerning 51CTO博客,原文链接:http://blog.51cto.com/youerning/1726338

ELK安装文档及相关优化相关推荐

  1. pytest文档21-pytest-html报告优化(nodeid中文显示[\u6350\u52a9\u6211\u4eec]问题解决)

    前言 pytest-html报告中当用到参数化时候,获取用例的nodeid里面有中文时候,会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明,这个不叫乱码,这是unicode ...

  2. Oracle 12c RAC 安装文档

    首先,谢谢原作者:此文为转载的文章,现将原地址贴出如下: Oracle 12c RAC 安装文档​www.cnblogs.com/leohahah/p/9488963.html 更多精彩Zabbix文 ...

  3. 达梦数据库DSC集群安装文档

    达梦数据库DSC集群安装文档 一. DSC安装准备工作 1 1.1. 创建安装用户 2 1.2. 配置udev存储 2 二. DMDSC 搭建 8 三. 搭建DW容灾架构 39 修改dm.ini,数据 ...

  4. openstack_Stein版安装文档

    openstack Stein 版本安装文档 2019年8月28日 陈即彪 文章目录 1. openstack介绍 1.1. 云计算模式 2. OpenStack 中有哪些项目? 2.1. Opens ...

  5. mysql数据库21_Mysql5.7.21安装文档

    Mysql5.7.21安装文档 发布时间:2020-06-27 13:59:56 来源:51CTO 阅读:946 作者:PengChonggui --1.创建用户组mysql,创建用户mysql并将其 ...

  6. Oracle 11g 单实例安装文档

    这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...

  7. 转自 David dai linux平台 oracle 数据库 安装文档

    Oracle 官方的安装文档 http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/toc.htm 一. 安装相关包  1.1 ...

  8. ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

    ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RA ...

  9. Centos 5.2安装Cacti并集成Nagios安装文档

    Centos 5.2安装Cacti并集成Nagios安装文档 本文档并非原创,而是参照网上很多文档,因为不能全部都把参照者列举出来,特在此感谢我参照文档的作者. 一.本文档所用软件说明: . 二.系统 ...

最新文章

  1. 面试常用shell脚本_Shell脚本编写及常见面试题
  2. VS2015新建C++工程时,Object reference not set to an instance of an object
  3. 【送书】2021年哪些好书值得读(小姐姐配音)
  4. SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)
  5. 计算机专业英语的理解,计算机专业英语之理解网络地址
  6. ARM系统中断产生流程
  7. 短信通知接口json报文开发设计总结
  8. 指数基金投资指南读书笔记
  9. 【水果识别】柑橘质量检测及分级系统(带面板)【含GUI Matlab源码 1628期】
  10. windows下载安装配置Geany
  11. C++进阶笔记001:static 静态生存期 和 动态生存期
  12. 10月更新!又一波新功能上线,升级后的EasyOps®简直神了!
  13. 九 曝光矫正与自动包围曝光
  14. Day210.服务端渲染技术NUXT、整合前台主页面、名师、课程静态页面、首页整合banner数据后端部分【创建banner微服务、接口、banner后台前端实现】 -谷粒学院
  15. EssentialC++第四章总结+课后习题+踩雷清单
  16. 两家出版社称考虑将莫言作品编入中学教材-莫言-教材-诺贝尔奖
  17. 精准测试新玩法の基于犯罪心理学挖掘代码风险
  18. MAT Memory Analyzer Tool 插件安装(图解)
  19. linux脚本的注释符号是什么,linux的shell编程中的符号`是什么
  20. Swan Song 第十一周Scrum Meeting

热门文章

  1. Junit的安装与使用
  2. (转载)Linux usbtouchscreen驱动分析
  3. Android基础知识之Manifest文件的组织结构
  4. Android游戏开发基础part2--Canvas画布
  5. php使用curl可以get 模拟post
  6. Facebook的实时Hadoop系统
  7. 保持dropdownlist选中值
  8. 用ASP.NET上传大文件
  9. Asp.net中多项目共享Session
  10. 对象检测工具包mmdetection简介、安装及测试代码