我正在尝试将多个错误消息源聚合到一个地方,以便更容易地将内容放到上下文中。我目前正在查看rsyslog,但是我可以更改它--如果它阻止了我做我想做的事情。
我的问题是,如何最好地处理mysql-slow.log和php5-fpm.log.slow的格式?
Php5-fpm.log.low中的一个示例条目是:
Oct 16 17:16:39.820707 [pool www] pid 13060
script_filename = /var/www/somesite/index.php
[0x0000000002f846c8] _path() /var/www/somesite/lib/Zend/Cache/Backend/File.php:895
[0x0000000002f844b0] _path() /var/www/somesite/lib/Zend/Cache/Backend/File.php:579
[0x0000000002f84210] _metadatasFile() /var/www/somesite/lib/Zend/Cache/Backend/File.php:545
[0x0000000002f83fb8] _loadMetadatas() /var/www/somesite/lib/Zend/Cache/Backend/File.php:479
[0x0000000002f830d0] _getMetadatas() /var/www/somesite/lib/Zend/Cache/Backend/File.php:750
[... Stack trace can be long, usually less than 30 lines ...]mysql的一个示例条目是:
# Time: 111017 7:20:17
# User@Host: someusername[someusername] @ [127.0.0.1]
# Thread_id: 183761313 Schema: somesitedb Last_errno: 0 Killed: 0
# Query_time: 13.705725 Lock_time: 0.000146 Rows_sent: 0 Rows_examined: 8315267 Rows_affected: 0 Rows_read: 18446744073709551491
# Bytes_sent: 1019 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0
# InnoDB_trx_id: B4BB5B67
use somesitedb;
SET timestamp=1318828817;
SELECT * FROM table;我想为每个条目发送一条syslog消息,并保持时间戳不变,因此更容易将所发生的事情关联起来。我怎样才能最好地做到这一点?
发布于 2011-10-24 18:25:37
我自己研究了这个问题,偶然发现了一个很酷的工具,名为洛格斯塔什。它可以很容易地配置为解析多行条目--而且它以一种非常干净的方式来实现它。
input {
file {
type => 'mysql-slow'
path => '/var/log/mysql/mysql-slow.log'
}
file {
type => 'php5-fpm-slow'
path => '/var/log/php5-fpm.log.slow'
}
}
filter {
multiline {
type => 'mysql-slow'
pattern => '^# Time: '
negate => true
what => 'previous'
}
multiline {
type => 'php5-fpm-slow'
pattern => '^
negate => true
what => 'previous'
}
}https://serverfault.com/questions/322070
复制相似问题