Sziasztok,
rsyslog kimenetet szeretnek logstashelni:
2015-06-30T04:02:01-05:00 <authpriv.notice> hostname nobody : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/opt/apps/nagios/libexec/check_mailq -w 300 -c 500 -M sendmail
Sehogy sem akar mukodni. Meg a timestamp sem jo. Total megakadtam. Valakinek van mukodo rsyslog filetere esetleg?
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{DATA:syslog_program} %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ" ]
}
}
}
- 1667 megtekintés
Hozzászólások
En ezt hasznalom (kivonat):
if [type] == "syslog" {
grok {
match => { "message", "<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
}
syslog_pri {
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
- A hozzászóláshoz be kell jelentkezni
de ez sehogy nem illeszkedik a rfc3339 idore aminek ilyen a formaja: 2015-06-30T04:02:01-05:00
- A hozzászóláshoz be kell jelentkezni
igazabol ennek nem neztem utana, szerintem doksibol vettem a sort anno, regen volt, azota mukodik, tobb kerdesem nem volt :)
- A hozzászóláshoz be kell jelentkezni
"syslog-ng feldolgozas logstash-el"
vs
"rsyslog kimenetet"
Ezt gyorsan dontsd el, mert a ket proginak mas a datumformatuma, es maskepp kell felparsolni azt.
A peldadban adott datumformatum pedig erosen gyanus, hogy semmilyen syslog ajanlasnak nem felel meg, azt nem is fogod tudni erdemben felparsoltatni.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Jap, tenyleg syslog-ng-t irtam, de rsyslog, mint ahogy az a DEFAULT formatumbol latszik a belinkelt soron. Az rfc3339 idoformatumhoz egy kis referencia http://www.rsyslog.com/doc/property_replacer.html.
- A hozzászóláshoz be kell jelentkezni
404
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
A datum ISO8601, es RFC5424-nek is megfelel.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Elhiszem, hogy megfelel az RFC-nek, de en pont amiatt szoptam sokat a logstash-sal is meg a greyloggal is, mert a datumot sehogy nem akarta egyik se megenni tisztessegesen.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Mert a LogStash buta. RFC5424 syslog -nak a datum megfelel. Arra reagaltam, hogy azt irtad:
A peldadban adott datumformatum pedig erosen gyanus, hogy semmilyen syslog ajanlasnak nem felel meg, azt nem is fogod tudni erdemben felparsoltatni.
Pedig de. Csak valamiert par modern csilivili cucc ugy gondolja, hogy a standard datum formatum (ISO8601) valamiert nem jo nekik, es olyat hasznalnak, ami kisebb felbontasu, vagy nincs benne timezone, vagy app-specifikus, vagy valami egyeb sebbol verzik.
--
|8]
- A hozzászóláshoz be kell jelentkezni
TIMESTAMP_ISO8601 fog neked kelleni SYSLOGTIMESTAMP helyett. Nomeg syslog_program es syslog_hostname pont nem ebben, hanem ellenkezo sorrendben van.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Es valoban, a vonatkozo dokumentaciot is megtalaltam. http://logstash.net/docs/1.1.5/filters/date
Kiprobalni meg nem volt idom, de hamarosan :)
Koszi!
- A hozzászóláshoz be kell jelentkezni
Amugy a syslog_program nem volt felcserelve, csak elfelejtettem, hogy a drupal megeszi a "kacsacsort" :)
ki lehet banayszni a severity-t meg a programnevet belole?
- A hozzászóláshoz be kell jelentkezni
A peldaban a datum utan fac.priv jon, aztan hostname. A grok patternben viszont datum utan program, es utana hostname. Ez igy szerintem nem kerek :)
Kozben talaltam ezt: https://github.com/logstash-plugins/logstash-input-syslog/issues/15
Eszerint RFC5424 tamogatas logstashben kb nincsen. A kovetkezok valamelyiket tudnam esetleg javasolni:
- allitsd at rsyslogot, hogy rfc3164-et kuldjon inkabb.
- allitsd at rsyslog-ot, hogy kozvetlenul ElasticSearch-be kuldjon, logstash kihagyasaval
- Ha 2) nem megy, akkor ugyanez syslog-ng-vel
A LogStash kihagyasa egy teljesen jarhato ut, ha syslog parsolason kivul nem sok mast csinalsz vele. Vagy ha ami mast csinalsz, azt az rsyslog/syslog-ng parossal is meg lehet (kenyelmesen) csinalni - sokmindent meg lehet. Igy kozvetlenul Kibana ala tolod a cuccot, es nem kell a Grokkal szopni.
--
|8]
- A hozzászóláshoz be kell jelentkezni
En nem vagyok annyira szaki, de nalunk nincs semmi trukrozes az idovel...
Igy fest a "flow"
rsyslog -> haproxy -> logstash -> redis -> logstash -> vissza az elozo redisbe -> logstash -> elasticsearch....
Az egyetlen testcsel, hogy a redisbol redisbe pakolo logstash json-ba teszi vissza a dolgokat... de ugy latom mikor mar kiszedjuk a dolgokat a redisbol akkor is megvannak a field-ek... szerintem logstash ismeri mar az rsyslog-ot...
Vagy most igy kimarad nekem valami ? Miert kell a grok ?
- A hozzászóláshoz be kell jelentkezni
A grok a logstash resze, azert kell, hogy az rsyslog-logstash konverzio mukodhessen, hiszen az rsyslog alapban nem olyan JSON-ban logol, mint amilyen a redisbe fog kerulni.
"szerintem logstash ismeri mar az rsyslog-ot"
Na ez a problema. A logstash nem az rsyslogot ismeri kkonkretan, hanem altalanossagban a syslogot, es szerintem a fent irt datumformatummal nem tud mit kezdeni, mert normalisan nem igy neznek ki a syslog altal kikopott sorok.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
A grok reszevel tisztaban vagyok, viszont a mi configunkban nincs ilyen, es megis atmennek a logok ezen az egeszen rsyslog-tol elasticsearch-ig, es megvannak a field-ek az elastic-ban...
Vagy kihagyok valamit, vagy van 1xubb ut...
By the way: https://github.com/marczis/ESConsole
Ket napja altam neki, ha valakinek tetszik minden feeedback erdekel !
- A hozzászóláshoz be kell jelentkezni
A startup scripthez tipp:
#!/bin/sh
ME=$(readlink -f $0)
MYDIR=$(dirname "${ME}")
exec python "${MYDIR}/main.py" "$@"
Ez minden Linux platformon el fog induln igy, akarhova kerul symlinkelesre a startup script (esc) a rendszeren.
Valamint olvass utana a setuptools-nak, azzal sokkal szebben tudnad terjeszteni a cuccot.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Koszi !
A "terjeszteshez" ugy terveztem, hogy forditok / generalok rpm / deb-eket aztan vegyetek es egyetek, ha 1x eljut odaig a dolog, hogy komolyabb lesz... valojaban meg csak "preview peek" az egesz :)
Arra voltam kivancsi, hogy kell-e ez masnak is, de egyenlore nem kapok tul sok visszajelzest, kb. 3-an irtak G+-on discuss.elastic.co-n hogy jo 5let... de elmarad a "huha de hianyzik egy ilyen meg nekem" :D
- A hozzászóláshoz be kell jelentkezni
A setuptools segitsegevel instant tudsz deb/rpm/tgz disztrokat gyartani.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
klassz, megnezem kosszi !
- A hozzászóláshoz be kell jelentkezni