# Парсинг поля “message” windows print

**URL:** <https://discuss.elastic.co/t/message-windows-print/282018>\
**Category:** Вопросы на русском языке\
**Created:** [August 19, 2021, 11:26pm UTC](https://discuss.elastic.co/t/message-windows-print/282018 "2021-08-19T23:26:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![zhsv](https://avatars.discourse-cdn.com/v4/letter/z/7ba0ec/32.png) [@zhsv](https://discuss.elastic.co/u/zhsv)\
**Post date:** [August 19, 2021, 11:26pm UTC](https://discuss.elastic.co/t/message-windows-print/282018/1 "2021-08-19T23:26:44Z")

</div>

Добрый день!  
Прошу помочь разобрать лог печати из windows. За ранее извиняюсь, т.к. дуб дубом в grok

```auto
[2021-08-19T23:14:41,726][WARN][logstash.outputs.elasticsearch][main][7a22c627e1accad82d7e582d6ff4b94f3fb25a00d651310816b6db7e5757d6f1] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"win_print-logs-19.08.2021", :routing=>nil}, {"winlog"=>{"channel"=>"Microsoft-Windows-PrintService/Operational", "process"=>{"thread"=>{"id"=>12372}, "pid"=>3692}, "user"=>{"identifier"=>"S-1-5-21-3399346512-758631369-2990822830-15962", "name"=>"i.ivanov", "type"=>"User", "domain"=>"AAA"}, "computer_name"=>"MS-307-2.AAA.RT.LOCAL", "opcode"=>"Операция очереди успешно выполнена", "provider_name"=>"Microsoft-Windows-PrintService", "provider_guid"=>"{747ef6fd-e535-4d16-b510-42c90f6873a1}", "user_data"=>{"Param5"=>"WF-M5690 Series(Сеть) (Копировать 1)", "Param4"=>"\\\\MS-307-2", "Param3"=>"i.ivanov", "Param2"=>"Печать документа", "Param8"=>"1", "Param6"=>"EP065BC7:WF-M5690 SERIES", "Param7"=>"7284", "xml_name"=>"DocumentPrinted", "Param1"=>"169"}, "keywords"=>["Задание печати документа", "Классическое событие очереди"], "api"=>"wineventlog", "record_id"=>3251, "event_id"=>"307", "task"=>"Печать документа"}, "event"=>{"provider"=>"Microsoft-Windows-PrintService", "code"=>"307", "created"=>"2021-08-19T23:14:39.952Z", "kind"=>"event", "action"=>"Печать документа"}, "tags"=>["win_print", "win_print", "beats_input_codec_plain_applied", "_grokparsefailure"], "ecs"=>{"version"=>"1.10.0"}, "host"=>{"os"=>{"kernel"=>"10.0.19041.1052 (WinBuild.160101.0800)", "build"=>"19042.1052", "type"=>"windows", "platform"=>"windows", "version"=>"10.0", "name"=>"Windows 10 Enterprise", "family"=>"windows"}, "id"=>"c3d5f491-5268-4d3d-bc36-8aad2de6cfec", "ip"=>["10.0.82.2"], "name"=>"MS-307-2.AAA.RT.LOCAL", "mac"=>["6c:4b:90:6b:a4:62"], "hostname"=>"MS-307-2", "architecture"=>"x86_64"}, "message"=>"Документ 169, Печать документа, которым владеет i.ivanov на \\\\MS-307-2, был распечатан на WF-M5690 Series(Сеть) (Копировать 1) через порт EP065BC7:WF-M5690 SERIES. Размер в байтах: 7284. Страниц напечатано: 1. Действий пользователя не требуется.", "@timestamp"=>2021-08-19T23:14:38.248Z, "@version"=>"1", "log"=>{"level"=>"сведения"}, "agent"=>{"id"=>"e54412be-f63c-46e1-bce7-d98a55a25b1f", "type"=>"winlogbeat", "ephemeral_id"=>"2034feeb-a43b-413c-a197-859bcfc247d7", "version"=>"7.14.0", "name"=>"MS-307-2", "hostname"=>"MS-307-2"}}], :response=>{"index"=>{"_index"=>"win_print-logs-19.08.2021", "_type"=>"_doc", "_id"=>"NrqxYHsBTAwmix39-Veb", "status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse field [host] of type [text] in document with id 'NrqxYHsBTAwmix39-Veb'. Preview of field's value: '{hostname=MS-307-2, os={build=19042.1052, kernel=10.0.19041.1052 (WinBuild.160101.0800), name=Windows 10 Enterprise, type=windows, family=windows, version=10.0, platform=windows}, ip=[10.0.82.2], name=MS-307-2.AAA.RT.LOCAL, id=c3d5f491-5268-4d3d-bc36-8aad2de6cfec, mac=[6c:4b:90:6b:a4:62], architecture=x86_64}'", "caused_by"=>{"type"=>"illegal_state_exception", "reason"=>"Can't get text on a START_OBJECT at 1:1233"}}}}}

```

Необходима информация, IP, пользователь, имя ПК, домен, название принтера, имя документа, кол-во. страниц.

п.с. лог взят из logstash-plain

---

<div class="post-metadata">

**Author:** ![KaPBaJIOJI](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kapbajioji/32/79243_2.png) [@KaPBaJIOJI](https://discuss.elastic.co/u/KaPBaJIOJI)\
**Post date:** [August 20, 2021, 8:25am UTC](https://discuss.elastic.co/t/message-windows-print/282018/2 "2021-08-20T08:25:26Z")

</div>

А при чем здесь лог логстэша? когда тебе надо парсить изначальный виндовый лог и уже для него писать грок фильтр.  
Скинь виндовый лог, а из текущего лога надо смотреть конфиг твоего логстэша, какие фильтры или модули включены

---

<div class="post-metadata">

**Author:** ![zhsv](https://avatars.discourse-cdn.com/v4/letter/z/7ba0ec/32.png) [@zhsv](https://discuss.elastic.co/u/zhsv)\
**Post date:** [August 23, 2021, 5:54am UTC](https://discuss.elastic.co/t/message-windows-print/282018/3 "2021-08-23T05:54:18Z")

</div>

У меня данные передаются с Winlogbeat, вот кусочек конфига  
winlogbeat.event\_logs:

- name: Microsoft-Windows-PrintService/Operational  
ignore\_older: 72h  
event\_id: 307  
Беру данные из журнала печати, только по событию 307.

Вот лог винды

```auto
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-PrintService" Guid="{747ef6fd-e535-4d16-b510-42c90f6873a1}" /> 
  <EventID>307</EventID> 
  <Version>0</Version> 
  <Level>4</Level> 
  <Task>26</Task> 
  <Opcode>11</Opcode> 
  <Keywords>0x4000000000000840</Keywords> 
  <TimeCreated SystemTime="2021-08-23T05:42:54.4390524Z" /> 
  <EventRecordID>3434</EventRecordID> 
  <Correlation /> 
  <Execution ProcessID="3816" ThreadID="1424" /> 
  <Channel>Microsoft-Windows-PrintService/Operational</Channel> 
  <Computer>MS-307-2.AAA.RT.LOCAL</Computer> 
  <Security UserID="S-1-5-21-3399346512-758631369-2990822830-14224" /> 
  </System>
- <UserData>
- <DocumentPrinted xmlns="http://manifests.microsoft.com/win/2005/08/windows/printing/spooler/core/events">
  <Param1>2</Param1> 
  <Param2>Печать документа</Param2> 
  <Param3>i.ivanov</Param3> 
  <Param4>\\MS-307-2</Param4> 
  <Param5>WF-M5690 Series(Сеть) (Копировать 1)</Param5> 
  <Param6>EP065BC7:WF-M5690 SERIES</Param6> 
  <Param7>3686988</Param7> 
  <Param8>1</Param8> 
  </DocumentPrinted>
  </UserData>
  </Event>

```

---

<div class="post-metadata">

**Author:** ![dedKoljan](https://avatars.discourse-cdn.com/v4/letter/d/a3d4f5/32.png) [@dedKoljan](https://discuss.elastic.co/u/dedKoljan)\
**Post date:** [August 27, 2021, 3:08am UTC](https://discuss.elastic.co/t/message-windows-print/282018/4 "2021-08-27T03:08:49Z")

</div>

Sergey, не надо себя ругать  
если Вы и дальше будете продолжать работать с Logstash , etc..  
то я бы поставил у себя на компе 2 приложения , Filebeat ( ) и Logstash() и что б последний писал в текстовый файл:  
output {  
file {  
path =\> "c:\dev\Multi\_out.log"  
}  
#stdout { codec =\> rubydebug }  
}.  
есть также grok debug , который мне оч сильно помог,  
а с вашим фийлом не видно конфига полностью  
где-то ошибка в '"Can't get text on a START\_OBJECT at 1:1233"  
плюс , кое-что из этого уже есть  
Пользователь, **"Param3"=\>"i.ivanov",**  
имя ПК, домен,  
название принтера, **"Param6"=\>"EP065BC7:WF-M5690 SERIES",**..  
а кол-во. страниц надо брать из "message" опять.. ка бы еще один Grok.. ну и т.д

---

<div class="post-metadata">

**Author:** ![zhsv](https://avatars.discourse-cdn.com/v4/letter/z/7ba0ec/32.png) [@zhsv](https://discuss.elastic.co/u/zhsv)\
**Post date:** [August 27, 2021, 6:16am UTC](https://discuss.elastic.co/t/message-windows-print/282018/5 "2021-08-27T06:16:24Z")

</div>

Приветствую. На самом деле, уже чуть разобрался.  
Winlogbeat

```auto
winlogbeat.event_logs:
  - name: Microsoft-Windows-PrintService/Operational
    ignore_older: 72h
    event_id: 307
tags: ["win_print"]
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
processors:
  - drop_fields:
      fields: [winlog.user_data.Param2, winlog.event_id, agent.type, agent.version, log.level, message, winlog.keywords, event.action, winlog.user_data.Param3, winlog.user_data.Param4, agent.name, ecs.version, event.kind, event.provider, winlog.provider_name, event.code, winlog.api, winlog.channel, agent.ephemeral_id, agent.id, winlog.task, winlog.user_data.Param1, winlog.user_data.Param6, winlog.record_id, winlog.provider_guid, winlog.process.thread.id, winlog.process.pid, winlog.opcode, winlog.user_data.Param7, winlog.user_data.xml_name, winlog.user.identifier, winlog.user.type]

```

- drop\_fields: - убираю лишнюю информацию до передачи ее в Logstash

Logstash конфиг

```auto
input {
  beats {
    port => 5044
    tags => "win_print"
  }
}
filter {
    mutate {
      remove_field => ["host"]
    }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "win_print-logs-%{+YYYY.MM.dd}"
  }

```

В ELK получаю:

```auto
_id twYwhnsBxiHTOcNKWi0h
_index win_print-logs-2021.08.27
_score - 
_type _doc
@timestamp Aug 27, 2021 @ 16:58:37.972
@version 1
agent.hostname MS-307
event.created Aug 27, 2021 @ 16:58:39.609
tags win_print, win_print, beats_input_raw_event, _grokparsefailure
winlog.computer_name MS-307.AAA.RT.LOCAL
winlog.user_data.Param5 HP Color LaserJet Pro M479 PCL-6 (V4) (сеть)
winlog.user_data.Param8 1
winlog.user.domain AAA
winlog.user.name i.ivanov

```

Вот тут вопрос! Как мне отсеять печать на принтерах PDF?  
Я не смог сделать это в Winlogbeat (хотя судя по документации, там можно работать со скриптами). Думаю, можно фильтром в конфиге Logstash, но как?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 24, 2021, 6:16am UTC](https://discuss.elastic.co/t/message-windows-print/282018/6 "2021-09-24T06:16:59Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
