Ke hoʻomau nei au i kaʻu moʻolelo e pili ana i ka hana ʻana i nā hoaaloha Exchange a me ELK (hoʻomaka maanei). E hoʻomanaʻo wau iā ʻoe e hiki i kēia hui ke hana i kahi helu nui loa o nā lāʻau me ke kānalua ʻole. I kēia manawa e kamaʻilio mākou e pili ana i ka hana ʻana o Exchange me nā ʻāpana Logstash a me Kibana.
Hoʻohana ʻia ʻo Logstash i ka waihona ELK e hoʻoponopono naʻauao i nā lāʻau a hoʻomākaukau iā lākou no ka hoʻokomo ʻana ma Elastic ma ke ʻano o nā palapala, ma ke kumu e kūpono ai ke kūkulu ʻana i nā hiʻohiʻona like ʻole ma Kibana.
Kāu Mau Koho Paʻamau
Aia i ʻelua mau pae:
Ke kau ʻana a me ka hoʻonohonoho ʻana i ka pūʻolo OpenJDK.
Hoʻokomo a hoʻonohonoho i ka pūʻolo Logstash.
Hoʻokomo a hoʻonohonoho i ka pūʻolo OpenJDK
Pono e hoʻoiho a wehe ʻia ka pūʻolo OpenJDK i kahi papa kuhikuhi kikoʻī. A laila pono e hoʻokomo ʻia ke ala i kēia papa kuhikuhi i loko o ka $env:Path a me $env:JAVA_HOME mau ʻano o ka ʻōnaehana hana Windows:
E nānā kākou i ka mana Java:
PS C:> java -version
openjdk version "13.0.1" 2019-10-15
OpenJDK Runtime Environment (build 13.0.1+9)
OpenJDK 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
Hoʻokomo a hoʻonohonoho i ka pūʻolo Logstash
Hoʻoiho i ka waihona waihona me ka hoʻohele Logstash mai kēia wahi. Pono e wehe ʻia ka waihona i ke kumu o ka disk. Wehe i ka waihona C:Program Files ʻAʻole pono ia, e hōʻole ʻo Logstash e hoʻomaka maʻamau. A laila pono ʻoe e komo i ka faila jvm.options hoʻoponopono i ke kuleana no ka hoʻokaʻawale ʻana i ka RAM no ke kaʻina Java. Manaʻo wau e wehewehe i ka hapalua o ka RAM o ke kikowaena. Inā loaʻa iā 16 GB o RAM ma luna o ka moku, a laila ʻo nā kī paʻamau:
-Xms1g
-Xmx1g
pono e pani ia me:
-Xms8g
-Xmx8g
Eia kekahi, pono e hoʻopuka i ka laina -XX:+UseConcMarkSweepGC. Nā mea hou aku e pili ana i kēia maanei. ʻO ka hana aʻe e hana i kahi hoʻonohonoho paʻamau i ka faila logstash.conf:
Me kēia hoʻonohonoho, heluhelu ʻo Logstash i ka ʻikepili mai ka console, hoʻohele iā ia ma kahi kānana kaʻawale, a hoʻihoʻi iā ia i ka console. Ke hoʻohana nei i kēia hoʻonohonoho e hoʻāʻo i ka hana o Logstash. No ka hana ʻana i kēia, e holo kākou ma ke ʻano pāʻani:
PS C:...bin> .logstash.bat -f .logstash.conf
...
[2019-12-19T11:15:27,769][INFO ][logstash.javapipeline ][main] Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input:
[2019-12-19T11:15:27,847][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-12-19T11:15:28,113][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
Hoʻomaka maikaʻi ʻo Logstash ma ke awa 9600.
Kaʻina hana hope: e holo ana iā Logstash ma ke ʻano he lawelawe Windows. Hiki ke hana i kēia, no ka laʻana, me ka hoʻohana ʻana i ka pā NSSM:
PS C:...bin> .nssm.exe install logstash
Service "logstash" installed successfully!
hoʻomanawanui hewa
Hoʻopaʻa ʻia ka palekana o nā lāʻau i ka wā i hoʻoili ʻia mai ke kikowaena kumu e ka Persistent Queues mechanism.
Pehea e hana ai
ʻO ka hoʻonohonoho ʻana o nā pila i ka wā e hoʻoili ai i ka lāʻau: hoʻokomo → queue → kānana + puka.
Loaʻa i ka plugin input ka ʻikepili mai kahi kumu log, kākau iā ia i kahi queue, a hoʻouna i ka hōʻoia ua loaʻa ka ʻikepili i ke kumu.
Hoʻopili ʻia nā memo mai ka queue e Logstash, hele i ka kānana a me ka plugin output. I ka loaʻa ʻana o ka hōʻoia mai ka hoʻopuka ua hoʻouna ʻia ka log, wehe ʻo Logstash i ka log i hana ʻia mai ka pila. Inā kū ʻo Logstash, e noho mau nā memo a me nā memo a pau ʻaʻole i hōʻoia ʻia i ka pila, a e hoʻomau ʻo Logstash i ka hana ʻana iā lākou i ka manawa aʻe e hoʻomaka ai.
hoʻoponopono
Hiki ke hoʻololi ʻia e nā kī ma ka faila C:Logstashconfiglogstash.yml:
queue.type: (mau waiwai hiki - persisted и memory (default)).
path.queue: (ke ala i ka waihona me nā faila queue, i mālama ʻia ma C: Logstashqueue ma ka paʻamau).
queue.page_capacity: (ʻO ka nui o ka ʻaoʻao queue, ʻo 64mb ka waiwai paʻamau).
queue.drain: (ʻoiaʻiʻo / wahaheʻe - hiki / hoʻopau i ka hoʻopau ʻana i ka hana queue ma mua o ka pani ʻana i ka Logstash.
queue.max_events: (ka helu kiʻekiʻe o nā hanana i ka pila, ʻo 0 (palena ʻole)).
queue.max_bytes: (ka nui o ka queue nui ma nā bytes, paʻamau - 1024mb (1gb)).
Inā hoʻonohonoho ʻia queue.max_events и queue.max_bytes, a laila pau ka ʻae ʻia ʻana o nā memo i ka pila ke hiki i ka waiwai o kekahi o kēia mau hoʻonohonoho. E aʻo hou aʻe e pili ana i nā queues mau loa maanei.
He laʻana o ka ʻāpana o logstash.yml kuleana no ka hoʻonohonoho ʻana i ka pila:
queue.type: persisted
queue.max_bytes: 10gb
hoʻoponopono
ʻO ka hoʻonohonoho Logstash ka mea maʻamau i ʻekolu ʻāpana, kuleana no nā ʻano hana like ʻole o ka hoʻoili ʻana i nā log e komo mai ana: ka loaʻa ʻana (ʻāpana hoʻokomo), parsing (ʻāpana kānana) a me ka hoʻouna ʻana iā Elastic (ʻāpana puka). Ma lalo nei mākou e nānā pono i kēlā me kēia o lākou.
hoʻokomo o
Loaʻa iā mākou ke kahawai e komo mai ana me nā lāʻau maka mai nā ʻelele filebeat. ʻO kēia plugin kā mākou e hōʻike ai i ka ʻāpana komo:
input {
beats {
port => 5044
}
}
Ma hope o kēia hoʻonohonoho, hoʻomaka ʻo Logstash e hoʻolohe i ke awa 5044, a i ka loaʻa ʻana o nā lāʻau, hoʻoponopono iā lākou e like me nā hoʻonohonoho o ka ʻāpana kānana. Inā pono, hiki iā ʻoe ke kāʻei i ke kahawai no ka loaʻa ʻana o nā lāʻau mai filebit ma SSL. E heluhelu hou e pili ana i nā hoʻonohonoho plugin beats maanei.
Kānana
ʻO nā moʻolelo kikokikona hoihoi no ka hoʻoponopono ʻana i hoʻopuka ʻia e Exchange ma ke ʻano csv me nā kahua i wehewehe ʻia i loko o ka faila log ponoʻī. No ka hoʻopau ʻana i nā moʻolelo csv, hāʻawi ʻo Logstash iā mākou i ʻekolu plugins: hoʻokaʻawale, csv a me grok. ʻO ka mua ka mea nui loa wikiwiki, akā, hoʻopaʻa ʻia me ka pau ʻana i nā lāʻau maʻalahi loa.
No ka laʻana, e hoʻokaʻawale i kēia moʻolelo i ʻelua (no ka loaʻa ʻana o kahi koma i loko o ke kahua), ʻo ia ke kumu e paʻi hewa ʻia ai ka log:
ʻO ka hoʻonohonoho Logstash hiki iā ʻoe ke hoʻohana nā ʻōlelo kūlana, no laila hiki iā mākou ke hoʻouna wale i nā lāʻau i kau ʻia me ka filebeat tag i ka dissect plugin IIS. I loko o ka plugin hoʻohālikelike mākou i nā koina kahua me ko lākou mau inoa, kāpae i ka kahua kumu message, i loaʻa kahi komo mai ka log, a hiki iā mākou ke hoʻohui i kahi kahua maʻamau e loaʻa, no ka laʻana, ka inoa o ka noi kahi a mākou e hōʻiliʻili ai i nā lāʻau.
I ka hihia o ka nānā ʻana i nā lāʻau, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i ka plugin csv; hiki iā ia ke hana pololei i nā māla paʻakikī:
I loko o ka plugin hoʻohālikelike mākou i nā koina kahua me ko lākou mau inoa, kāpae i ka kahua kumu message (a me na kahua tenant-id и schema-version), i loaʻa kahi komo mai ka log, a hiki iā mākou ke hoʻohui i kahi kahua maʻamau, e like me ka inoa o ka noi kahi a mākou e hōʻiliʻili ai i nā lāʻau.
Ma ka puka ʻana mai ke kahua kānana, e loaʻa iā mākou nā palapala ma kahi kokoke mua, mākaukau no ka nānā ʻana ma Kibana. E nele ana mākou i kēia mau mea:
E ʻike ʻia nā māla helu ma ke ʻano he kikokikona, kahi e pale ai i nā hana ma luna o lākou. ʻO ia hoʻi, nā māla time-taken IIS log, a me nā kahua recipient-count и total-bites Hoʻopaʻa moʻolelo.
Aia i loko o ka timestamp palapala maʻamau ka manawa i hana ʻia ai ka log, ʻaʻole ka manawa i kākau ʻia ma ka ʻaoʻao kikowaena.
kahua recipient-address e like me kahi kahua kūkulu, ʻaʻole e ʻae i ka nānā ʻana e helu i ka poʻe i loaʻa i nā leka.
ʻO ka manawa kēia e hoʻohui i kekahi mea kilokilo i ke kaʻina logging.
Ke hoʻololi nei i nā kahua helu
He koho ka plugin dissect convert_datatype, hiki ke hoʻohana ʻia no ka hoʻololi ʻana i kahi kahua kikokikona i kahi ʻano kikohoʻe. No ka laʻana, e like me kēia:
Pono e hoʻomanaʻo he kūpono wale kēia ʻano inā loaʻa i ke kahua kahi kaula. ʻAʻole hana ʻia nā waiwai null mai nā māla e ke koho a hoʻolei ʻia i kahi ʻokoʻa.
No ka hoʻopaʻa ʻana i nā lāʻau, ʻoi aku ka maikaʻi o ka hoʻohana ʻole ʻana i kahi ʻano hoʻololi like, ʻoiai nā māla recipient-count и total-bites nele paha. No ka hoʻololi ʻana i kēia mau kahua ʻoi aku ka maikaʻi o ka hoʻohana ʻana i kahi plugin hoʻololi:
E hoʻokaʻawale ana i ka recipient_address i nā mea loaʻa
Hiki ke hoʻoponopono ʻia kēia pilikia me ka hoʻohana ʻana i ka plugin mutate:
mutate {
split => ["recipient_address", ";"]
}
Ke hoʻololi nei i ka hōʻailona manawa
I ka hihia o ka nānā ʻana i nā lāʻau, hoʻopau maʻalahi ka hana e ka plugin la, e kōkua iā ʻoe e kākau ma ke kahua timestamp lā a me ka manawa ma ke ʻano i koi ʻia mai ke kahua date-time:
date {
match => [ "date-time", "ISO8601" ]
timezone => "Europe/Moscow"
remove_field => [ "date-time" ]
}
I ka hihia o nā lāʻau IIS, pono mākou e hoʻohui i ka ʻikepili kahua date и time me ka hoʻohana ʻana i ka plugin mutate, e hoʻopaʻa inoa i ka palena manawa a mākou e pono ai a kau i kēia manawa i loko timestamp me ka hoʻohana ʻana i ka plugin date:
Hoʻohana ʻia ka ʻāpana hoʻopuka no ka hoʻouna ʻana i nā lāʻau i hana ʻia i ka loaʻa lāʻau. I ka hoʻouna pololei ʻana iā Elastic, hoʻohana ʻia kahi plugin ʻasticlaau, e kuhikuhi ana i ka helu kikowaena a me ka papa kuhikuhi inoa no ka hoʻouna ʻana i ka palapala i hana ʻia: