设为首页 收藏本站
查看: 2233|回复: 0

[经验分享] elk单台环境搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-7 09:03:53 | 显示全部楼层 |阅读模式
一、简介
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的

2、组件作用
Logstash: logstash server端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用于查询和可视化日志;
3、ELK工作流程
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,然后通过logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
wKiom1hFXljjhlFLAAEhr73I6-A152.jpg

二、下载所需软件
wget http://download.oracle.com/otn-p ... 45-linux-x64.tar.gz

wget https://download.elastic.co/elas ... search-1.7.2.tar.gz

wget https://download.elastic.co/kiba ... .2-linux-x64.tar.gz

wget https://download.elastic.co/logs ... gstash-1.5.4.tar.gz


三、安装步骤
1、首先安装jdk
安装jdk-8u45-linux-x64
root身份登录系统 将jdk-8u45-linux-x64.tar.gz拷贝到/opt下面
cd /opt
tar zxvf jdk-8u45-linux-x64.tar.gz
        解压后 生成的文件名字叫做jdk-8u45
vim /etc/profile
把如下代码放到文件的最后面
export JAVA_HOME=/opt/jdk-8u45
export JAVA_BIN=/opt/jdk-8u45/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JAVA_BIN PATH CLASSPATH
source /etc/profile
2、安装Logstash
tar –zxf logstash-1.5.2.tar.gz -C /usr/local/
安装完成后运行如下命令:
/usr/local/logstash-1.5.2/bin/logstash agent -f logstash-test1.conf
# /usr/local/logstash-1.5.2/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Logstash startup completed
this is test!
2015-07-15T03:28:56.938Z dell-09 this is test!

我们可以看到,我们输入什么内容logstash按照某种格式输出,其中-e参数参数允许Logstash直接通过命令行接受设置。这点尤其快速的帮助我们反复的测试配置是否正确而不用写配置文件。使用CTRL-C命令可以退出之前运行的Logstash。
使用-e参数在命令行中指定配置是很常用的方式,不过如果需要配置更多设置则需要很长的内容。这种情况,我们首先创建一个简单的配置文件,并且指定logstash使用这个配置文件。例如:在logstash安装目录(/usr/local/logstash-1.5.2)下创建一个“基本配置”测试文件logstash-test.conf,文件内容如下:
   
# cat logstash-test.conf
input { stdin { } }
output {
   stdout { codec=> rubydebug }
}
Logstash使用input和output定义收集日志时的输入和输出的相关配置,本例中input定义了一个叫"stdin"的input,output定义一个叫"stdout"的output。无论我们输入什么字符,Logstash都会按照某种格式来返回我们输入的字符,其中output被定义为"stdout"并使用了codec参数来指定logstash输出格式。

3、安装Elasticsearch
# tar -zxf elasticsearch-1.6.0.tar.gz -C /usr/local/
启动Elasticsearch两种方式:
# /usr/local/elasticsearch-1.6.0/bin/elasticsearch
# nohup /usr/local/elasticsearch-1.6.0/bin/elasticsearch >nohup &  后台启动

验证及确认elasticsearch的9200端口已监听,说明elasticsearch已成功运行
[iyunv@dell-09 tmp]# ss -tunpl |grep 9200
tcp    LISTEN     0      50                    :::9200                 :::*      users:(("java",16633,99))

接下来我们在logstash安装目录下创建一个用于测试logstash使用elasticsearch作为logstash的后端的测试文件logstash-test.conf,该文件中定义了stdout和elasticsearch作为output,这样的“多重输出”即保证输出结果显示到屏幕上,同时也输出到elastisearch中。
cat logstash-test-simple.conf
input { stdin { } }
output {
   elasticsearch {host => "localhost" }
   stdout { codec=> rubydebug }
}
/usr/local/logstash-1.5.2/bin/logstash agent -f logstash-test-simple.conf
Logstash startup completed
es logstash #手动添加
{
       "message" => "es logstash",
      "@version" => "1",
    "@timestamp" => "2016-12-06T01:58:49.672Z",
          "host" => "dell-09"
}

验证
使用curl命令发送请求来查看ES是否接收到了数据:
curl 'http://localhost:9200/_search?pretty'

wKioL1hGHDCgv6UnAAB77Lzal3o483.png-wh_500x0-wm_3-wmp_4-s_2668361258.jpg
如果看到上图内容说明已经可以用Elasticsearch和Logstash来收集日志数据了。

4、安装elasticsearch插件
Elasticsearch-kopf插件可以查询Elasticsearch中的数据,安装elasticsearch-kopf,只要在你安装Elasticsearch的目录中执行以下命令即可:
# cd /usr/local/elasticsearch-1.7.2/bin
# ./plugin -install lmenezes/elasticsearch-kopf

访问kopf:
http://10.193.1.86:9200/_plugin/kopf/#!/nodes



5、安装Kibana
# tar -zxf kibana-4.1.1-linux-x64.tar.gz -C /usr/local/

启动kibana
# /usr/local/kibana-4.1.1-linux-x64/bin/kibana
使用[url=]http://localhost:5601访问Kibana,登录后,首先,配置一个索引,默认,Kibana的数据被指向Elasticsearch,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。然后点击discover[/url]

note:
碎碎念:

①单机的elk到这基本已经完成了,主要部署思路还是在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
②如果生产服务器过多,有很多日志处理的话建议用zookeeper+kafka+elk
……







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-310774-1-1.html 上篇帖子: es2.4+kibanna安装配置 下篇帖子: 日志监控_ElasticStack5-0001.Logstash快速规范化部署与后台运行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表