• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql_history_monitor

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

上篇加了bash_history的监控,这篇说mysql_history的监控。不像bash4,mysql自始至终没有提供过syslog的代码,只能自己通过守护进程去实时获取~/.mysql_history的记本文来源gaodai#ma#com搞*!代#%^码$网*录了。一个小脚本如下: #!/usr/bin/perl -wuse POE qw(Wheel::FollowTail);use Log::Syslog

上篇加了bash_history的监控,这篇说mysql_history的监控。不像bash4,mysql自始至终没有提供过syslog的代码,只能自己通过守护进程去实时获取~/.mysql_history的记录了。一个小脚本如下:

#!/usr/bin/perl -wuse POE qw(Wheel::FollowTail);use Log::Syslog::Fast qw(:all);defined(my $pid = fork) or die "Cant fork:$!";unless($pid){  }else{         exit 0;}POE::Session->create(    inline_states => {      _start => sub {        $_[HEAP]{tailor} = POE::Wheel::FollowTail->new(          Filename => "/root/.mysql_history",          InputEvent => "got_log_line",          ResetEvent => "got_log_rollover",        );      },      got_log_line => sub {#通过Data::Dumper看到实际是$_[10],不过在POE::Session里定义了sub ARG0 () { 10 };这样写起来简单了        to_rsyslog($_[ARG0]);      },      got_log_rollover => sub {        to_rsyslog('roll');      },    });POE::Kernel->run();exit;sub to_rsyslog {  $message = join' ',@_;#rsyslog开的是UDP的514端口;而LOG_LOCAL0和LOG_INFO都是syslog定义的,乱写的话会自动归入kernel | alert  my $logger = Log::Syslog::Fast->new(LOG_UDP, "10.0.0.123", 514, LOG_LOCAL0, LOG_INFO, "mysql_231", "mysql_monitor");  $logger->send($message ,time);};

当然,mysql的history其实不止一个位置,需要判断~


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql_history_monitor
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址