Ing pungkasan
Kursus kasebut ora kalebu instalasi tumpukan ELK, amarga ana akeh artikel babagan topik iki, kita bakal nimbang komponen konfigurasi.
Ayo gawe rencana aksi kanggo konfigurasi Logstash:
- Priksa manawa elasticsearch bakal nampa log (mriksa fungsi lan keterbukaan port).
- We nimbang carane kita bisa ngirim acara kanggo Logstash, milih cara, lan ngleksanakake.
- Kita ngatur Input ing file konfigurasi Logstash.
- Kita ngatur Output ing file konfigurasi Logstash ing mode debug supaya ngerti apa pesen log katon.
- Nyetel Filter.
- Nyetel Output sing bener ing ElasticSearch.
- Logstash diluncurake.
- Priksa log ing Kibana.
Ayo ndeleng saben titik kanthi luwih rinci:
Priksa manawa elasticsearch bakal nampa log
Kanggo nindakake iki, sampeyan bisa nggunakake printah curl kanggo mriksa akses menyang Elasticsearch saka sistem sing dipasang Logstash. Yen sampeyan wis dikonfigurasi otentikasi, banjur kita uga nransfer pangguna / sandhi liwat curl, nemtokake port 9200 yen sampeyan durung ngganti. Yen sampeyan nampa respon sing padha karo sing ana ing ngisor iki, mula kabeh wis rapi.
[elastic@elasticsearch ~]$ curl -u <<user_name>> : <<password>> -sS -XGET "<<ip_address_elasticsearch>>:9200"
{
"name" : "elastic-1",
"cluster_name" : "project",
"cluster_uuid" : "sQzjTTuCR8q4ZO6DrEis0A",
"version" : {
"number" : "7.4.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "fc0eeb6e2c25915d63d871d344e3d0b45ea0ea1e",
"build_date" : "2019-10-22T17:16:35.176724Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[elastic@elasticsearch ~]$
Yen respon ora ditampa, bisa uga ana sawetara jinis kesalahan: proses elasticsearch ora mlaku, port sing salah ditemtokake, utawa port diblokir dening firewall ing server ing ngendi elasticsearch diinstal.
Ayo goleki carane sampeyan bisa ngirim log menyang Logstash saka firewall titik mriksa
Saka server manajemen Check Point sampeyan bisa ngirim log menyang Logstash liwat syslog nggunakake utilitas log_exporter, sampeyan bisa maca liyane babagan kene
cp_log_export nambah jeneng check_point_syslog target-server < > target-port 5555 protokol tcp format umum maca-mode semi-unified
< > - alamat server sing Logstash mlaku, target-port 5555 - port sing bakal dikirim log, ngirim log liwat tcp bisa mbukak server, supaya ing sawetara kasus luwih bener nggunakake udp.
Nyetel INPUT ing file konfigurasi Logstash
Kanthi gawan, file konfigurasi dumunung ing direktori /etc/logstash/conf.d/. File konfigurasi kasusun saka 3 bagean sing migunani: INPUT, FILTER, OUTPUT. ING input kita nuduhake ngendi sistem bakal njupuk log saka, ing Nyaring parse log - nyiyapake carane dibagi pesen menyang kolom lan nilai, ing output kita ngatur stream output - ngendi log parsed bakal dikirim.
Pisanan, ayo ngatur INPUT, nimbang sawetara jinis sing bisa - file, tcp lan exe.
Tcp:
input {
tcp {
port => 5555
host => β10.10.1.205β
type => "checkpoint"
mode => "server"
}
}
mode => "server"
Nuduhake yen Logstash nampa sambungan.
port => 5555
host => "10.10.1.205"
Kita nampa sambungan liwat alamat IP 10.10.1.205 (Logstash), port 5555 - port kudu diijini dening privasi firewall.
ngetik => "titik mriksa"
Kita menehi tandha dokumen kasebut, trep banget yen sampeyan duwe sawetara sambungan sing mlebu. Sabanjure, kanggo saben sambungan sampeyan bisa nulis filter dhewe nggunakake logika yen mbangun.
Gambar:
input {
file {
path => "/var/log/openvas_report/*"
type => "openvas"
start_position => "beginning"
}
}
Katrangan saka setelan:
path => "/var/log/openvas_report/*"
Kita nuduhake direktori ing ngendi file kudu diwaca.
jinis => "openvas"
Jenis acara.
start_position => "wiwitan"
Nalika ngganti file, maca kabeh file; yen sampeyan nyetel "mburi", sistem ngenteni cathetan anyar katon ing mburi file.
Exec:
input {
exec {
command => "ls -alh"
interval => 30
}
}
Nggunakake input iki, printah shell (mung!) diluncurake lan outpute diowahi dadi pesen log.
printah => "ls -alh"
Printah kang output kita kasengsem ing.
interval => 30
Interval invocation printah ing detik.
Kanggo nampa log saka firewall, kita ndhaftar filter tcp utawa udp, gumantung carane log dikirim menyang Logstash.
Kita ngatur Output ing file konfigurasi Logstash ing mode debug supaya ngerti apa pesen log katon
Sawise kita ngatur INPUT, kita kudu ngerti apa pesen log bakal katon lan cara apa sing kudu digunakake kanggo ngatur filter log (parser).
Kanggo nindakake iki, kita bakal nggunakake filter sing ngasilake asil kanggo stdout kanggo ndeleng pesen asli; file konfigurasi lengkap saiki bakal katon kaya iki:
input
{
tcp
{
port => 5555
type => "checkpoint"
mode => "server"
host => β10.10.1.205β
}
}
output
{
if [type] == "checkpoint"
{
stdout { codec=> json }
}
}
Jalanake printah kanggo mriksa:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
Kita ndeleng asil, gambar bisa diklik:
Yen sampeyan nyalin bakal katon kaya iki:
action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,0x5,0xfe0a0a0a,0xc0000000}" origin="10.10.10.254" originsicname="CN=ts-spb-cpgw-01,O=cp-spb-mgmt-01.tssolution.local.kncafb" sequencenum="8" time="1576766483" version="5" context_num="1" dst="10.10.10.10" dst_machine_name="[email protected]" layer_name="TSS-Standard Security" layer_name="TSS-Standard Application" layer_uuid="dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0" layer_uuid="dbee3718-cf2f-4de0-8681-529cb75be9a6" match_id="8" match_id="33554431" parent_rule="0" parent_rule="0" rule_action="Accept" rule_action="Accept" rule_name="Implicit Cleanup" rule_uid="6dc2396f-9644-4546-8f32-95d98a3344e6" product="VPN-1 & FireWall-1" proto="17" s_port="37317" service="53" service_id="domain-udp" src="10.10.1.180" ","type":"qqqqq","host":"10.10.10.250","@version":"1","port":50620}{"@timestamp":"2019-12-19T14:50:12.153Z","message":"time="1576766483" action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,
Nggoleki pesen kasebut, kita ngerti manawa log katon kaya: lapangan = nilai utawa kunci = nilai, tegese saringan sing diarani kv cocok. Kanggo milih panyaring sing tepat kanggo saben kasus tartamtu, luwih becik sampeyan kenal karo wong-wong mau ing dokumentasi teknis, utawa takon kanca.
Nyetel Filter
Ing tahap pungkasan kita milih kv, konfigurasi filter iki ditampilake ing ngisor iki:
filter {
if [type] == "checkpoint"{
kv {
value_split => "="
allow_duplicate_values => false
}
}
}
Kita milih simbol sing bakal dibagi lapangan lan nilai - "=". Yen kita duwe entri podho rupo ing log, kita nyimpen mung siji Kayata ing database, digunakake sampeyan bakal mungkasi munggah karo Uploaded nilai podho rupo, sing, yen kita duwe pesen "foo = sawetara foo = sawetara" kita nulis mung foo = sawetara.
Nyetel Output sing bener ing ElasticSearch
Sawise Filter dikonfigurasi, sampeyan bisa ngunggah log menyang database elastisark:
output
{
if [type] == "checkpoint"
{
elasticsearch
{
hosts => ["10.10.1.200:9200"]
index => "checkpoint-%{+YYYY.MM.dd}"
user => "tssolution"
password => "cool"
}
}
}
Yen dokumen kasebut ditandatangani karo jinis checkpoint, kita nyimpen acara kasebut menyang database elasticsearch, sing nampa sambungan ing 10.10.1.200 ing port 9200 kanthi standar. Saben dokumen disimpen ing indeks tartamtu, ing kasus iki kita simpen ing indeks "checkpoint-" + tanggal wektu saiki. Saben indeks bisa duwe set kolom tartamtu, utawa digawe kanthi otomatis nalika kolom anyar katon ing pesen; setelan lapangan lan jinise bisa dideleng ing pemetaan.
Yen sampeyan wis dikonfigurasi otentikasi (kita bakal nliti mengko), kredensial kanggo nulis menyang indeks tartamtu kudu ditemtokake, ing conto iki "tssolution" karo sandi "kelangan". Sampeyan bisa mbedakake hak pangguna kanggo nulis log mung kanggo indeks tartamtu lan ora luwih.
Bukak Logstash.
File konfigurasi logstash:
input
{
tcp
{
port => 5555
type => "checkpoint"
mode => "server"
host => β10.10.1.205β
}
}
filter {
if [type] == "checkpoint"{
kv {
value_split => "="
allow_duplicate_values => false
}
}
}
output
{
if [type] == "checkpoint"
{
elasticsearch
{
hosts => ["10.10.1.200:9200"]
index => "checkpoint-%{+YYYY.MM.dd}"
user => "tssolution"
password => "cool"
}
}
}
Kita mriksa file konfigurasi kanggo bener:
/usr/share/logstash/bin//logstash -f checkpoint.conf
Miwiti proses Logstash:
sudo systemctl miwiti logstash
Kita mriksa manawa proses wis diwiwiti:
sudo systemctl status logstash
Ayo priksa manawa soket munggah:
netstat -nat |grep 5555
Priksa log ing Kibana.
Sawise kabeh mlaku, pindhah menyang Kibana - Temokake, priksa manawa kabeh wis dikonfigurasi kanthi bener, gambar bisa diklik!
Kabeh log wis ana lan kita bisa ndeleng kabeh lapangan lan nilai-nilai kasebut!
kesimpulan
Kita nyawang carane nulis file konfigurasi Logstash, lan minangka asil kita entuk parser kabeh kolom lan nilai. Saiki kita bisa nggoleki lan ngrancang lapangan tartamtu. Sabanjure ing Course kita bakal katon ing visualisasi ing Kibana lan nggawe dashboard prasaja. Wigati dimangerteni manawa file konfigurasi Logstash kudu terus dianyari ing kahanan tartamtu, umpamane, nalika kita pengin ngganti nilai lapangan saka nomer menyang tembung. Ing artikel sabanjure kita bakal nindakake iki terus-terusan.
Dadi tetep dirungokake (
Source: www.habr.com