கடந்த காலத்தில்
இந்த தலைப்பில் ஏராளமான கட்டுரைகள் இருப்பதால், ELK அடுக்கின் நிறுவலை பாடநெறி மறைக்காது; உள்ளமைவு கூறுகளை நாங்கள் கருத்தில் கொள்வோம்.
Logstash உள்ளமைவுக்கான செயல் திட்டத்தை உருவாக்குவோம்:
- எலாஸ்டிக் தேடலைச் சரிபார்ப்பது பதிவுகளை ஏற்கும் (போர்ட்டின் செயல்பாடு மற்றும் திறந்தநிலையைச் சரிபார்க்கிறது).
- நிகழ்வுகளை Logstash க்கு எவ்வாறு அனுப்பலாம், ஒரு முறையைத் தேர்வுசெய்து அதைச் செயல்படுத்துவது எப்படி என்பதை நாங்கள் கருதுகிறோம்.
- Logstash உள்ளமைவு கோப்பில் உள்ளீட்டை உள்ளமைக்கிறோம்.
- பதிவு செய்தி எப்படி இருக்கும் என்பதைப் புரிந்துகொள்வதற்காக, பிழைத்திருத்த பயன்முறையில் Logstash உள்ளமைவு கோப்பில் வெளியீட்டை உள்ளமைக்கிறோம்.
- வடிகட்டியை அமைத்தல்.
- ElasticSearch இல் சரியான வெளியீட்டை அமைத்தல்.
- லாக்ஸ்டாஷ் தொடங்குகிறது.
- கிபானாவில் உள்ள பதிவுகளை சரிபார்க்கிறது.
ஒவ்வொரு புள்ளியையும் இன்னும் விரிவாகப் பார்ப்போம்:
எலாஸ்டிக் தேடலைச் சரிபார்ப்பது பதிவுகளை ஏற்கும்
இதைச் செய்ய, லாக்ஸ்டாஷ் பயன்படுத்தப்பட்ட கணினியிலிருந்து எலாஸ்டிக் தேடலுக்கான அணுகலைச் சரிபார்க்க கர்ல் கட்டளையைப் பயன்படுத்தலாம். நீங்கள் அங்கீகாரம் உள்ளமைக்கப்பட்டிருந்தால், நாங்கள் பயனர்/கடவுச்சொல்லை கர்ல் வழியாக மாற்றுவோம், நீங்கள் அதை மாற்றவில்லை என்றால் போர்ட் 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 ~]$
பதிலைப் பெறவில்லை என்றால், பல வகையான பிழைகள் இருக்கலாம்: மீள் தேடல் செயல்முறை இயங்கவில்லை, தவறான போர்ட் குறிப்பிடப்பட்டுள்ளது அல்லது எலாஸ்டிக் தேடல் நிறுவப்பட்ட சர்வரில் ஃபயர்வால் மூலம் போர்ட் தடுக்கப்பட்டது.
செக் பாயிண்ட் ஃபயர்வாலில் இருந்து லாக்ஸ்டாஷிற்கு பதிவுகளை எப்படி அனுப்பலாம் என்று பார்க்கலாம்
செக் பாயிண்ட் மேனேஜ்மென்ட் சர்வரிலிருந்து log_exporter பயன்பாட்டைப் பயன்படுத்தி syslog வழியாக Logstash க்கு பதிவுகளை அனுப்பலாம், அதைப் பற்றி மேலும் படிக்கலாம் இங்கே
cp_log_export பெயரைச் சேர் check_point_syslog இலக்கு-சேவையகம் > இலக்கு-போர்ட் 5555 நெறிமுறை tcp வடிவமைப்பு பொதுவான வாசிப்பு-முறை அரை-ஒன்றுபட்டது
> - Logstash இயங்கும் சேவையகத்தின் முகவரி, target-port 5555 - நாம் பதிவுகளை அனுப்பும் துறைமுகம், tcp வழியாக பதிவுகளை அனுப்புவதன் மூலம் சேவையகத்தை ஏற்ற முடியும், எனவே சில சந்தர்ப்பங்களில் udp ஐப் பயன்படுத்துவது மிகவும் சரியானது. .
Logstash உள்ளமைவு கோப்பில் INPUT ஐ அமைத்தல்
முன்னிருப்பாக, கட்டமைப்பு கோப்பு /etc/logstash/conf.d/ கோப்பகத்தில் அமைந்துள்ளது. கட்டமைப்பு கோப்பு 3 அர்த்தமுள்ள பகுதிகளைக் கொண்டுள்ளது: INPUT, FILTER, OUTPUT. IN உள்ளீடு கணினி எங்கிருந்து பதிவுகளை எடுக்கும் என்பதை நாங்கள் குறிப்பிடுகிறோம் வடிகட்டி பதிவை அலசவும் - செய்தியை புலங்கள் மற்றும் மதிப்புகளாக எவ்வாறு பிரிப்பது என்பதை அமைக்கவும் வெளியீடு நாங்கள் வெளியீட்டு ஸ்ட்ரீமை உள்ளமைக்கிறோம் - அங்கு பாகுபடுத்தப்பட்ட பதிவுகள் அனுப்பப்படும்.
முதலில், 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), போர்ட் 5555 வழியாக இணைப்புகளை நாங்கள் ஏற்றுக்கொள்கிறோம் - ஃபயர்வால் கொள்கையால் போர்ட் அனுமதிக்கப்பட வேண்டும்.
வகை => "சோதனைச் சாவடி"
உங்களிடம் பல உள்வரும் இணைப்புகள் இருந்தால் மிகவும் வசதியான ஆவணத்தை நாங்கள் குறிக்கிறோம். பின்னர், ஒவ்வொரு இணைப்பிற்கும் நீங்கள் லாஜிக்கல் இஃப் கன்ஸ்ட்ரக்ட் பயன்படுத்தி உங்கள் சொந்த வடிப்பானை எழுதலாம்.
கோப்பு:
input {
file {
path => "/var/log/openvas_report/*"
type => "openvas"
start_position => "beginning"
}
}
அமைப்புகளின் விளக்கம்:
பாதை => "/var/log/openvas_report/*"
கோப்புகளைப் படிக்க வேண்டிய கோப்பகத்தை நாங்கள் குறிப்பிடுகிறோம்.
வகை => "ஓபன்வாஸ்"
நிகழ்வு வகை.
start_position => "ஆரம்பம்"
கோப்பை மாற்றும்போது, அது முழு கோப்பையும் படிக்கிறது; நீங்கள் "முடிவு" என அமைத்தால், கோப்பின் முடிவில் புதிய பதிவுகள் தோன்றும் வரை கணினி காத்திருக்கிறது.
Exec:
input {
exec {
command => "ls -alh"
interval => 30
}
}
இந்த உள்ளீட்டைப் பயன்படுத்தி, ஒரு (மட்டும்!) ஷெல் கட்டளை தொடங்கப்பட்டு அதன் வெளியீடு பதிவு செய்தியாக மாற்றப்படுகிறது.
கட்டளை => "ls -alh"
நாம் விரும்பும் வெளியீட்டின் கட்டளை.
இடைவெளி => 30
வினாடிகளில் கட்டளை அழைப்பு இடைவெளி.
ஃபயர்வாலில் இருந்து பதிவுகளைப் பெற, நாங்கள் ஒரு வடிப்பானைப் பதிவு செய்கிறோம் tcp அல்லது புட், பதிவுகள் எவ்வாறு 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 இல் சரியான வெளியீட்டை அமைத்தல்
வடிகட்டி கட்டமைக்கப்பட்டவுடன், நீங்கள் தரவுத்தளத்தில் பதிவுகளை பதிவேற்றலாம் elasticsearch:
output
{
if [type] == "checkpoint"
{
elasticsearch
{
hosts => ["10.10.1.200:9200"]
index => "checkpoint-%{+YYYY.MM.dd}"
user => "tssolution"
password => "cool"
}
}
}
ஆவணம் சோதனைச் சாவடி வகையுடன் கையொப்பமிடப்பட்டிருந்தால், நிகழ்வை மீள் தேடல் தரவுத்தளத்தில் சேமித்து வைப்போம், இது 10.10.1.200 அன்று போர்ட் 9200 இல் உள்ள இணைப்புகளை இயல்பாக ஏற்றுக்கொள்கிறது. ஒவ்வொரு ஆவணமும் ஒரு குறிப்பிட்ட குறியீட்டில் சேமிக்கப்படும், இந்த விஷயத்தில் நாம் "செக்பாயிண்ட்-" + தற்போதைய நேர தேதி குறியீட்டில் சேமிக்கிறோம். ஒவ்வொரு குறியீட்டிலும் ஒரு குறிப்பிட்ட புலங்கள் இருக்கலாம் அல்லது ஒரு செய்தியில் புதிய புலம் தோன்றும்போது தானாகவே உருவாக்கப்படும்; புல அமைப்புகளையும் அவற்றின் வகையையும் மேப்பிங்கில் பார்க்கலாம்.
நீங்கள் அங்கீகாரம் உள்ளமைக்கப்பட்டிருந்தால் (அதை நாங்கள் பின்னர் பார்ப்போம்), ஒரு குறிப்பிட்ட குறியீட்டில் எழுதுவதற்கான சான்றுகள் குறிப்பிடப்பட வேண்டும், இந்த எடுத்துக்காட்டில் இது "tssolution" கடவுச்சொல்லுடன் "cool" ஆகும். ஒரு குறிப்பிட்ட குறியீட்டிற்கு மட்டுமே பதிவுகளை எழுதுவதற்கான பயனர் உரிமைகளை நீங்கள் வேறுபடுத்தலாம்.
லாக்ஸ்டாஷைத் தொடங்கவும்.
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 தொடக்க logstash
செயல்முறை தொடங்கப்பட்டதா என்பதை நாங்கள் சரிபார்க்கிறோம்:
sudo systemctl நிலை logstash
சாக்கெட் மேலே உள்ளதா என்று பார்க்கலாம்:
netstat -nat |grep 5555
கிபானாவில் உள்ள பதிவுகளை சரிபார்க்கிறது.
எல்லாம் இயங்கிய பிறகு, கிபானா - டிஸ்கவரிக்குச் செல்லவும், எல்லாம் சரியாக உள்ளமைக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும், படம் கிளிக் செய்யக்கூடியது!
எல்லா பதிவுகளும் இடத்தில் உள்ளன, எல்லா புலங்களையும் அவற்றின் மதிப்புகளையும் நாம் பார்க்கலாம்!
முடிவுக்கு
லாக்ஸ்டாஷ் உள்ளமைவு கோப்பை எவ்வாறு எழுதுவது என்று பார்த்தோம், இதன் விளைவாக அனைத்து புலங்கள் மற்றும் மதிப்புகளின் பாகுபடுத்தி கிடைத்தது. இப்போது நாம் குறிப்பிட்ட புலங்களைத் தேடுதல் மற்றும் திட்டமிடுதல் ஆகியவற்றுடன் வேலை செய்யலாம். படிப்பில் அடுத்து கிபானாவில் காட்சிப்படுத்தலைப் பார்த்து எளிமையான டாஷ்போர்டை உருவாக்குவோம். சில சூழ்நிலைகளில் Logstash உள்ளமைவு கோப்பு தொடர்ந்து புதுப்பிக்கப்பட வேண்டும் என்பது குறிப்பிடத்தக்கது, எடுத்துக்காட்டாக, ஒரு புலத்தின் மதிப்பை எண்ணிலிருந்து ஒரு வார்த்தைக்கு மாற்ற வேண்டும். அடுத்தடுத்த கட்டுரைகளில் இதை தொடர்ந்து செய்வோம்.
எனவே காத்திருங்கள்
ஆதாரம்: www.habr.com