(原)logstash-forwarder + logstash + elasticsearch + kibana
[logstash-forwarder + logstash + elasticsearch + kibana]
------------------------------------------------------------------------------------------------------------------------------------------------
摘要:logstash-forwarder搜集日志,汇总给logstash,然后输出到elasticsearch,并由kibana展现web界面.
------------------------------------------------------------------------------------------------------------------------------------------------
一 安装
1.logstash-forwarder
see and install:
https://github.com/elasticsearch/logstash-forwarder
(logstash-forwarder有个坑. 虽然严格讲不算是logstash-forwarder的坑.
跟证书相关的:https://github.com/elasticsearch/logstash-forwarder/issues/221 <-可以不看.
下面的解决方案规避这个坑了. 下面会提到.)
2.logstash
see and install:
http://logstash.net/docs/1.4.2/tutorials/getting-started-with-logstash
3.elasticsearch
3.1.下载https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.tar.gz
3.2.解压到目录 elasticsearch-1.3.2
3.3. 测试安装是否成功
$ cd elasticsearch-1.3.2/
$ bin/elasticsearch
$ curl -X GET http://localhost:9200/
(保持elasticsearch一直运行. 下面将继续测试)
4.kibana:
4.1.下载https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz
4.2. 解压到目录 kibana-3.1.0
4.3. 测试安装是否成功
$ cd kibana-3.1.0
$ vi config.js
第32行修改为:
elasticsearch: "http://localhost:9200",
或者如果是要非本地访问,就应该这样:
elasticsearch: "http://"+window.location.hostname+":9200"
注意后面有逗号.
在浏览器里打开这目录里的index.html.
------------------------------------------------------------------------------------------------------------------------------------------------
二 .方案:
client[logstash-forwarder]---|
client[logstash-forwarder]---|---log-server[logstash]--->[elasticsearch]
client[logstash-forwarder]---|
2.1 先启动elasticsearch
前面已经启动了.
2.2 开启logstash
先写logstash的配置文件:
$ cd logstash-1.4.2
$ vi test_logstash.conf
input {
lumberjack {
# The port to listen on
port => 5000
# The paths to your ssl cert and key
ssl_certificate => "/home/xiaou/logstash-forwarder.crt"
ssl_key => "/home/xiaou/logstash-forwarder.key"
# Set this to whatever you want.
type => "somelogsXXX"
}
}
output {
elasticsearch { host => localhost } # 因为logstash和elasticsearch在同一台机器上,所以这里可以用localhost
stdout { codec => rubydebug }
}
还要产生自签证书:
$ openssl req -subj '/CN=localhost/' -x509 -batch -nodes -newkey rsa:2048 -keyout /home/xiaou/logstash-forwarder.key -out /home/xiaou/logstash-forwarder.crt -days 1095
(这里用“-subj '/CN=localhost/'”规避了上面提到的logstash-forwarder的坑)
然后启动logstash:
$ bin/logstash -f test_logstash.conf
2.3 启动logstash-forwarder
先写logstash-forwarder的配置文件:
$ cd logstash-forwarder
$ vi test_forwarder.conf
{
"network": {
"servers": [ "localhost:5000" ],
"ssl ca": "/home/xiaou/logstash-forwarder.crt",
"timeout": 5
},
"files": [
{
"paths": [
"/var/log/linshi.txt",
"/var/log/*.log"
],
"fields": {
"type": "linshiXX"
}
}
]
}
(这里配置文件的写法也是规避了前面提到的logstash-forwarder的坑:servers没用ip)
启动logstash-forwarder:
$ ./logstash-forwarder -config test_forwarder.conf
logstash-forwarder启动后就会与logstash建立tcp连接.
测试, 写日志,观察运行logstash的终端的输出:
$ echo 1234 >> /var/log/linshi.txt
2.4 打开kibana,展现最终汇总到elasticsearch的日志.
(唯kibana不能算是服务, 它只是一个“阅读器”.)
用浏览器打开kibana-3.1.0目录下的index.html,看右边倒数第五行有个链接。打开.
------------------------------------------------------------------------------------------------------------------------------------------------
三.深入:
1. type
logstash.conf里的
input {
lumberjack {
...
type => "this forwarder's file have no type!"
这个type,是对forwarder.conf的补充:如果forwarder.conf里没有type,则这里的type就会填充日志event的type字段.
ps:
一条日志event是这样的:
{
"message" => "xx",
"@version" => "1",
"@timestamp" => "2014-09-18T03:31:12.744Z",
"type" => "linshi1",
"file" => "/var/log/epoch/linshi.txt",
"host" => "xiaou-mint",
"offset" => "568"
}
用type来作为区分各个日志应该不错:
在forwarder里这样写files:
"files": [
{
"paths": [
"/var/log/epoch/linshi1.txt"
],
"fields": {
"type": "linshi1"
}
},
{
"paths": [
"/var/log/epoch/linshi2.txt"
],
"fields": {
"type": "linshi2"
}
}
]
2.add_field添加字段
add_field => {
"test_field" => "asdasd"
"test_filed2" => "112233"
}
尽量不要跟日志event里已有的字段冲突了,如果要这么做,需要自行测试是否会覆盖event日志的字段. 我测试了几个字段诸如type、message、file,居然表现各一,无法统一下结论.
3.if表达式
随时需要查文档http://logstash.net/docs/1.4.2/。。。不写了. End.
/*
http://logstash.net/docs/1.4.2/inputs/lumberjack
http://logstash.net/docs/1.4.2/configuration#conditionals
http://logstash.net/docs/1.4.2/filters/mutate
http://logstash.net/docs/1.4.2/filters/drop
*/
4. 最后给出两个conf的测试内容:
logstash.conf :
input {
lumberjack {
# The port to listen on
port => 5000
# The paths to your ssl cert and key
ssl_certificate => "/home/xiaou/logstash-forwarder.crt"
ssl_key => "/home/xiaou/logstash-forwarder.key"
type => "this forwarder's file have no type!"
}
}
filter{
if [type] == "linshi2"{
mutate{
replace => ["message","%{message}:it's linshi2"]
update => ["file", "FILE_LINSHI2"] # 替换字段.
}
}else{ # linshi1
if "error" in [message]{ # 日志里还有“error”字符串
mutate{
add_field => {"NOTE" => "ERROR!"} # 添加字段
add_tag => "tag_error!" # 添加标签. 标签是个数组
add_tag => "tag_error2!"
}
}else{ # 如果来自linshi1.txt的并且没有“error”自负, 则丢弃.
drop{}
}
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
forwarder.conf :
{
"network": {
"servers": [ "localhost:5000" ],
"ssl ca": "/home/xiaou/logstash-forwarder.crt",
"timeout": 5
},
"files": [
{
"paths": [
"/var/log/epoch/linshi1.txt"
],
"fields": {
"type": "linshi1"
}
},
{
"paths": [
"/var/log/epoch/linshi2.txt"
],
"fields": {
"type": "linshi2"
}
}
]
}
------------------------------------------------------------------------------------------------------------------------------------------------
End.
(原)logstash-forwarder + logstash + elasticsearch + kibana的更多相关文章
- Filebeat+Kafka+Logstash+ElasticSearch+Kibana 日志采集方案
前言 Elastic Stack 提供 Beats 和 Logstash 套件来采集任何来源.任何格式的数据.其实Beats 和 Logstash的功能差不多,都能够与 Elasticsearch 产 ...
- 【ELK】【docker】【elasticsearch】2.使用elasticSearch+kibana+logstash+ik分词器+pinyin分词器+繁简体转化分词器 6.5.4 启动 ELK+logstash概念描述
官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod ...
- Logstash+ElasticSearch+Kibana处理nginx访问日志(转)
ELK似乎是当前最为流行的日志收集-存储-分析的全套解决方案. 去年年初, 公司里已经在用, 当时自己还山寨了一个统计系统(postgresql-echarts, 日志无结构化, json形式存储到p ...
- logstash+elasticsearch+kibana管理日志(安装)
logstash1.先安装jdk2.wget https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz tar -xzvf ...
- 安装logstash,elasticsearch,kibana三件套
logstash,elasticsearch,kibana三件套 elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意: 关于安装文档, ...
- 使用logstash+elasticsearch+kibana快速搭建日志平台
日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: * 根据关键字查询日志详情 * 监控系统的运行状况 * 统计分析,比如接口的调用次数.执行时间.成功 ...
- 安装logstash,elasticsearch,kibana三件套(转)
logstash,elasticsearch,kibana三件套 elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意: 关于安装文档, ...
- logstash+ElasticSearch+Kibana VS Splunk
logstash+ElasticSearch+Kibana VS Splunk 最近帮磊哥移植一套开源的日志管理软件,替代Splunk. Splunk是一个功能强大的日志管理工具,它不仅可以用多种方式 ...
- logstash+elasticsearch+kibana快速搭建日志平台
使用logstash+elasticsearch+kibana快速搭建日志平台 日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日 ...
随机推荐
- Jqeury Mobile实战之切屏效果以及屏幕滚动到底端加载更多和点击切换更多
http://blog.csdn.net/q718330882/article/details/46120691 //页面滚动到底部加载更多事件 $( window ).scroll(function ...
- 【Mysql】php执行脚本进行mysql数据库 备份和还原
一.mysql备份 1.这里使用 php脚本的形式进行mysql 数据库的备份和还原,想看linux的sh版本的,有时间再贴. 2.找到 mysql的[mysqldump] 执行程序,建议phpinf ...
- VMware Workstation 10.0 简中绿色精简版
VMware Workstation是强大的虚拟机软件,能在一台机器上同时运行二个或更多Windows.DOS.LINUX系统,并进行开发.测试.部署新的应用程序.VMware10.0 延续VMwar ...
- scipy稀疏矩阵
那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse matrix). 不同类型的矩阵有不同的压缩方式,比如对角矩阵只存储对角元素即可.要想充分压缩,就要找到 ...
- HanLP自定义词典注意事项
对于词典,直接加载文本会很慢,所以HanLP对于文本文件做了一些预处理,生成了后缀名为.txt.bin的二进制文件. 这些二进制文件相当于缓存,避免了每次加载去读取多个文件. 通过这种txt和bin结 ...
- Hibernate+maven+eclipse 实现自动建表
一.需求 如题,当建好Model 时,不想自己手工建表,可以采取hibernate进行自动建表.下面将用一个小例子来说明如何将其实现. 二.实现 说明:1)这里用的是4.3.1.Final版本的hib ...
- javascript TODO
1.需要深入学习DOM对象知识,very important! http://www.w3school.com.cn/htmldom/index.asp 2.深入学习javascript RegExp ...
- memcached全面剖析--4. memcached的分布式算法
我是Mixi的长野. 第2次.第3次由前坂介绍了memcached的内部情况.本次不再介绍memcached的内部结构,开始介绍memcached的分布式. memcached的分布式 正如第1次中介 ...
- iscsi target 之LIO配置
LIO 配置 现在主流Linux都可以设置iSCSI,如STGT/TGT.LIO Target等.Linux-IO(LIO)Target是当前Linux标准的iSCSI target的开源实现,包含在 ...
- Win10下Clion配置opencv3
本人不想在爱机装一个vs2013或者vs2015这种庞然大物,可是手头要弄一个基于windows的opencv项目,就只好装了个Clion,期间踩了不少坑,记录一下. 参考网址:http://www. ...