A
A
Alistair O2017-07-11 11:57:05
Python
Alistair O, 2017-07-11 11:57:05

How to update correctly in postgresql database?

Good afternoon, in the table, in the value column, logs are written in this form, in Zabbix itself there is no way to use regexp
, for this reason I want to leave only the necessary in value, the logs fall in this form,

Имя журнала:   Security
Источник:      Microsoft-Windows-Security-Auditing
Дата:          04.07.2017 13:04:31
Код события:   4624
Категория задачи:Вход в систему
Уровень:       Сведения
Ключевые слова:Аудит успеха
Пользователь:  Н/Д
Компьютер:     rootpc
Описание:
Вход с учетной записью выполнен успешно.

Субъект:
  ИД безопасности:		система
  Имя учетной записи:		ROOTPC$
  Домен учетной записи:		WORKGROUP
  Код входа:		0x3e7

Тип входа:			7

Новый вход:
  ИД безопасности:		rootpc\root
  Имя учетной записи:		root
  Домен учетной записи:		rootpc
  Код входа:		0x1d82ccc
  GUID входа:		{00000000-0000-0000-0000-000000000000}

Сведения о процессе:
  Идентификатор процесса:		0x2dc
  Имя процесса:		C:\Windows\System32\winlogon.exe

Сведения о сети:
  Имя рабочей станции:	ROOTPC
  Сетевой адрес источника:	127.0.0.1
  Порт источника:		0

Сведения о проверке подлинности:
  Процесс входа:		User32 
  Пакет проверки подлинности:	Negotiate
  Промежуточные службы:	-
  Имя пакета (только NTLM):	-
  Длина ключа:		0

Данное событие возникает при создании сеанса входа. Оно создается в системе, вход в которую выполнен.

Поля "Субъект" указывают на учетную запись локальной системы, запросившую вход. Обычно это служба, например, служба "Сервер", или локальный процесс, такой как Winlogon.exe или Services.exe.

В поле "Тип входа" указан тип выполненного входа. Самыми распространенными являются типы 2 (интерактивный) и 3 (сетевой).

Поля "Новый вход" указывают на учетную запись, для которой создан новый сеанс входа, то есть на учетную запись, с которой выполнен вход.

В полях, которые относятся к сети, указан источник запроса на удаленный вход. Имя рабочей станции доступно не всегда, и в некоторых случаях это поле может оставаться незаполненным.

Поля сведений о проверке подлинности содержат подробные данные о конкретном запросе на вход.
  - GUID входа - это уникальный идентификатор, который позволяет сопоставить данное событие с событием KDC.
  - В поле "Промежуточные службы" указано, какие промежуточные службы участвовали в данном запросе на вход.
  - Поле "Имя пакета" указывает на подпротокол, использованный с протоколами NTLM.
  - Поле "Длина ключа" содержит длину созданного ключа сеанса. Это поле может иметь значение "0", если ключ сеанса не запрашивался.
Xml события:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
    <EventID>4624</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>12544</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2017-07-04T07:04:31.590797100Z" />
    <EventRecordID>12290</EventRecordID>
    <Correlation />
    <Execution ProcessID="664" ThreadID="6568" />
    <Channel>Security</Channel>
    <Computer>rootpc</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-18</Data>
    <Data Name="SubjectUserName">ROOTPC$</Data>
    <Data Name="SubjectDomainName">WORKGROUP</Data>
    <Data Name="SubjectLogonId">0x3e7</Data>
    <Data Name="TargetUserSid">S-1-5-21-1536508992-1930176244-3495809711-1000</Data>
    <Data Name="TargetUserName">root</Data>
    <Data Name="TargetDomainName">rootpc</Data>
    <Data Name="TargetLogonId">0x1d82ccc</Data>
    <Data Name="LogonType">7</Data>
    <Data Name="LogonProcessName">User32 </Data>
    <Data Name="AuthenticationPackageName">Negotiate</Data>
    <Data Name="WorkstationName">ROOTPC</Data>
    <Data Name="LogonGuid">{00000000-0000-0000-0000-000000000000}</Data>
    <Data Name="TransmittedServices">-</Data>
    <Data Name="LmPackageName">-</Data>
    <Data Name="KeyLength">0</Data>
    <Data Name="ProcessId">0x2dc</Data>
    <Data Name="ProcessName">C:\Windows\System32\winlogon.exe</Data>
    <Data Name="IpAddress">127.0.0.1</Data>
    <Data Name="IpPort">0</Data>
  </EventData>
</Event>

the question is, how can they leave only 5-6 rows in the value table from this record? these 5-6 lines are unique:
SID: rootpc\root
Logon type: 7
Date: 07/04/2017 13:04:31
Event ID: 4624

Answer the question

In order to leave comments, you need to log in

1 answer(s)
J
javedimka, 2017-07-11
@box4

>>> import re
>>> keywords = ['ИД безопасности:', 'Тип входа:', 'Дата:', 'Код события:']
>>> pattern = re.compile(r'\s+\w+|'.join(keywords))
>>> with open('log.txt', encoding='utf-8' ) as f:
...     for line in f:
...         if pattern.search(line):
...             print(line)
...
Дата:          04.07.2017 13:04:31

Код события:   4624

  ИД безопасности:		система

Тип входа:			7

  ИД безопасности:		rootpc\root

Well, as you can see, not all of them are unique.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question