በመጨረሻው
በዚህ ርዕስ ላይ እጅግ በጣም ብዙ ቁጥር ያላቸው መጣጥፎች ስላሉ ኮርሱ የ ELK ቁልል መጫንን አይሸፍንም ፣ የአወቃቀሩን አካል እንመለከታለን።
ለ Logstash ውቅረት የድርጊት መርሃ ግብር እናውጣ፡-
- ያንን elasticsearch መፈተሽ የምዝግብ ማስታወሻዎችን ይቀበላል (የወደቡን ተግባራዊነት እና ክፍትነት ማረጋገጥ)።
- ክስተቶችን ወደ Logstash እንዴት እንደምንልክ፣ ዘዴ እንደምንመርጥ እና እንደምንተገብር እንመለከታለን።
- በ Logstash ውቅር ፋይል ውስጥ ግቤትን እናዋቅራለን።
- የምዝግብ ማስታወሻው ምን እንደሚመስል ለመረዳት ውፅዓትን በ Logstash ውቅር ፋይል ውስጥ በአርሚ ሁነታ እናዋቅራለን።
- ማጣሪያን በማዘጋጀት ላይ።
- በ ElasticSearch ውስጥ ትክክለኛውን ውፅዓት በማዘጋጀት ላይ።
- Logstash ይጀምራል።
- በኪባና ውስጥ ያሉትን ምዝግብ ማስታወሻዎች በመፈተሽ ላይ.
እያንዳንዱን ነጥብ በበለጠ ዝርዝር እንመልከት፡-
ያንን elasticsearch መፈተሽ ምዝግብ ማስታወሻዎችን ይቀበላል
ይህንን ለማድረግ Logstash ከተዘረጋበት ስርዓት የ Elasticsearch መዳረሻን ለመፈተሽ የ curl ትዕዛዙን መጠቀም ይችላሉ። ማረጋገጫው ከተዋቀረ፣ ካልቀየሩት ወደብ 9200 በመግለጽ ተጠቃሚውን/ፓስዎርድን በ curl እናስተላልፋለን። ከታች ካለው ጋር ተመሳሳይ ምላሽ ከተቀበሉ, ሁሉም ነገር በሥርዓት ነው.
[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 አስተዳደር አገልጋይ የሎግስታሽ ሎግስታሽ በ syslog log_exporter utility በመጠቀም መላክ ትችላላችሁ፣ስለእሱ የበለጠ ማንበብ ትችላላችሁ እዚህ
cp_log_export ስም አክል check_point_syslog target-server < > ኢላማ-ወደብ 5555 ፕሮቶኮል tcp ቅርጸት አጠቃላይ የንባብ ሁነታ ከፊል-የተዋሃደ
< > - Logstash የሚሠራበት የአገልጋይ አድራሻ፣ ኢላማ-ወደብ 5555 - ሎግ የምንልክበት ወደብ፣ በ tcp የምዝግብ ማስታወሻዎችን መላክ አገልጋዩን ሊጭን ይችላል፣ ስለዚህ በአንዳንድ ሁኔታዎች udp መጠቀም የበለጠ ትክክል ነው።
በ Logstash ውቅር ፋይል ውስጥ INPUT ን ማዋቀር
በነባሪ, የማዋቀሪያው ፋይል በ /etc/logstash/conf.d/ ማውጫ ውስጥ ይገኛል. የማዋቀር ፋይሉ 3 ትርጉም ያላቸውን ክፍሎች ያቀፈ ነው፡ INPUT፣ FILTER፣ OUTPUT። ውስጥ ግቤት ስርዓቱ ምዝግብ ማስታወሻዎችን ከየት እንደሚወስድ እንጠቁማለን FILTER ምዝግብ ማስታወሻውን መተንተን - መልእክቱን ወደ መስኮች እና እሴቶች እንዴት እንደሚከፋፈል ያዋቅሩ ፣ ውስጥ ውፅዓት የውጤት ዥረቱን እናዋቅራለን - የተተነተኑ ምዝግብ ማስታወሻዎች የሚላኩበት።
በመጀመሪያ ፣ INPUT ን እናዋቅር ፣ ሊሆኑ የሚችሉ አንዳንድ ዓይነቶችን እንመልከት - ፋይል ፣ tcp እና exe።
ቲሲፒ፡
input {
tcp {
port => 5555
host => “10.10.1.205”
type => "checkpoint"
mode => "server"
}
}
ሁነታ => "አገልጋይ"
Logstash ግንኙነቶችን እየተቀበለ መሆኑን ያሳያል።
ወደብ => 5555
አስተናጋጅ => "10.10.1.205"
ግንኙነቶችን በአይፒ አድራሻ 10.10.1.205 (Logstash), ወደብ 5555 እንቀበላለን - ወደቡ በፋየርዎል ፖሊሲ ሊፈቀድለት ይገባል.
አይነት => "መፈተሻ ነጥብ"
ሰነዱ ላይ ምልክት እናደርጋለን ፣ ብዙ ገቢ ግንኙነቶች ካሉዎት በጣም ምቹ። በመቀጠል ለእያንዳንዱ ግንኙነት ከተገነባ ምክንያታዊውን በመጠቀም የራስዎን ማጣሪያ መጻፍ ይችላሉ.
ፋይል
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
}
}
ይህንን ግቤት በመጠቀም የሼል ትዕዛዝ (ብቻ!) ተጀምሯል እና ውጤቱ ወደ ሎግ መልእክት ይቀየራል።
ትዕዛዝ => "ls-alh"
እኛ የምንፈልገው ውጤታቸው ትእዛዝ።
ክፍተት => 30
የትእዛዝ ጥሪ ክፍተት በሰከንዶች ውስጥ።
ምዝግብ ማስታወሻዎችን ከፋየርዎል ለመቀበል, ማጣሪያ እንመዘግባለን tcp ወይም እ.አ.አ., መዝገቦቹ ወደ Logstash እንዴት እንደሚላኩ ይወሰናል.
የምዝግብ ማስታወሻው ምን እንደሚመስል ለመረዳት ውፅዓትን በ Logstash ውቅር ፋይል ውስጥ በአርሚ ሁነታ እናዋቅራለን።
INPUTን ካዋቀርን በኋላ የሎግ መልእክቱ ምን እንደሚመስል እና የምዝግብ ማስታወሻ ማጣሪያን (parser) ለማዋቀር ምን አይነት ዘዴዎችን መጠቀም እንዳለብን መረዳት አለብን።
ይህንን ለማድረግ ዋናውን መልእክት ለማየት ውጤቱን ወደ 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
የ Logstash ሂደቱን ይጀምሩ:
የ sudo systemctl ጅምር ሎጂስቲክስ
ሂደቱ መጀመሩን እናረጋግጣለን።
sudo systemctl ሁኔታ logstash
ሶኬቱ መነሳቱን እንፈትሽ፡-
netstat -nat |grep 5555
በኪባና ውስጥ ያሉትን ምዝግብ ማስታወሻዎች በመፈተሽ ላይ.
ሁሉም ነገር እየሄደ ከሆነ በኋላ ወደ ኪባና - ያግኙ, ሁሉም ነገር በትክክል መዋቀሩን ያረጋግጡ, ስዕሉ ጠቅ ሊደረግ የሚችል ነው!
ሁሉም ምዝግብ ማስታወሻዎች በቦታቸው ላይ ናቸው እና ሁሉንም መስኮች እና እሴቶቻቸውን ማየት እንችላለን!
መደምደሚያ
የ Logstash ውቅረት ፋይል እንዴት እንደሚፃፍ ተመልክተናል፣ በዚህም ምክንያት የሁሉም መስኮች እና እሴቶች ተንታኝ አግኝተናል። አሁን የተወሰኑ መስኮችን በመፈለግ እና በማቀድ መስራት እንችላለን. በመቀጠል በኮርሱ ውስጥ ምስላዊነትን በኪባና እንመለከታለን እና ቀላል ዳሽቦርድ እንፈጥራለን። የ Logstash ውቅር ፋይል በተወሰኑ ሁኔታዎች ውስጥ በየጊዜው መዘመን እንደሚያስፈልገው መጥቀስ ተገቢ ነው, ለምሳሌ, የመስክ ዋጋን ከቁጥር ወደ ቃል መተካት ስንፈልግ. በሚቀጥሉት ጽሁፎች ውስጥ ይህንን ያለማቋረጥ እናደርጋለን.
ስለዚህ ተከታተሉት።
ምንጭ: hab.com