Beaver ay isang Python demonyo na munches sa logs at nagpapadala ng kanilang mga nilalaman sa logstash.
Pag-install
Paggamit ng PIP:
Mula Github:
buto ng bungang-kahoy-install ng Git + Git: //github.com/josegonzalez/beaver.git#egg=beaver
Mula PyPI:
buto ng bungang-kahoy-install Beaver == 1
Paggamit
paggamit:
Beaver [-h] [-r {manggagawa, interactive}] [-m {magbigkis, ikonekta}] [-p PATH]
& Nbsp; [- f FILES [FILES ...]] [-t transportasyon]
opsyonal na mga argumento:
-h, --help ipakita ang help mensahe at lumabas
-r {manggagawa, interactive}, {--run manggagawa, interactive}
& Nbsp; magpatakbo ng manggagawa o interactive na mode
-m {magbigkis, ikonekta}, {--mode magbigkis, ikonekta}
& Nbsp; magbigkis o mode na ikonekta
-p PATH, --path PATH landas upang mag-log ng mga file
-f FILES [FILES ...], --files FILES [FILES ...]
& Nbsp; espasyo ng kuwit FileList upang panoorin. Override --path
& Nbsp; argument
-t {amqp, redis, stdout}, {--transport amqp, redis, stdout}
& Nbsp; mag-log pamamaraan ng transportasyon
Background
Beaver ay nagbibigay ng isang lightweight na pamamaraan para sa pagpapadala ng lokal na mga file ng log na Logstash. Ginagawa nito ito gamit ang alinman sa redis, stdin, zeromq bilang transportasyon. Ang ibig sabihin nito kailangan mo ng redis, stdin, zeromq input sa isang lugar pababa ng kalsada upang makuha ang kaganapan.
Mga Kaganapan ay ipinapadala sa format na json_event logstash iyon. Mga Pagpipilian Maaari ring maitakda bilang kapaligiran variable.
Mga halimbawa
Halimbawa 1: Makinig sa lahat ng mga file sa default na path ng / var / mag-log sa standard out:
Beaver
Halimbawa 2: Ipinapadala ang mga log mula sa / var / log file sa isang listahan redis:
REDIS_URL = "redis: // localhost: 6379/0" Beaver -t redis
Halimbawa 3: Gumamit ng kapaligiran variable upang magpadala ng mga log mula sa / var / log file sa isang listahan redis:
REDIS_URL = "redis: // localhost: 6379/0" BEAVER_PATH = "/ var / mag-log" BEAVER_TRANSPORT = redis Beaver
Halimbawa 4: Zeromq pakikinig sa port 5556 (lahat ng mga interface):
ZEROMQ_ADDRESS = "TCP: // *: 5556" magbigkis Beaver -m
# Logstash config:
input {{zeromq
& Nbsp; type => 'embarkador-input'
& Nbsp; mode => 'kliyente'
& Nbsp; Topology => 'pushpull'
& Nbsp; address => 'TCP: // shipperhost: 5556'
& Nbsp;}}
output {{stdout-debug => totoo}}
Halimbawa 5: Zeromq sa pagkonekta sa remote port 5556 sa indexer:
ZEROMQ_ADDRESS = "TCP: // indexer: 5556" Beaver -m kumonekta
# Logstash config:
input {{zeromq
& Nbsp; type => 'embarkador-input'
& Nbsp; mode => 'server'
& Nbsp; Topology => 'pushpull'
& Nbsp; address => 'TCP: // *: 5556'
& Nbsp;}}
output {{stdout-debug => totoo}}
Ano ang bagong sa paglabas:
- Tiyakin na ang mga bagong file ay idinagdag sa isang transports configuration. Isinasara ang # 96. Isinasara # 101. [Jose Diaz-Gonzalez]
- Payagan ang mga numero ng float para sa update_file_mapping_time. [Jose Diaz-Gonzalez]
- Ayusin ang mga di-wastong pag-cast ng boolean na halaga. [Jose Diaz-Gonzalez]
- Magsagawa ng lahat ng mga conversion sa config.py. Isinasara ang # 99. [Jose Diaz-Gonzalez]
Ano ang bagong sa bersyon 16:
- Tukuyin ang maximum na laki queue ng 100 upang limitahan overrunning memory. [Jose Diaz-Gonzalez]
- Gamitin ang multiprocessing para sa paghawak ng mas malaking mga laki ng queue. [Jose Diaz- Gonzalez]
- Dati mayroong isyu kung saan ang mga file na na-update madalas tulad ng barnisan o server logs ay mapupuno ng mga walang muwang pagpapatupad ng file.readlines () sa loob ng Beaver. Ito ay magdudulot Beaver upang dahan-dahang basahin ang mas malaki at mas malaking bahagi ng isang file bago iproseso ang alinman sa mga linya, sa huli nagiging sanhi Beaver na kumuha ng magpakailanman upang iproseso ang mga linya log-in.
- patch na ito ay nagdadagdag ng kakayahan upang gamitin ang isang panloob na gawain ng queue para sa mga linya ng log. Sa tuwing file.readlines () ay tinatawag na, ang mga linya ay inilagay sa queue, na ibinahagi sa isang proseso ng bata. Ang proseso ng bata ay lumilikha ng sarili nitong transportasyon, nagpapahintulot sa amin upang potensyal na lumikha ng Proseso ng Pool sa hinaharap upang pangasiwaan ang isang mas malaking laki queue.
- Tandaan na ang pagtatakda ng mga file.readlines () pagbabasa sa masyadong maraming mga linya ay pa rin sa pag-iral, at maaaring patuloy na maging sanhi ng mga isyu para sa ilang mga file ng log.
- Magdagdag default redis_password sa BeaverConfig class. [Jose Diaz-Gonzalez]
- Ayusin ang mga nawawalang underscore na nagiging sanhi ng transportasyon upang masira. [Norman Joyner]
- Ipatupad ang redis auth suporta. [Norman Joyner]
- Magdagdag Beaver init script para sa daemonization mode. [Jose Diaz-Gonzalez]
- Gamitin ang python magtotroso kapag gumagamit ng StdoutTransport. [Jose Diaz-Gonzalez]
- Magdagdag ng maikling ARG flag para sa hostname at format. [Jose Diaz-Gonzalez]
- Magdagdag ng kakayahan upang daemonize. Isinasara ang # 79. [Jose Diaz-Gonzalez]
- Dumaan sa paligid ng isang magtotroso halimbawa sa lahat ng mga transports. [Jose Diaz-Gonzalez]
- Ibalik sa dati ang & quot; Naidagdag isang lightweight na klase & quot Kaganapan; [Jose Diaz-Gonzalez]
- Matapos ang masusing pag-iisip, Beaver ay sinadya upang maging & quot; liwanag timbang & quot ;. Hinahayaan kang umalis sa mabigat na pagpindot sa malaking lalaki.
- Ito reverts gumawa 1619d33ef4803c3fe910cf4ff197d0dd0039d2eb.
- Nagdagdag ng magaan na klase ng Kaganapan. [Jose Diaz-Gonzalez]
- nag-iisang pananagutan ng klase na ito ay ang pagproseso ng isang naibigay na linya tulad ng isang kaganapan. Ito ay hinaharap layunin ay upang kumilos bilang isang lightweight na pagpapatupad ng system ng filter sa loob ng Logstash
- Alisin argparse kinakailangan para sa python 2.7 at sa itaas. [Jose Diaz- Gonzalez]
Ano ang bagong sa bersyon 13:
- Ang Nakatakdang ilang mga variable na kapaligiran. [Jose Diaz-Gonzalez]
- SSH Tunnel Support. [Jose Diaz-Gonzalez]
- Ang code na ito ay dapat daan sa amin upang lumikha ng isang ssh tunnel sa pagitan ng dalawang natatanging mga server para sa mga layunin ng pagpapadala at pagtanggap ng data.
- Ito ay kapaki-pakinabang sa ilang mga kaso kung saan nais mong kung hindi man ay kailangang i-whitelist sa iyong Firewall o iptables setup, tulad ng kapag tumatakbo sa dalawang magkaibang rehiyon sa AWS.
- Payagan para sa unang koneksyon lag. Nakatutulong na kapag naghihintay para sa isang SSH proxy upang kumonekta. [Jose Diaz-Gonzalez]
- Ayusin ang isyu na kung saan ang ilang mga default config ay ng isang hindi wastong halaga. [Jose Diaz-Gonzalez]
- Payagan ang pagtukoy host sa pamamagitan ng flag. Isinasara ang # 70. [Jose Diaz-Gonzalez]
Mga Kinakailangan :
- Python
Mga Komento hindi natagpuan