Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
docs
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
core
docs
Merge requests
!337
audit_log.md: add notifications part (draft)
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
audit_log.md: add notifications part (draft)
notifications
into
main
Overview
0
Commits
2
Pipelines
7
Changes
1
Merged
Alexander Tolstoy
requested to merge
notifications
into
main
1 year ago
Overview
0
Commits
2
Pipelines
7
Changes
1
Expand
Close #195
Target branch: main
Changes should be cherry-picked to 24.1: no
Staging:
https://docs.binary.picodata.io/picodata/branch-.../
0
0
Merge request reports
Compare
main
version 6
146a078a
1 year ago
version 5
ba589cd5
1 year ago
version 4
86e559b5
1 year ago
version 3
cf6889f4
1 year ago
version 2
2d863c54
1 year ago
version 1
163dea13
1 year ago
main (base)
and
latest version
latest version
4bd8cb1a
2 commits,
1 year ago
version 6
146a078a
2 commits,
1 year ago
version 5
ba589cd5
2 commits,
1 year ago
version 4
86e559b5
2 commits,
1 year ago
version 3
cf6889f4
2 commits,
1 year ago
version 2
2d863c54
2 commits,
1 year ago
version 1
163dea13
1 commit,
1 year ago
1 file
+
118
−
1
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
docs/tutorial/audit_log.md
+
118
−
1
Options
@@ -111,9 +111,126 @@ tail -f /tmp/audit.log
инстансу Picodata, используйте такую команду:
```
bash
journalctl
-f
_COMM
=
picodata
journalctl
-f
|
grep
AUDIT
```
## Оповещения о событиях журнала аудита {: #notifications }
### Поддерживаемые способы доставки оповещений {: #supported_notifications }
В Picodata существует возможность получать оповещения о событиях,
зафиксированных в журнале аудита. Поддерживаются следующие способы
доставки оповещений:
-
уведомления для графического рабочего стола
-
уведомления по электронной почте
### Оповещения для рабочего стола {: #desktop_notifications }
Для доставки оповещений на рабочий стол используется программа
`notify-send`
, имеющаяся в составе защищенной ОС. Для того, чтобы
использовать ее совместно с Picodata, потребуется создать файл-обработчик
следующего содержания:
```
python
#!/usr/bin/env python
import
json
import
subprocess
import
sys
from
systemd
import
journal
for
line
in
sys
.
stdin
:
if
line
:
journal
.
send
(
f
"
AUDIT
{
line
}
"
)
entry
=
json
.
loads
(
line
)
if
entry
[
'
severity
'
]:
subprocess
.
call
([
'
notify-send
'
,
entry
[
'
message
'
]])
```
Сохраните этот код в файл
`audit-sink.py`
в директорию, из которой будет
запускаться
`picodata`
, сделайте его исполняемым (
`chmod +x
audit-sink.py`
) и затем запустите инстанс:
```
shell
picodata run
--admin-sock
./i1.sock
--audit
=
'|/tmp/audit-sink.py'
```
В результате, сообщения из журнала аудита будут сохраняться в
`syslog`
и
дублироваться в виде уведомлений на рабочем столе.
### Оповещения по электронной почте {: #email_notifications }
Для получения оповещений по электронной почте потребуются:
-
программа
`sendmail`
, имеющаяся в составе защищенной ОС
-
настройка
`sendmail`
для корректной работы с почтовым сервером
-
файл-обработчик для дублирования событий журнала аудит в виде сообщений для
`sendmail`
Для настройки
`sendmail`
нужно отредактировать файл настроек
`/etc/mail/sendmail.mc`
следующим образом:
```
define(`SMART_HOST', `your.smtp.server')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
```
где
`your.smtp.server`
— адрес SMTP-сервера для отправки писем
Далее следует настроить аутентификацию, отредактировав файл
`/etc/mail/authinfo`
:
```
AuthInfo:your.smtp.server "U:your_username" "P:your_password" "M:PLAIN"
```
где:
-
`your.smtp.server`
— адрес SMTP-сервера для отправки писем
-
`your_username`
— имя пользователя
-
`your_password`
— пароль пользователя
-
`PLAIN`
— тип аутентификации
Следующим шагом нужно сгенерировать базу данных для аутентификации:
```
shell
sudo
makemap
hash
/etc/mail/authinfo < /etc/mail/authinfo
```
сгенерировать конфигурацию
`sendmail`
:
```
shell
sudo
make
-C
/etc/mail
```
включить и запустить
`sendmail`
:
```
shell
sudo
systemctl
enable
--now
sendmail.service
```
Теперь можно использовать модифицированный скрипт
`audit-sink.py`
со следующим содержанием:
```
python
#!/usr/bin/env python
import
json
import
subprocess
import
sys
from
systemd
import
journal
for
line
in
sys
.
stdin
:
if
line
:
journal
.
send
(
f
"
AUDIT
{
line
}
"
)
entry
=
json
.
loads
(
line
)
if
entry
[
'
severity
'
]:
subprocess
.
call
([
'
sendmail user@example.com <
'
,
entry
[
'
message
'
]])
```
В результате, сообщения из журнала аудита будут попадать в
`syslog`
от
имени процесса
`python`
и дублироваться в виде писем на указанный вместо
`user@example.com`
почтовый ящик.
См. также:
-
[
Журнал аудита в защищенной ОС
](
../security/audit_log.md
)
Loading