ນີ້ແມ່ນຄໍາສັ່ງ grok ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
grok - parse logs, ຈັດການເຫດການ, ແລະເຮັດໃຫ້ຂໍ້ຄວາມທີ່ບໍ່ມີໂຄງສ້າງຂອງທ່ານ.
ສະຫຼຸບສັງລວມ
grok [-d] -f configfile
ລາຍລະອຽດ
Grok ແມ່ນຊອບແວທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດແຍກແຍະບັນທຶກ ແລະໄຟລ໌ອື່ນໆໄດ້ຢ່າງງ່າຍດາຍ. ດ້ວຍ grok, ທ່ານສາມາດເຮັດໄດ້
ປ່ຽນບັນທຶກທີ່ບໍ່ມີໂຄງສ້າງ ແລະຂໍ້ມູນເຫດການໃຫ້ເປັນຂໍ້ມູນທີ່ມີໂຄງສ້າງ.
ໂຄງການ grok ເປັນເຄື່ອງມືທີ່ດີສໍາລັບການແຍກຂໍ້ມູນບັນທຶກແລະຜົນຜະລິດຂອງໂຄງການ. ທ່ານສາມາດຈັບຄູ່
ຈໍານວນຂອງຮູບແບບສະລັບສັບຊ້ອນໃນຈໍານວນຂອງການປ້ອນຂໍ້ມູນໃດໆ (ຂະບວນການແລະໄຟລ໌) ແລະມີ
ປະຕິກິລິຍາແບບກຳນົດເອງ.
OPTIONS
-d or --daemon
Daemonize ຫຼັງຈາກ parsing ໄຟລ໌ config. ປະຕິບັດກັບ daemon(3). ຄ່າເລີ່ມຕົ້ນແມ່ນເພື່ອ
ຢູ່ໃນເບື້ອງຫນ້າ.
-f configfile
ລະບຸໄຟລ໌ config grok ທີ່ຈະໃຊ້.
CONFIGURATION
ທ່ານສາມາດໂທຫາໄຟລ໌ config ທີ່ທ່ານຕ້ອງການ. ຕົວຢ່າງ config ເຕັມດັ່ງຕໍ່ໄປນີ້ຂ້າງລຸ່ມນີ້, ກັບ
ເອກະສານກ່ຽວກັບທາງເລືອກ ແລະຄ່າເລີ່ມຕົ້ນ.
# --- ເລີ່ມຕົ້ນຕົວຢ່າງ grok config
# ນີ້ແມ່ນຄຳເຫັນ. :)
#
# ເປີດ ຫຼືປິດການດີບັກ. Debug ຖືກຕັ້ງເປັນຜິດຕາມຄ່າເລີ່ມຕົ້ນ.
# ການຕັ້ງຄ່າ 'debug' ແມ່ນຖືກຕ້ອງໃນທຸກລະດັບ.
# ຄ່າດີບັ໊ກຈະຖືກສຳເນົາລົງໃນຂອບເຂດ ເວັ້ນເສຍແຕ່ຈະຖືກລົບລ້າງ.
debug: ແທ້
# ທ່ານສາມາດກໍານົດ blocks ໂຄງການຫຼາຍໃນໄຟລ໌ config.
# ໂຄງການເປັນພຽງແຕ່ການເກັບກໍາຂໍ້ມູນ (ໄຟລ໌, execs) ແລະ
# ກົງກັນ (ຮູບແບບແລະປະຕິກິລິຍາ),
ໂຄງການ {
debug: ບໍ່ຖືກຕ້ອງ
# ໄຟລ໌ທີ່ບໍ່ມີບລັອກ. ບລັອກການຕັ້ງຄ່າເປັນທາງເລືອກ
ໄຟລ໌ "/var/log/messages"
# ໄຟລ໌ທີ່ມີບລັອກ
ໄຟລ໌ "/var/log/secure" {
# ປະຕິບັດຕາມຫມາຍຄວາມວ່າປະຕິບັດຕາມໄຟລ໌ເຊັ່ນ 'tail -F' ແຕ່ເລີ່ມຕົ້ນ
# ການອ່ານໃນຕອນຕົ້ນຂອງໄຟລ໌. ໄຟລ໌ຖືກຕິດຕາມ
# ຜ່ານການຕັດ, ການຫມູນວຽນຂອງບັນທຶກ, ແລະຕື່ມຂໍ້ມູນໃສ່.
ປະຕິບັດຕາມ: ຄວາມຈິງ
}
# ປະຕິບັດຄໍາສັ່ງ, ການຕັ້ງຄ່າຕັນແມ່ນທາງເລືອກ
exec "netstat -rn"
# exec ກັບຕັນ
exec "ping -c 1 www.google.com" {
# ເປີດໃຊ້ exec ໂດຍອັດຕະໂນມັດຖ້າມັນອອກ, ທັນທີທີ່ມັນອອກ.
# ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ຖືກຕ້ອງ
restart-on-exit: false
# ຈໍານວນເວລາຂັ້ນຕ່ໍາຈາກການເລີ່ມຕົ້ນຫນຶ່ງໄປຫາການເລີ່ມຕົ້ນຕໍ່ໄປ, ຖ້າພວກເຮົາ
# ກຳລັງເລີ່ມໃໝ່. ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ມີຕໍາ່ສຸດທີ່
ໄລຍະເລີ່ມຕົ້ນໃໝ່ຂັ້ນຕ່ຳ: 5
# ແລ່ນທຸກໆ N ວິນາທີ, ແຕ່ຖ້າຂະບວນການໄດ້ອອກໄປ.
# ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ໃຫ້ແລ່ນຄືນໃໝ່ເລີຍ.
ໄລຍະຫ່າງຂອງການ: 60
# ຄ່າເລີ່ມຕົ້ນແມ່ນການອ່ານຂະບວນການຜະລິດຈາກ stdout ເທົ່ານັ້ນ.
# ຕັ້ງນີ້ເປັນຈິງເພື່ອອ່ານຈາກ stderr.
read-stderr: ບໍ່ຖືກຕ້ອງ
}
# ທ່ານສາມາດມີຫຼາຍອັນທີ່ກົງກັນ {} ໃນ config ຂອງທ່ານ.
# ພວກເຂົາຖືກ ນຳ ໃຊ້, ຕາມລໍາດັບ, ຕໍ່ກັບທຸກໆເສັ້ນຂອງວັດສະດຸປ້ອນ
# ມາຈາກ exec ແລະ file instances ຂອງທ່ານໃນ block ໂຄງການນີ້.
ກົງກັນ {
# ກົງກັບຮູບແບບ. ນີ້ສາມາດເປັນ regexp ໃດໆກໍໄດ້ ແລະສາມາດລວມເຖິງ %{foo}
# ຮູບແບບ grok
ຮູບແບບ: "ບາງຮູບແບບທີ່ກົງກັນ"
# ທ່ານສາມາດມີຫຼາຍຮູບແບບທີ່ນີ້, ໃດໆແມ່ນຖືກຕ້ອງສໍາລັບການຈັບຄູ່.
ຮູບແບບ: "ຮູບແບບອື່ນທີ່ກົງກັນ"
# ປະຕິກິລິຍາເລີ່ມຕົ້ນແມ່ນ "%{@LINE}" ເຊິ່ງເປັນແຖວເຕັມ
# ກົງກັນ. ປະຕິກິລິຍາສາມາດເປັນມູນຄ່າພິເສດຂອງ 'none' ທີ່
# ຫມາຍຄວາມວ່າບໍ່ມີປະຕິກິລິຍາເກີດຂື້ນ, ຫຼືມັນສາມາດເປັນສາຍໃດໆ. ໄດ້
# ປະຕິກິລິຍາຈະຖືກປ່ອຍອອກສູ່ເປືອກຖ້າມັນບໍ່ແມ່ນບໍ່ມີ.
ປະຕິກິລິຍາ: "%{@LINE}"
# shell ເລີ່ມຕົ້ນແມ່ນ 'stdout' ຊຶ່ງຫມາຍຄວາມວ່າປະຕິກິລິຍາ
# ພິມໂດຍກົງກັບຜົນຜະລິດມາດຕະຖານ. ການຕັ້ງຄ່າ Shell ເປັນ
# ສະຕິງຄໍາສັ່ງຈະດໍາເນີນການຄໍາສັ່ງນັ້ນແລະຂໍ້ມູນປະຕິກິລິຍາທໍ່ກັບ
# ມັນ.
#shell: stdout
ແກະ: "/ ຖັງ / sh"
# ລ້າງຫຼັງຈາກທຸກໆການຂຽນໃສ່ຫອຍ.
# ຄ່າເລີ່ມຕົ້ນບໍ່ແມ່ນການ flush.
flush: ຈິງ
# break-if-match ໝາຍເຖິງຢ່າພະຍາຍາມຈັບຄູ່ຕໍ່ໄປ
#ສາຍນີ້. ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ຖືກຕ້ອງ.
break-if-match: ຈິງ
}
}
# -- ສິ້ນສຸດການຕັ້ງຄ່າ
PATTERN ເອກະສານ
ໄຟລ໌ຮູບແບບມີບັນຊີລາຍຊື່ຂອງຊື່ແລະຮູບແບບສໍາລັບການໂຫຼດເຂົ້າໄປໃນ grok.
ຮູບແບບແມ່ນການຂັ້ນຕອນໃຫມ່ແລະມີ syntax ນີ້:
ຊື່ຮູບແບບ ການສະແດງອອກ
ຊ່ອງຫວ່າງໃດໆລະຫວ່າງຊື່ຮູບແບບ ແລະການສະແດງຜົນຈະຖືກລະເລີຍ.
ຊື່ຮູບແບບ
ນີ້ແມ່ນຊື່ຂອງຮູບແບບຂອງທ່ານທີ່, ໃນເວລາທີ່ການໂຫຼດ, ສາມາດອ້າງອີງໃນຮູບແບບເປັນ
%{patternname}
ການສະແດງອອກ
ການສະແດງອອກໃນທີ່ນີ້ແມ່ນ, verbatim, ສາມາດໃຊ້ໄດ້ເປັນການສະແດງອອກປົກກະຕິ. ທ່ານບໍ່ຕ້ອງການ
ເປັນຫ່ວງກ່ຽວກັບວິທີການຫລົບຫນີ.
PATTERN ຕົວຢ່າງ
DIGITS \d+
HELLOWORLD \bສະບາຍດີໂລກ\b
REGULAR ການສະແດງອອກ
ເຄື່ອງຈັກສະແດງອອກພາຍໃຕ້ grok ແມ່ນ PCRE. syntax ໃດໆໃນ PCRE ແມ່ນຖືກຕ້ອງໃນ grok.
ປະຕິກິລິຍາ
ປະຕິກິລິຍາສາມາດອ້າງອີງຮູບແບບທີ່ມີຊື່ຈາກການຈັບຄູ່. ທ່ານຍັງສາມາດເຂົ້າເຖິງອີກສອງສາມອັນ
ຄຸນຄ່າພິເສດ, ລວມທັງ:
%{@LINE}
ເສັ້ນກົງກັນ.
%{@MATCH}
ສະຕຣິງຍ່ອຍກົງກັນ
%{@START}
ຕໍາແຫນ່ງເລີ່ມຕົ້ນຂອງການແຂ່ງຂັນຈາກຈຸດເລີ່ມຕົ້ນຂອງສາຍ.
%{@END}
ຕໍາແຫນ່ງສິ້ນສຸດຂອງການແຂ່ງຂັນ.
%{@LENGTH}
ຄວາມຍາວຂອງການແຂ່ງຂັນ
%{@JSON}
ຊຸດເຕັມຂອງຮູບແບບທີ່ຖືກຈັບ, ເຂົ້າລະຫັດເປັນວັດຈະນານຸກົມ json ເປັນໂຄງສ້າງຂອງ {
ຮູບແບບ: [ array of captures ] }. ພວກເຮົາໃຊ້ array ເພາະວ່າທ່ານສາມາດໃຊ້ຊື່ດຽວກັນ
ຮູບແບບຫຼາຍຄັ້ງໃນການແຂ່ງຂັນ.
%{@JSON_COMPLEX}
ຄ້າຍຄືກັນກັບຂ້າງເທິງ, ແຕ່ປະກອບມີຕໍາແຫນ່ງເລີ່ມຕົ້ນແລະສິ້ນສຸດສໍາລັບທຸກຮູບແບບທີ່ມີຊື່.
ໂຄງປະກອບການນັ້ນແມ່ນ:
{ "grok": [
{ "@LINE": { "ເລີ່ມຕົ້ນ": ..., "ສິ້ນສຸດ": ..., "ມູນຄ່າ": ... } },
{ "@MATCH": { "ເລີ່ມຕົ້ນ": ..., "end": ..., "value": ... } },
{ "patternname": { "start": startpos, "end": endpos, "value": "string" } },
{ "patternname2": { "start": startpos, "end": endpos, "value": "string" } },
...
]}
ຕິກິລິຍາ FILTERS
ຕົວກອງປະຕິກິລິຍາອະນຸຍາດໃຫ້ທ່ານປ່ຽນຂໍ້ມູນທີ່ຖືກຈັບ. ການກັ່ນຕອງຕໍ່ໄປນີ້ແມ່ນ
ມີ:
ຕົວຢ່າງຂອງການນໍາໃຊ້ຕົວກອງໃນປະຕິກິລິຍາແມ່ນເຊັ່ນນີ້:
ປະຕິກິລິຍາ: "echo ກົງກັນ: %{@MATCH|shellescape}"
ແກະ
Escapes ຕົວອັກສອນທັງໝົດທີ່ຈຳເປັນເພື່ອເຮັດໃຫ້ສະຕຣິງປອດໄພຢູ່ໃນ shell ທີ່ບໍ່ມີການອ້າງອີງ
ການໂຕ້ຖຽງ
shelldqescape
Escapes ຕົວອັກສອນທີ່ຈໍາເປັນເພື່ອໃຫ້ປອດໄພພາຍໃນ doublequotes ໃນ shell.
jsonencode
ເຮັດໃຫ້ສະຕຣິງປອດໄພເພື່ອເປັນຕົວແທນໃນສະຕຣິງ json (escapes ອີງຕາມ json.org
ຂໍ້ສະເຫນີແນະ)
ໃຊ້ grok ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net