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

[经验分享] Elasticsearch+Kibana+Logstash 搭建日志平台

[复制链接]

尚未签到

发表于 2015-11-27 12:41:26 | 显示全部楼层 |阅读模式
大型日志平台搭建




Java 环境部署



网上很多教程,此处只做出测试


java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Elasticsearch 搭建



curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.1.tar.gz
tar zxvf elasticsearch-1.5.1.tar.gz
cd elasticsearch-1.5.1/
./bin/elasticsearch


es在此处不需要设置多少东西,基本上默认的就可以满足我们的要求了...


Logstash 搭建

初步搭建

curl -O http://download.elastic.co/logstash/logstash/logstash-1.5.1.tar.gz


现在你应该有了一个叫logstash-1.5.2.tar.gz的文件了。 我们把它解压一下



tar zxvf logstash-1.4.2.tar.gzcd logstash-1.5.1


现在我们来运行一下:bin/logstash -e 'input { stdin { } } output { stdout {} }'

我们现在可以在命令行下输入一些字符,然后我们将看到logstash的输出内容:

hello world

2015-06-17T01:22:14.405+1000 0.0.0.0 hello world



Ok,还挺有意思的吧... 以上例子我们在运行logstash中,定义了一个叫"stdin"的input还有一个"stdout"的output,无论我们输入什么字符,Logstash都会按照某种格式来返回我们输入的字符。这里注意我们在命令行中使用了-e参数,该参数允许Logstash直接通过命令行接受设置。这点尤其快速的帮助我们反复的测试配置是否正确而不用写配置文件。

让我们再试个更有意思的例子。首先我们在命令行下使用CTRL-C命令退出之前运行的Logstash。现在我们重新运行Logstash使用下面的命令:



bin/logstash -e 'input { stdin { } } output { stdout { codec => rubydebug } }'

我们再输入一些字符,这次我们输入"goodnight moon" 将出现:



goodnight moon
{
"message" => "goodnight moon",
"@timestamp" => "2013-11-20T23:48:05.335Z",
"@version" => "1",
"host" => "my-laptop"
}

以上示例通过重新设置了叫"stdout"的output(添加了"codec"参数),我们就可以改变Logstash的输出表现。类似的我们可以通过在你的配置文件中添加或者修改inputs、outputs、filters,就可以使随意的格式化日志数据成为可能,从而订制更合理的存储格式为查询提供便利。



集成Elasticsearch插入数据

以上的步骤已经成功的搭建了logstash,接下来增加logstash的配置文件,使其配置文件启动,将数据存入ES中,显示


1、在/root/config/目录下面增加logs.confinput{
file{
type => "all"
path => "/root/tomcat7/logs/catalina.out"
}
file{
type => "access"
path => "/root/tomcat7/logs/access.log"
}
}filter {
multiline {
pattern => "^[^\[]"
what => "previous"
}
if [type] == "access" {
grok {
pattern => &quot;(?<request_info>{.*}$)&quot;
}
json {
source => request_info
}
geoip {
source => &quot;client_ip&quot;
fields => [&quot;country_name&quot;, &quot;region_name&quot;, &quot;city_name&quot;, &quot;real_region_name&quot;, &quot;latitude&quot;, &quot;longitude&quot;]
remove_field => [ &quot;[geoip][longitude]&quot;, &quot;[geoip][latitude]&quot;,&quot;location&quot;,&quot;region_name&quot; ]
}
useragent {
source => &quot;user_agent&quot;
prefix => &quot;useragent_&quot;
remove_field => [ &quot;useragent_device&quot;, &quot;useragent_major&quot;, &quot;useragent_minor&quot; ,&quot;useragent_patch&quot;,&quot;useragent_os&quot;,&quot;useragent_o
s_major&quot;,&quot;useragent_os_minor&quot;]
}
} else if [type] == 'all' {
grok {
pattern => &quot;\[(?<level>\w*).*\] (?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s&quot;
}
}
mutate {
remove_field => [ &quot;request_info&quot;, &quot;@version&quot;, &quot;tags&quot; ]
remove_tag => [ &quot;_grokparsefailure&quot; ]
replace => [ &quot;host&quot;, &quot;gd1_prd_yowoo_tomcat4&quot; ]
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
host => &quot;localhost&quot;
index => &quot;logstash-%{type}-%{+YYYY.MM.dd}&quot;
index_type => &quot;%{type}&quot;
}
}


2、启动logstash(配置文件启动)


sh logstash -f /root/config/logs.conf


3、在上述的配置文件中,有指定了tomcat的日志,all是tomcat的日志,access是我们自己在程序中写的的日志,在log4j.xml中有:


<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?>  
<!DOCTYPE log4j:configuration SYSTEM &quot;log4j.dtd&quot;>
<log4j:configuration xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot;>
<!-- all log for console -->
<appender name=&quot;console&quot; class=&quot;org.apache.log4j.ConsoleAppender&quot;>
<layout class=&quot;org.apache.log4j.PatternLayout&quot;>
<param name=&quot;ConversionPattern&quot; value=&quot;[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %l %M - %m%n&quot; />
</layout>
</appender>
<!-- access log -->
<appender name=&quot;access&quot; class=&quot;org.apache.log4j.DailyRollingFileAppender&quot;>
<layout class=&quot;org.apache.log4j.PatternLayout&quot;>
<param name=&quot;ConversionPattern&quot; value=&quot;[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} - %m%n&quot; />
</layout>
<param name=&quot;Append&quot; value=&quot;true&quot; />
<param name=&quot;File&quot; value=&quot;/root/tomcat7/logs/access.log&quot;<span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;> /></span>
<param name=&quot;DatePattern&quot; value=&quot;'.'yyyy-MM-dd'.'&quot; />
<filter class=&quot;com.lives.platform.common.log.AccessLogFilter&quot; />
</appender>

<root>
<priority value=&quot;debug&quot; />
<appender-ref ref=&quot;console&quot; />
<appender-ref ref=&quot;access&quot; />
</root>
</log4j:configuration>

在log4j.xml中配置的是日滚的日志文件,logstash指向了生成日志文件的地址,进行监听,日志不会的,我在博客中有一个分类叫日志,进去看哇...


Kibana 搭建

下载Kibana

wget https://download.elastic.co/kibana/kibana/kibana-4.1.0-linux-x64.tar.gz


解压出来就行了...

配置使其读取ES的数据展示

进入Kibana目录/config中,修改kibana.yml文件,指定ES访问地址(ps:以前的版本是修改conf.js,不要让被人误导你...)
# Kibana is served by a back end server. This controls which port to use.
port: 5601
# The host to bind the server to.
host: &quot;0.0.0.0&quot;
# The Elasticsearch instance to use for all your queries.
elasticsearch_url: &quot;http://localhost:9200&quot;

最后进入web页面中查看


DSC0000.jpg




谢谢观看,牛&#36924;不,还有谁,有任何问题请加QQ:772846384 验证问题 答案:花言巧语骗人心  

运维网声明 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-144120-1-1.html 上篇帖子: ElasticSearch + Logstash + Kibana 实时日志收集、查询和分析系统 下篇帖子: 使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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