Ori.livneh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/154271
Change subject: MediaWiki/HHVM: log fatals to fluorine:/a/mw-log/hhvm-fatal.log
......................................................................
MediaWiki/HHVM: log fatals to fluorine:/a/mw-log/hhvm-fatal.log
* Remove hstr Python script. It's not useful at the moment. It can always be
ressurected later.
* Set HHVM_TRACE_HANDLER to "/usr/bin/logger --tag hhvm-fatal --file ".
This will log the fatal to syslog with the 'hhvm-fatal' tag.
* Configure MediaWiki to forward syslog messages tagged with 'hhvm-fatal' to
fluorine.
* Rename syslog.pp's 'apache_log_aggregator' parameter to 'log_aggregator', to
make it clear that it is not Apache-specific.
Change-Id: I98f9fc20cbe9c32ddee04a77427e06446e2f6de1
---
M manifests/role/beta.pp
M manifests/role/mediawiki.pp
D modules/hhvm/files/hstr
M modules/hhvm/manifests/init.pp
M modules/hhvm/templates/hhvm.default.erb
M modules/mediawiki/manifests/syslog.pp
D modules/mediawiki/templates/apache/rsyslog.conf.erb
A modules/mediawiki/templates/rsyslog.conf.erb
8 files changed, 28 insertions(+), 92 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/71/154271/1
diff --git a/manifests/role/beta.pp b/manifests/role/beta.pp
index 2c2c8c7..a779fd8 100644
--- a/manifests/role/beta.pp
+++ b/manifests/role/beta.pp
@@ -91,7 +91,7 @@
include ::beta::common
class { '::mediawiki::syslog':
- apache_log_aggregator => 'deployment-bastion.eqiad.wmflabs:8420',
+ log_aggregator => 'deployment-bastion.eqiad.wmflabs:8420',
}
class { '::mediawiki::php':
diff --git a/manifests/role/mediawiki.pp b/manifests/role/mediawiki.pp
index b7472bb..952e75d 100644
--- a/manifests/role/mediawiki.pp
+++ b/manifests/role/mediawiki.pp
@@ -45,8 +45,8 @@
}
$log_aggregator = 'fluorine.eqiad.wmnet:8420'
- class { '::mediawiki::php': fatal_log_file => "udp://${log_aggregator}" }
- class { '::mediawiki::syslog': apache_log_aggregator => $log_aggregator }
+ class { '::mediawiki::php': fatal_log_file => "udp://${log_aggregator}"
}
+ class { '::mediawiki::syslog': log_aggregator => $log_aggregator }
}
class role::mediawiki::webserver( $pool, $workers_limit = undef ) {
diff --git a/modules/hhvm/files/hstr b/modules/hhvm/files/hstr
deleted file mode 100755
index b959fc5..0000000
--- a/modules/hhvm/files/hstr
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
- HHVM stack trace reporter
-
- Usage: hstr stacktrace.XXX.log
-
- The path to this script can be set as the value for $HHVM_TRACE_HANDLER
- in /etc/default/hhvm.
-
-"""
-import sys
-reload(sys)
-sys.setdefaultencoding('utf-8')
-
-import ast
-import re
-
-
-cpp_trace_re = re.compile(r'^#[\d\s]+(?P<context_line>.+?) at (?P<abs_path>'
- r'[^\]]+?):(?P<lineno>[^\]]+?)$', re.M)
-php_trace_re = re.compile(r'^#[\d\s]+(?P<context_line>.+?) called at '
- r'\[(?P<abs_path>.*?):(?P<lineno>\d+?)\]$', re.M)
-
-
-def auto_cast(literal):
- """Cast numeric strings to the appropriate type."""
- try:
- return ast.literal_eval(literal)
- except (ValueError, SyntaxError):
- return literal
-
-
-if '-h' in sys.argv or '--help' in sys.argv or len(sys.argv) != 2:
- sys.exit('Usage: hstr stacktrace.XXX.log')
-
-with open(sys.argv[1], 'rt') as f:
- raw = f.read()
-
-data = {k: auto_cast(v) for k, v in re.findall(r'^(\w+): ([^\n]+)', raw, re.M)}
-data['cpp_trace'] = [{k: auto_cast(v) for k, v in m.groupdict().items()}
- for m in cpp_trace_re.finditer(raw)]
-data['php_trace'] = [{k: auto_cast(v) for k, v in m.groupdict().items()}
- for m in php_trace_re.finditer(raw)]
-
-
-# XXX: do something useful!
-print data
diff --git a/modules/hhvm/manifests/init.pp b/modules/hhvm/manifests/init.pp
index f9a56b4..948da27 100644
--- a/modules/hhvm/manifests/init.pp
+++ b/modules/hhvm/manifests/init.pp
@@ -191,14 +191,6 @@
mode => '0555',
}
- file { '/usr/local/bin/hstr':
- source => 'puppet:///modules/hhvm/hstr',
- owner => 'root',
- group => 'root',
- mode => '0555',
- before => Service['hhvm'],
- }
-
file { '/usr/local/sbin/hhvm-dump-debug':
source => 'puppet:///modules/hhvm/hhvm-dump-debug',
owner => 'root',
diff --git a/modules/hhvm/templates/hhvm.default.erb
b/modules/hhvm/templates/hhvm.default.erb
index 4524c38..37cde3b 100644
--- a/modules/hhvm/templates/hhvm.default.erb
+++ b/modules/hhvm/templates/hhvm.default.erb
@@ -9,4 +9,4 @@
# If set to an executable, that executable will be invoked with the path
# to a stack trace as an argument whenever HHVM crashes.
-HHVM_TRACE_HANDLER="/usr/local/bin/hstr"
+HHVM_TRACE_HANDLER="/usr/bin/logger --tag hhvm-fatal --file "
diff --git a/modules/mediawiki/manifests/syslog.pp
b/modules/mediawiki/manifests/syslog.pp
index 85465f7..3a543c1 100644
--- a/modules/mediawiki/manifests/syslog.pp
+++ b/modules/mediawiki/manifests/syslog.pp
@@ -1,14 +1,15 @@
# syslog instance and configuration for applicationservers
-class mediawiki::syslog( $apache_log_aggregator ) {
- file { '/etc/logrotate.d/mediawiki_apache':
- source => 'puppet:///modules/mediawiki/logrotate.d_mediawiki_apache',
- owner => 'root',
- group => 'root',
- mode => '0444',
+class mediawiki::syslog( $log_aggregator ) {
+ rsyslog::conf { 'mediawiki':
+ content => template('mediawiki/rsyslog.conf.erb'),
+ priority => 40, # before 50-default.conf
}
- rsyslog::conf { 'mediawiki_apache':
- content => template('mediawiki/apache/rsyslog.conf.erb'),
- priority => 40,
+ file { '/etc/logrotate.d/mediawiki_apache':
+ source => 'puppet:///modules/mediawiki/logrotate.d_mediawiki_apache',
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ before => Rsyslog::Conf['mediawiki'],
}
}
diff --git a/modules/mediawiki/templates/apache/rsyslog.conf.erb
b/modules/mediawiki/templates/apache/rsyslog.conf.erb
deleted file mode 100644
index fa62426..0000000
--- a/modules/mediawiki/templates/apache/rsyslog.conf.erb
+++ /dev/null
@@ -1,23 +0,0 @@
-# rsyslog configuration for MediaWiki on Apache
-# This file is managed by Puppet
-
-# Emulate MediaWiki's wfDebugLog / wfErrorLog format
-$template MediaWiki,"%programname% %timegenerated% %HOSTNAME%: %msg%\n"
-
-# Maximum 100MB log file size
-$outchannel apache2,/var/log/apache2.log,100000000,/usr/sbin/logrotate -f
/etc/logrotate.d/mediawiki_apache
-
-# Send apache2 messages to the apache output channel
-:programname,isequal,"apache2" $apache2
-
-# ..and to the MediaWiki log aggregator
-& @<%= @apache_log_aggregator %>;MediaWiki
-
-# Discard apache2 messages before they get to 50-default.conf
-& ~
-
-# Send HHVM messages to the MediaWiki log aggregator
-:programname,isequal,"hhvm" @<%= @apache_log_aggregator %>;MediaWiki
-
-# Discard HHVM messages before they get to 50-default.conf
-& ~
diff --git a/modules/mediawiki/templates/rsyslog.conf.erb
b/modules/mediawiki/templates/rsyslog.conf.erb
new file mode 100644
index 0000000..8b98f77
--- /dev/null
+++ b/modules/mediawiki/templates/rsyslog.conf.erb
@@ -0,0 +1,14 @@
+# rsyslog configuration for MediaWiki
+# This file is managed by Puppet
+
+# Emulate MediaWiki's wfDebugLog / wfErrorLog format
+$template MediaWiki,"%programname% %timegenerated% %HOSTNAME%: %msg%\n"
+
+# Forward Apache to /var/log/apache2.log and log aggregator.
+# Rotate /var/log/apache2.log when it exceeds 100MB.
+$outchannel apache2,/var/log/apache2.log,100000000,/usr/sbin/logrotate -f
/etc/logrotate.d/mediawiki_apache
+:programname,isequal,"apache2" $apache2 @<%= @log_aggregator %>;MediaWiki ~
+
+# Forward HHVM logs and stack traces to log aggregator.
+:programname,isequal,"hhvm" @<%= @log_aggregator %>;MediaWiki ~
+:syslogtag,isequal,"hhvm-fatal:" @<%= @log_aggregator %>;MediaWiki ~
--
To view, visit https://gerrit.wikimedia.org/r/154271
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I98f9fc20cbe9c32ddee04a77427e06446e2f6de1
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ori.livneh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits