ELK之收集Java日志、通过TCP收集日志
1.Java日志收集
使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并.
- 语法示例:
- input {
- stdin {
- codec => multiline { #使用multiline插件
- pattern => "pattern, a regexp" #正则匹配
- negate => "true" or "false" #匹配是否成功
- what => "previous" or "next" #和上面的还是和下面的内容合并
- }
- }
- }
命令行测试输入输出
logstash -e 'input { stdin {codec => multiline { pattern => "^\[" negate => "true" what => "previous"} }} output { stdout {codec => rubydebug}}'
2.配置logstash
elk集群日志上都是以"["开头并且每一个信息都是如此
tailf /data/logs/elk-cluster.log
- vim /etc/logstash/conf.d/java.conf
- input {
- file{
- path => "/data/logs/elk-cluster.log"
- type => "elasticsearch-java-log"
- start_position => "beginning"
- stat_interval => "2"
- codec => multiline {
- pattern => "^\["
- negate => "true"
- what => "previous"
- }
- }
- }
- output {
- if [type] == "elasticsearch-java-log" {
- elasticsearch {
- hosts => ["10.0.0.22:9200"]
- index => "elasticsearch-jva-log-%{+YYYY.MM.dd}"
- }
- }
- }
- logstash -f /etc/logstash/conf.d/java.conf -t
- systemctl restart logstash
es插件中查看
3.通过TCP收集日志
TCP收集日志使用场景
有一台服务器A只需要收集一个日志,那么我们就可以不需要在这服务器上安装logstash,我们通过在其他logstash上启用tcp模块,监听某个端口,然后在服务器A上把日志通过nc发送到logstash上即可.
a.elk2上配置测试TCP模块
- cat /etc/logstash/conf.d/tcp.conf
- input {
- tcp{
- port => "5600" #监听5600端口
- mode => "server" #模式为server
- type => "tcplog" #类型为tcplog
- }
- }
- output {
- stdout {
- codec => rubydebug
- }
- }
- # elk1节点上安装nc命令,并发送日志到elk2
- yum -y install nc
- echo "hello world" | nc 10.0.0.33 5600
- # elk2终端上查看日志输出信息:
- /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/tcp.conf
- {
- "@timestamp" => 2019-02-07T00:59:49.356Z,
- "port" => 57902,
- "@version" => "1",
- "host" => "linux-elk1",
- "@metdata" => {
- "ip_address" => "10.0.0.22"
- },
- "message" => "hello world",
- "type" => "tcplog"
- }
- # 可以看到linux-elk2上有监听5600端口
- netstat -tunlp |grep 5600
- # 还可以将某个文件发送到nc
- nc 10.0.0.33 5600 < /etc/passwd
- # 也可以通过这种方式伪设备的方式发送日志
- echo "222" > /dev/tcp/10.0.0.33/5600
b.配置logstash,通过TCP收集数据,输出到elasticsearch
- vim /etc/logstash/conf.d/tcp.conf
- input {
- tcp{
- port => "5600"
- mode => "server"
- type => "tcplog"
- }
- }
- output {
- elasticsearch {
- hosts => ["10.0.0.33:9200"]
- index => "tcp-test-%{+YYYY.MM.dd}"
- }
- }
- systemctl restart logstash
在elk1上向elk2发送数据:nc 10.0.0.33 5600 < /etc/passwd
java日志收集:http://blog.51cto.com/jinlong/2055424
通过TCP收集日志:http://blog.51cto.com/jinlong/2056521
ELK之收集Java日志、通过TCP收集日志的更多相关文章
- ELKStack入门篇(二)之Nginx、Tomcat、Java日志收集以及TCP收集日志使用
1.收集Nginx的json格式日志 1.1.Nginx安装 [root@linux-node1 ~]# yum install nginx -y [root@linux-node1 ~]# vim ...
- ELK学习实验017:filebeat收集java日志
收集JAVA格式日志 1 查看Java格式日志 elasticsearch属于Java日志,可以收集elasticsearch作为Java日志范本 [root@node3 ~]# tail -f /u ...
- 第六章·Logstash深入-收集java日志
1.通过Logstash收集java日志并输出到ES中 因为我们现在需要用Logstash收集tomcat日志,所以我们暂时将tomcat安装到Logstash所在机器,也就是db03:10.0.0. ...
- 使用logstash收集java、nginx、系统等常见日志
目录 1.使用codec的multiline插件收集java日志... 1 2.收集nginx日志... 2 3.收集系统syslog日志... 3 4.使用fliter的grok模块收集mysql日 ...
- logstash收集TCP端口日志
logstash收集TCP端口日志官方地址:https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html ...
- 从0搭建一个基于 ELK 的日志、指标收集与监控系统
为了使得私有化部署的系统能更健壮,同时不增加额外的部署运维工作量,本文提出了一种基于 ELK 的开箱即用的日志和指标收集方案. 在当前的项目中,我们已经使用了 Elasticsearch 作为业务的数 ...
- ELK 收集 Tomcat日志以及修改Tomcat日志格式
ELK 收集 Tomcat日志以及修改Tomcat日志格式 Tomcat日志 想要收集tomcat 日志 首先我们要对tomcat的日志有足够的了解 tomca日志分类 简单的说tomcat logs ...
- 用Kibana和logstash快速搭建实时日志查询、收集与分析系统
Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志. kibana ...
- 精心收集java基础106条
Java基础 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 一个Java源文件中可以定义多个类,但最多只能定义一个public的类,并且public ...
随机推荐
- C# NotifyIcon 托盘控件
右下角以图标形式显示,双击图标显示界面,最小化界面时不显示在任务栏. 第一步:在界面上添加NotifyIcon控件. 第二步:设置notifyIcon1的属性,添加图标,将Visible设为true. ...
- Python9-事件及队列-day37
信号量 from multiprocessing import Process from multiprocessing import Semaphore import time import ran ...
- List删除元素
在单线程环境下的解决办法 public void remove() { if (lastRet == -1) throw new IllegalStateException(); checkForCo ...
- NSNotificationCenter的用法
作用:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的. 注册通知:即要在什么地方接受消息 [[NSNotificationCenter defaultCenter] ...
- Ice cream samples Gym - 101670G 滑动扫描
题目:题目链接 思路:比赛中读错了题,题目要求选一个连续区间,却读成了随便选取几个柜台,英语要好好学啊,读懂题就很简单了,扫一遍就出结果了 AC代码: #include <iostream> ...
- Leetcode 75. 颜色分类
题目链接 https://leetcode-cn.com/problems/sort-colors/description/ 题目描述 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们 ...
- [转] vuex最简单、最直白、最全的入门文档
前言 我们经常用element-ui做后台管理系统,经常会遇到父组件给子组件传递数据,下面一个简单的例子,点击按钮,把弹框显示变量数据通过子组件的props属性传递,子组件通过$emit事件监听把数据 ...
- 令人惊叹的Npm工具包
1.http-server (简单搭建http服务器) 2.json-server (JSON服务器,快速搭建resful api接口) 3.cssnano (css多功能优化工具) PS:比uncs ...
- Jeddict研究过程中的总结
一.与作者交流的总结 说来也是惭愧,没有太多的经验,先给大家贴两张图,看看大家能不能发现问题: 在最开始的时候,都处于Gaurav Gupta让我给材料的过程,因为我不是缺这个就是缺那个,根本说不清楚 ...
- 九度oj 题目1465:最简真分数
题目描述: 给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合. 输入: 输入有多组,每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000. ...