...
 
Commits (8)
VERSION=0.3.1+uninett2 VERSION=0.3.1+uninett5
# By default, all dependencies (zeromq, etc) will be downloaded and installed # By default, all dependencies (zeromq, etc) will be downloaded and installed
# locally. You can change this if you are deploying your own. # locally. You can change this if you are deploying your own.
...@@ -6,7 +6,7 @@ VERSION=0.3.1+uninett2 ...@@ -6,7 +6,7 @@ VERSION=0.3.1+uninett2
VENDOR= VENDOR=
# Where to install to. # Where to install to.
PREFIX?=/opt/logstash-forwarder PREFIX?=/usr/local/logstash-forwarder
FETCH=sh fetch.sh FETCH=sh fetch.sh
MAKE?=make MAKE?=make
...@@ -44,22 +44,25 @@ vendor-clean: ...@@ -44,22 +44,25 @@ vendor-clean:
$(MAKE) -C vendor/zeromq/ clean $(MAKE) -C vendor/zeromq/ clean
$(MAKE) -C vendor/zlib/ clean $(MAKE) -C vendor/zlib/ clean
rpm deb: PREFIX=/opt/logstash-forwarder rpm: OS=lsb
deb: OS=debian
rpm deb: PREFIX=/usr/local/logstash-forwarder
rpm deb: | build-all rpm deb: | build-all
fpm -s dir -t $@ -n logstash-forwarder -v $(VERSION) \ fpm -s dir -t $@ -n logstash-forwarder -v $(VERSION) \
--replaces logstash-forwarder \ --replaces logstash-forwarder \
--after-install logstash-forwarder.postinst \ --after-install logstash-forwarder.$(OS).postinst \
--after-remove logstash-forwarder.remove \ --after-remove logstash-forwarder.$(OS).remove \
--exclude '*.a' --exclude 'lib/pkgconfig/zlib.pc' \ --exclude '*.a' --exclude 'lib/pkgconfig/zlib.pc' \
--description "a log shipping tool" \ --description "a log shipping tool" \
--url "https://github.com/elasticsearch/logstash-forwarder" \ --url "https://github.com/elasticsearch/logstash-forwarder" \
build/bin/logstash-forwarder=$(PREFIX)/bin/ \ build/bin/logstash-forwarder=$(PREFIX)/bin/ \
build/bin/logstash-forwarder.sh=$(PREFIX)/bin/ \ build/bin/logstash-forwarder.sh=$(PREFIX)/bin/ \
logrouter_uninett.pem=/etc/ssl/certs/ \ uninett-ca.pem=/etc/ssl/certs/ \
logstash-forwarder.conf=/etc/logstashforwarder/config.json.example \ logstash-forwarder.conf=/etc/logstashforwarder/config.json.example \
logstash-forwarder.default=/etc/default/logstash-forwarder \ logstash-forwarder.default=/etc/default/logstash-forwarder \
logstash-forwarder.logrotate=/etc/logrotate.d/logstash-forwarder \ logstash-forwarder.logrotate=/etc/logrotate.d/logstash-forwarder \
logstash-forwarder.init=/etc/init.d/logstash-forwarder logstash-forwarder.$(OS).init=/etc/init.d/logstash-forwarder
# Vendor'd dependencies # Vendor'd dependencies
# If VENDOR contains 'zeromq' download and build it. # If VENDOR contains 'zeromq' download and build it.
......
...@@ -134,7 +134,7 @@ Or: ...@@ -134,7 +134,7 @@ Or:
If you don't use rpm or deb make targets as above, you can skip this section. If you don't use rpm or deb make targets as above, you can skip this section.
Packages install to `/opt/logstash-forwarder`. Packages install to `/usr/local/logstash-forwarder`.
There are no run-time dependencies. There are no run-time dependencies.
......
-----BEGIN CERTIFICATE-----
MIIFXTCCA0WgAwIBAgIJAI6KBv1kEwH/MA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDE2MjAyMjUxWhcNMTQwNTE2MjAyMjUxWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAxAKjlcgtWj7NlN3WF2IcWKqE+O03mSiSoxomAjQrn4iB9fvUrV4j7l32
rUQutqyGEnlaaYWMKrTTTG0urJq/uiQApOdWYjN/fmbTKurnF4X6+oSoWlCI4qOh
3BJTEYK2DUWKmxddOpzxntoS+zIjeBb0HImzOulcEKKOSJZ05PIrIEmv6nFjb5na
Nsnt/ycrCDPD//wSgPuw2RV19eJ0rnL1cHmojFZujM9FWgpu8pD0AQSBsCU+sBsT
9SErvW0VMeoJ59GIT67Qp9bZXrn6gszL7XyOB3mBLdNFDNP9Lmp/cNFjjmQY3viY
JriAZxjovW5ef6mN9LzNapudS0f1be+iFOZlgUXXT0jRIGEGaNGWLDKWEDv1jm1I
7YIc2RI0dIdyrpZlUeHQfb9iozaGiz9y6KV6F6taFNcIx9mGCt9HaHnb2Vne8aS+
5ydS9KfdPiVU+b2Qx0mmixcMgJ9BuBicmMnbhNPZHR1qped3EuajHDCu8ncjSHC4
RFn7j4LuyOe5C6kaMK6ECBl8ok7OKzhiIKnt6byqR4kc330rS93MshqvtCQFAGOT
AbLEYlFmcX3TTpMay0sksdOV8e04tUieIC1LWeMJs1iGVWElBQ0S0Np/EwPxOIN3
39OFgC4xrJYdV+6wgEE4wfGrb1pa2RvIFGxkZ+BILHAUe8VLohUCAwEAAaNQME4w
HQYDVR0OBBYEFEslxzDq8EjFuN6pBq81atQKcuVWMB8GA1UdIwQYMBaAFEslxzDq
8EjFuN6pBq81atQKcuVWMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggIB
AMDIwFd+uRzEbXy8xXDufYgs466u5mq1ZsdpUtH/hYo8lVSOTlJS1Dd6LAX+Ir+B
ePtubH4J1ijH9DjnKrpftUCz9cWOOguYmmeYDq3rSEi1m2x3HNgt6OhnlkEVDbLM
noWMWZ86Gxnns43gpvOybAYdosjwgBJMFJd5oNx4Q7GEZTj09H+13v+Yw3BVoeiV
6C5kO6wT9UOK18xQcWZ573UbPzzM8HjfyoNBR4x+gnPAWt9c5Dq4vZLrSS58jIyh
C1Pa5OAdt0B/6EOZ+eUjQ8dHvwFyIRzI+Jn0/4tt2QSsDB0xLnLvRATnY0zLoygg
iX2bXleeyAVeqpOSljHZupOYwiq7zeWYLaoWHSzDUOjmClyBMbBFgh3odzWlq8il
rThvfx27m1Mu9hXEtixhfajr5XS5HehPO4BE0wBxYBofl//m3hSLShu6csAPmiYF
VETNtULLv4HEZz0LQwf2tbhkfBGd3FlUf9M23K+Md3+ADMsSkiyNCjUhY0STJpkY
tvPqYyFiuVDEo7x4hZgcjBpNXtAv/7UXBVL/N2CrdnWGWNmZtt86mJX54xqfcRGL
4HU5c/dxLjzaS0wh7vb0L4gZxKJ0yNqGdVO5FQTiF/Dx5I6k1ZuKbpKS5lk+YQaU
C4jImUvN5+QBVWV0t2B0yMk/AAnsm777qxdT4qhydXNt
-----END CERTIFICATE-----
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
"comment": "forwarder will choose one at random and will switch to next", "comment": "forwarder will choose one at random and will switch to next",
"servers": [ "localhost:5000","localhost1:5000" ], "servers": [ "localhost:5000","localhost1:5000" ],
"ssl ca": "/etc/ssl/certs/logrouter_uninett.pem", "ssl ca": "/etc/ssl/certs/uninett-ca.pem",
"timeout": 10 "timeout": 20
}, },
"comment": "Here you specify the log file you want to monitor", "comment": "Here you specify the log file you want to monitor",
"comment": "and ship them to log cluster to process", "comment": "and ship them to log cluster to process",
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
PATH=/sbin:/usr/sbin:/bin:/usr/bin PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="log shipper" DESC="log shipper"
NAME=logstash-forwarder NAME=logstash-forwarder
DAEMON=/opt/logstash-forwarder/bin/logstash-forwarder DAEMON=/usr/local/logstash-forwarder/bin/logstash-forwarder
DAEMON_ARGS="-config /etc/logstashforwarder/config.json -spool-size 100 -log-to-syslog" DAEMON_ARGS="-config /etc/logstashforwarder/config.json -spool-size 100 -log-to-syslog"
PIDFILE=/var/run/$NAME.pid PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME SCRIPTNAME=/etc/init.d/$NAME
......
...@@ -5,5 +5,8 @@ ...@@ -5,5 +5,8 @@
missingok missingok
delaycompress delaycompress
compress compress
postrotate
/etc/init.d/logstash-forwarder restart >/dev/null
endscript
} }
#! /bin/sh
### BEGIN INIT INFO
# Provides: logstash-forwarder
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: UNINETT LAaaS Log Shipper LSB
# Description: Ship logfiles to the UNINETT LAaaS service
### END INIT INFO
# Author: Jordan Sissel <jordan.sissel@dreamhost.com>
# Author: Jørn Åne de Jong <jorn.dejong@uninett.no>
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="log shipper"
NAME=logstash-forwarder
DAEMON=/usr/local/logstash-forwarder/bin/logstash-forwarder
DAEMON_ARGS="-config /etc/logstashforwarder/config.json -spool-size 100 -log-to-syslog"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
LOGFILE=/var/log/$NAME.log
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
if [[ -f /lib/lsb/init-functions ]]; then
. /lib/lsb/init-functions
elif [[ -f /etc/init.d/functions ]]; then
. /etc/init.d/functions
else
echo "Linux LSB init function script or Redhat /etc/init.d/functions is required for this script."
echo "See http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html"
exit 1
fi
COMMAND="cd /var/run; exec $DAEMON $DAEMON_ARGS"
do_start() {
if [ -z "$DAEMON" ]; then
echo "not found - $DAEMON"
exit 1
fi
if pidofproc -p "$PIDFILE" "$DAEMON" >/dev/null; then
exit 0
fi
exec $DAEMON $DAEMON_ARGS >> $LOGFILE 2>&1 < /dev/null &
RETVAL=$?
local PID=$!
usleep 500000
echo $PID > $PIDFILE
}
do_stop()
{
killproc -p $PIDFILE $DAEMON
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${PIDFILE}
}
case "$1" in
start)
echo "Starting $DESC" "$NAME"
do_start
;;
stop)
echo "Stopping $DESC" "$NAME"
do_stop
;;
status)
echo -n "Status of $DESC"
status -p $PIDFILE
exit $?
;;
restart|force-reload)
echo "Restarting $DESC" "$NAME"
do_stop
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
:
#! /bin/sh
chkconfig --add logstash-forwarder
service logstash-forwarder restart
#! /bin/sh
service logstash-forwarder stop
chkconfig --del logstash-forwarder
...@@ -7,7 +7,6 @@ import ( ...@@ -7,7 +7,6 @@ import (
"crypto/x509" "crypto/x509"
"encoding/binary" "encoding/binary"
"encoding/pem" "encoding/pem"
"fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"log" "log"
...@@ -20,7 +19,7 @@ import ( ...@@ -20,7 +19,7 @@ import (
) )
var hostname string var hostname string
var hostport_re, _ = regexp.Compile("^(.+):([0-9]+)$") var hostport_re, _ = regexp.Compile(`^\[?([^]]+)\]?:([0-9]+)$`)
func init() { func init() {
log.Printf("publisher init\n") log.Printf("publisher init\n")
...@@ -180,7 +179,7 @@ func connect(config *NetworkConfig) (socket *tls.Conn) { ...@@ -180,7 +179,7 @@ func connect(config *NetworkConfig) (socket *tls.Conn) {
} }
address := addresses[rand.Int()%len(addresses)] address := addresses[rand.Int()%len(addresses)]
addressport := fmt.Sprintf("%s:%s", address, port) addressport := net.JoinHostPort(address, port)
log.Printf("Connecting to %s (%s) \n", addressport, host) log.Printf("Connecting to %s (%s) \n", addressport, host)
......
-----BEGIN CERTIFICATE-----
MIIEbzCCA1egAwIBAgIJAJAhu7l6dg+nMA0GCSqGSIb3DQEBBQUAMEoxCzAJBgNV
BAYTAk5PMRMwEQYDVQQKEwpVTklORVRUIEFTMSYwJAYDVQQDEx1VTklORVRUIENl
cnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMDAyMDYwMDEyMzBaFw0yMDAyMDQwMDEy
MzBaMEoxCzAJBgNVBAYTAk5PMRMwEQYDVQQKEwpVTklORVRUIEFTMSYwJAYDVQQD
Ex1VTklORVRUIENlcnRpZmljYXRlIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAK2+21jlJLycaCgg6TBo+i37DkWvW4UR3ptLzQAQfBuO
SfPBPG9zXhmn0z/gNWfpbAwETiW+2oTcSKz/XJ0Ej1dFnySNWBnNb6rOY7GrTAvk
RfDbpacQATPwg9RnvBs4xR+6TGNLcYjcyEnjF+Xd29aRzH/rFkJHq2pM6rT5BpSc
Q4n1DrB2y+E812UjDYhx8KnD9Zh+83wpa3tMRI5J9n7AuqrBThS4xudCAcJLMyu3
KTEnBpRMRfduVyndPTJe+EVcp3XBip41Biza73ZFScqMDFfskc2jT3XV3Tz+0Act
g56m+JirRtcQc8lP7o/P6BXTRmIfeXbHuX7/BSE+AXECAwEAAaOCAVYwggFSMB0G
A1UdDgQWBBQlxqCOiIgff64MlbIUojA2QgTzTjB6BgNVHSMEczBxgBQlxqCOiIgf
f64MlbIUojA2QgTzTqFOpEwwSjELMAkGA1UEBhMCTk8xEzARBgNVBAoTClVOSU5F
VFQgQVMxJjAkBgNVBAMTHVVOSU5FVFQgQ2VydGlmaWNhdGUgQXV0aG9yaXR5ggkA
kCG7uXp2D6cwDAYDVR0TBAUwAwEB/zAbBgNVHREEFDASgRBkcmlmdEB1bmluZXR0
Lm5vMDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9jYS51bmluZXR0Lm5vL3VuaW5l
dHQtY2EtY3JsLnBlbTAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6
Ly9vY3NwLnVuaW5ldHQubm8vMBsGA1UdEgQUMBKBEGRyaWZ0QHVuaW5ldHQubm8w
DQYJKoZIhvcNAQEFBQADggEBAA9/27nksOl8d7uwi8Ce0u8WOpwDnwUUdYu0/1U9
1bG+bVxFL/rmenLVJJ9vaU0jxa/xHG2r8Q1RvIz1OqGX8XpbzB9cIB2Bj4kIJ+wg
+pHroH9hmhJkf1gxMphtcZL3B2KAAc1B27ZchEJifFJuvL+wghAWVh0iwxhul5JO
gDH0cXwvNyjRJjR70uvpU2YmRhNunqhU6hd89HPZpSybq5LU939i5HSnSgAsqQmO
SCt0APlJNlJ/y5UWxMBO9ayycIuSHbORBJ8ZnXHw3yScbIEioqvAaDJNQUTNw8Pn
n/dq6ffTELCFs/4QBOz7av0IxjnemYuCzgUZmb+YPhYKW+c=
-----END CERTIFICATE-----