අන්තිමට
මෙම මාතෘකාව පිළිබඳ ලිපි විශාල ප්රමාණයක් ඇති බැවින් ELK තොගය ස්ථාපනය කිරීම පා course මාලාව ආවරණය නොකරයි; අපි වින්යාස සංරචකය සලකා බලමු.
Logstash වින්යාසය සඳහා ක්රියාකාරී සැලැස්මක් සකස් කරමු:
- ප්රත්යාස්ථ සෙවීම පරීක්ෂා කිරීම ලඝු-සටහන් පිළිගනු ඇත (වරායේ ක්රියාකාරීත්වය සහ විවෘතභාවය පරීක්ෂා කිරීම).
- අපි Logstash වෙත සිදුවීම් යැවිය හැකි ආකාරය සලකා බලමු, ක්රමයක් තෝරා එය ක්රියාත්මක කරන්න.
- අපි Logstash වින්යාස ගොනුවේ ආදානය වින්යාස කරමු.
- අපි Logstash වින්යාස ගොනුවේ ප්රතිදානය නිදොස් කිරීමේ ප්රකාරයේදී වින්යාස කරන්නෙමු ලොග් පණිවිඩය කෙබඳුද යන්න තේරුම් ගැනීමට.
- පෙරහන සැකසීම.
- ElasticSearch හි නිවැරදි ප්රතිදානය සැකසීම.
- ලොග්ස්ටාෂ් දියත් කරයි.
- කිබානා හි ලඝු-සටහන් පරීක්ෂා කිරීම.
එක් එක් කරුණ වඩාත් විස්තරාත්මකව බලමු:
ඉලාස්ටික් සෙවුම පරීක්ෂා කිරීමෙන් ලඝු-සටහන් පිළිගනු ඇත
මෙය සිදු කිරීම සඳහා, Logstash යොදවා ඇති පද්ධතියෙන් Elasticsearch වෙත ප්රවේශය පරීක්ෂා කිරීමට ඔබට curl විධානය භාවිතා කළ හැකිය. ඔබ සත්යාපනය වින්යාස කර ඇත්නම්, අපි පරිශීලක/මුරපදය curl හරහා මාරු කරමු, ඔබ එය වෙනස් කර නොමැති නම් වරාය 9200 සඳහන් කරන්න. ඔබට පහත ප්රතිචාරයට සමාන ප්රතිචාරයක් ලැබෙන්නේ නම්, සියල්ල පිළිවෙලට තිබේ.
[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 ~]$
ප්රතිචාරය නොලැබුනේ නම්, දෝෂ වර්ග කිහිපයක් තිබිය හැක: ඉලාස්ටික් සෙවුම් ක්රියාවලිය ක්රියාත්මක නොවේ, වැරදි වරාය නියම කර ඇත, නැතහොත් elasticsearch ස්ථාපනය කර ඇති සේවාදායකයේ ෆයර්වෝලයක් මඟින් වරාය අවහිර කර ඇත.
චෙක් පොයින්ට් ෆයර්වෝල් එකකින් Logstash වෙත ලොග් යවන්නේ කෙසේදැයි බලමු
Check Point කළමනාකරණ සේවාදායකයෙන් ඔබට log_exporter උපයෝගීතාව භාවිතයෙන් syslog හරහා Logstash වෙත ලඝු-සටහන් යැවිය හැක, ඔබට ඒ ගැන වැඩි විස්තර මෙතැනින් කියවිය හැක.
cp_log_export නම එක් කරන්න check_point_syslog target-server < > target-port 5555 protocol tcp ආකෘතිය generic read-mode semi-uniified
< > - Logstash ක්රියාත්මක වන සේවාදායකයේ ලිපිනය, target-port 5555 - අපි ලොග් යවන වරාය, tcp හරහා ලොග් යැවීමෙන් සේවාදායකය පූරණය කළ හැකිය, එබැවින් සමහර අවස්ථාවල udp භාවිතා කිරීම වඩාත් නිවැරදි වේ.
Logstash වින්යාස ගොනුවේ INPUT සැකසීම
පෙරනිමියෙන්, වින්යාස ගොනුව /etc/logstash/conf.d/ බහලුම තුළ පිහිටා ඇත. වින්යාස ගොනුව අර්ථවත් කොටස් 3 කින් සමන්විත වේ: INPUT, FILTER, OUTPUT. තුල ආදාන පද්ධතිය ලොග් ගන්නේ කොතැනින්ද යන්න අපි දක්වන්නෙමු ෆිල්ටරය ලොගය විග්රහ කරන්න - පණිවිඩය ක්ෂේත්ර සහ අගයන් වලට බෙදන ආකාරය සකසන්න නිමැවුම අපි ප්රතිදාන ප්රවාහය වින්යාස කරමු - විග්රහ කළ ලඝු-සටහන් යවනු ලබන ස්ථානය.
පළමුව, අපි INPUT වින්යාස කරමු, විය හැකි සමහර වර්ග සලකා බලමු - ගොනු, tcp සහ exe.
TCP:
input {
tcp {
port => 5555
host => “10.10.1.205”
type => "checkpoint"
mode => "server"
}
}
මාදිලිය => "සේවාදායකය"
Logstash සම්බන්ධතා පිළිගන්නා බව පෙන්නුම් කරයි.
වරාය => 5555
සත්කාරක => "10.10.1.205"
අපි IP ලිපිනය 10.10.1.205 (Logstash), port 5555 හරහා සම්බන්ධතා පිළිගනිමු - ෆයර්වෝල් ප්රතිපත්තිය මගින් වරායට අවසර දිය යුතුය.
වර්ගය => "මුරපොල"
අපි ලේඛනය සලකුණු කරමු, ඔබට ලැබෙන සම්බන්ධතා කිහිපයක් තිබේ නම් ඉතා පහසුය. පසුව, සෑම සම්බන්ධතාවයක් සඳහාම ඔබට තාර්කික if construct භාවිතා කර ඔබේම පෙරහනක් ලිවිය හැකිය.
ගොනුව:
input {
file {
path => "/var/log/openvas_report/*"
type => "openvas"
start_position => "beginning"
}
}
සැකසුම් විස්තරය:
මාර්ගය => "/var/log/openvas_report/*"
ගොනු කියවිය යුතු බහලුම අපි දක්වන්නෙමු.
වර්ගය => "විවෘත"
සිදුවීම් වර්ගය.
start_position => "ආරම්භය"
ගොනුවක් වෙනස් කිරීමේදී, එය සම්පූර්ණ ගොනුව කියවයි; ඔබ "අවසානය" සකසන්නේ නම්, ගොනුවේ අවසානයේ නව වාර්තා දිස්වන තෙක් පද්ධතිය බලා සිටියි.
විධායක:
input {
exec {
command => "ls -alh"
interval => 30
}
}
මෙම ආදානය භාවිතා කරමින්, (පමණක්!) shell විධානයක් දියත් කර එහි ප්රතිදානය ලොග් පණිවිඩයක් බවට පත් කෙරේ.
විධානය => "ls -alh"
අප උනන්දු වන ප්රතිදානය වන විධානය.
පරතරය => 30
තත්පර කිහිපයකින් විධාන ආමන්ත්රණ විරාමය.
ෆයර්වෝලයෙන් ලඝු-සටහන් ලබා ගැනීම සඳහා, අපි පෙරහනක් ලියාපදිංචි කරමු tcp හෝ udp, Logstash වෙත ලඝු-සටහන් යවන ආකාරය මත පදනම්ව.
අපි Logstash වින්යාස ගොනුවේ ප්රතිදානය නිදොස් කිරීමේ ප්රකාරයේදී වින්යාස කරන්නෙමු ලොග් පණිවිඩය කෙබඳුදැයි තේරුම් ගැනීමට
අපි INPUT වින්යාස කිරීමෙන් පසු, ලොග් පණිවිඩය කෙබඳු වනු ඇත්ද සහ ලොග් ෆිල්ටරය (විග්රහ කරන්නා) වින්යාස කිරීමට භාවිතා කළ යුතු ක්රම මොනවාද යන්න අප තේරුම් ගත යුතුය.
මෙය සිදු කිරීම සඳහා, අපි මුල් පණිවිඩය බැලීම සඳහා ප්රතිඵලය stdout වෙත ප්රතිදානය කරන පෙරහනක් භාවිතා කරන්නෙමු; මේ මොහොතේ සම්පූර්ණ වින්යාස ගොනුව මේ ආකාරයෙන් පෙනෙනු ඇත:
input
{
tcp
{
port => 5555
type => "checkpoint"
mode => "server"
host => “10.10.1.205”
}
}
output
{
if [type] == "checkpoint"
{
stdout { codec=> json }
}
}
පරීක්ෂා කිරීමට විධානය ක්රියාත්මක කරන්න:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
අපි ප්රතිඵලය දකිනවා, පින්තූරය ක්ලික් කළ හැකි ය:
ඔබ එය පිටපත් කළහොත් එය මේ ආකාරයෙන් පෙනෙනු ඇත:
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,
මෙම පණිවිඩ දෙස බලන විට, ලඝු-සටහන් පෙනෙන්නේ: ක්ෂේත්රය = අගය හෝ යතුර = අගය, එනම් kv නැමති පෙරහන සුදුසු බවයි. එක් එක් විශේෂිත අවස්ථාව සඳහා නිවැරදි පෙරහන තෝරා ගැනීම සඳහා, තාක්ෂණික ලියකියවිලි තුළ ඔවුන් සමඟ ඔබ හුරුපුරුදු වීම හෝ මිතුරෙකුගෙන් විමසීමට හොඳ අදහසක් වනු ඇත.
පෙරහන සැකසීම
අවසාන අදියරේදී අපි kv තෝරා ගත්තෙමු, මෙම පෙරහන වින්යාසය පහත දැක්වේ:
filter {
if [type] == "checkpoint"{
kv {
value_split => "="
allow_duplicate_values => false
}
}
}
අපි ක්ෂේත්රය සහ අගය බෙදන සංකේතය තෝරන්න - "=". අපට ලොගයේ සමාන ඇතුළත් කිරීම් තිබේ නම්, අපි දත්ත සමුදායේ එක් අවස්ථාවක් පමණක් සුරකිමු, එසේ නොමැතිනම් ඔබට සමාන අගයන් මාලාවක් ලැබෙනු ඇත, එනම් අපට “foo = some foo=some” යන පණිවිඩය තිබේ නම් අපි ලියන්නේ foo පමණි. = සමහරක්.
ElasticSearch හි නිවැරදි ප්රතිදානය සැකසීම
පෙරහන වින්යාස කළ පසු, ඔබට දත්ත සමුදායට ලොග් උඩුගත කළ හැකිය ප්රත්යාස්ථ සෙවුම:
output
{
if [type] == "checkpoint"
{
elasticsearch
{
hosts => ["10.10.1.200:9200"]
index => "checkpoint-%{+YYYY.MM.dd}"
user => "tssolution"
password => "cool"
}
}
}
ලේඛනය මුරපොල වර්ගය සමඟ අත්සන් කර තිබේ නම්, අපි සිද්ධිය elasticsearch දත්ත ගබඩාවට සුරකිමු, එය පෙරනිමියෙන් 10.10.1.200 වරායේ 9200 සම්බන්ධතා පිළිගනී. සෑම ලේඛනයක්ම නිශ්චිත දර්ශකයකට සුරකිනු ලැබේ, මෙම අවස්ථාවේදී අපි "චෙක්පොයින්ට්-" + වත්මන් වේලාවේ දිනය වෙත සුරකිමු. සෑම දර්ශකයකටම නිශ්චිත ක්ෂේත්ර කට්ටලයක් තිබිය හැකිය, නැතහොත් පණිවිඩයක නව ක්ෂේත්රයක් දිස්වන විට ස්වයංක්රීයව සාදනු ලැබේ; ක්ෂේත්ර සැකසීම් සහ ඒවායේ වර්ගය සිතියම්ගත කිරීම්වල දැකිය හැකිය.
ඔබ සත්යාපනය වින්යාස කර ඇත්නම් (අපි එය පසුව බලමු), නිශ්චිත දර්ශකයකට ලිවීම සඳහා අක්තපත්ර සඳහන් කළ යුතුය, මෙම උදාහරණයේ එය "සිසිල්" මුරපදය සමඟ "tssolution" වේ. ඔබට ලඝු-සටහන් ලිවීමට පරිශීලක හිමිකම් වෙනස් කළ හැක්කේ නිශ්චිත දර්ශකයකට පමණක් වන අතර තවත් නැත.
Logstash දියත් කරන්න.
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"
}
}
}
නිවැරදි බව සඳහා අපි වින්යාස ගොනුව පරීක්ෂා කරමු:
/usr/share/logstash/bin//logstash -f checkpoint.conf
ලොග්ස්ටාෂ් ක්රියාවලිය ආරම්භ කරන්න:
sudo systemctl ආරම්භක ලොග්ස්ටැෂ්
ක්රියාවලිය ආරම්භ වී ඇත්දැයි අපි පරීක්ෂා කරමු:
sudo systemctl තත්ත්වය logstash
සොකට් එක ඉහළ ගොස් ඇත්දැයි පරීක්ෂා කරමු:
netstat -nat |grep 5555
කිබානා හි ලඝු-සටහන් පරීක්ෂා කිරීම.
සෑම දෙයක්ම ක්රියාත්මක වූ පසු, කිබානා වෙත යන්න - සොයා ගන්න, සියල්ල නිවැරදිව වින්යාස කර ඇති බවට වග බලා ගන්න, පින්තූරය ක්ලික් කළ හැකිය!
සියලුම ලඝු-සටහන් ස්ථානගතව ඇති අතර අපට සියලු ක්ෂේත්ර සහ ඒවායේ අගයන් දැකිය හැක!
නිගමනය
අපි Logstash වින්යාස ගොනුවක් ලියන්නේ කෙසේදැයි සොයා බැලුවෙමු, එහි ප්රති result ලයක් ලෙස අපට සියලුම ක්ෂේත්ර සහ අගයන් විග්රහ කිරීමක් ලැබුණි. දැන් අපට නිශ්චිත ක්ෂේත්ර සෙවීම සහ සැලසුම් කිරීම සමඟ වැඩ කළ හැකිය. ඊළඟට පාඨමාලාවේදී අපි කිබානා හි දෘශ්යකරණය දෙස බලා සරල උපකරණ පුවරුවක් සාදන්නෙමු. Logstash වින්යාස ගොනුව යම් යම් අවස්ථා වලදී නිරන්තරයෙන් යාවත්කාලීන කළ යුතු බව සඳහන් කිරීම වටී, උදාහරණයක් ලෙස, ක්ෂේත්රයක අගය අංකයකින් වචනයකට ප්රතිස්ථාපනය කිරීමට අපට අවශ්ය වූ විට. ඊළඟ ලිපිවලදී අපි මෙය නිරන්තරයෙන් කරන්නෙමු.
එබැවින් රැඳී සිටින්න
මූලාශ්රය: www.habr.com