Як ви користуєтеся журнальними системами systemd


21

Я намагаюся використовувати journalctlшаблон узгодження на SYSLOG_IDENTIFIERS. Як приклад, я маю тонну повідомлення з тегом sshd:

$ journalctl -t sshd | wc -l
987

але якщо я намагаюся використовувати відповідність шаблонів, щоб знайти їх:

$ journalctl -t 'ssh*'
-- No Entries --
$ journalctl -t 'ssh.*'
-- No Entries --

Сторінка журналу журналу говорить, що моделі повинні працювати, але я не можу знайти нічого іншого про те, як використовуються / визначаються шаблони в systemd.

$ man journalctl
....
-t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER,
       or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

Я запускаю ArchLinux:

$ journalctl --version
systemd 225
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP
+GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN

5
На основі обговорень на IRC, здається, це помилка (або проблеми з документацією). Виправлена помилка була подана .
Марк Граймс

1
спробуйте це в режимі реального часу: journalctl -f | grep sshd
nexoma

Ви можете фактично додати кілька -t <identifier>, якщо це вам підходить.
sivann

Відповіді:


15

Це помилка в документі, яку закрили, коли помилка друку на manсторінці оновлювалася.

Звіт про помилку призвів до таких коментарів у коді :

Ми насправді не приймаємо зразки, отже, не претендуємо на це.

Як вирішення, ви можете використовувати, grepяк пропонується в коментарях до вашого питання. Щось на зразок цього:

journalctl | grep sshd

0

Оригінальні заголовки питань "Як ви використовуєте шаблони журналу systemd's systemct ". Це вказує на дуже специфічну особливість журналу журналу "MATCHES", а не на загальну фільтрацію регулярних виразів.

Функція "МАТЧИ" повністю деталізована разом з усіма іншими функціями на дружній сторінці чоловіка, яка зазначає на самому початку:

Якщо передано один або декілька аргументів відповідності, вихід буде фільтруватися відповідно.

Функція "відповідності" призначена для фільтрації записів журналу на основі декількох можливих фільтрів.

У таких випадках, як той, який є в оригінальному запитанні, це я роблю (я також запускаю ArchLinux).

По-перше, вам потрібно знати назву послуги, яка вас цікавить. Я зазвичай це роблю:

systemctl | grep sshd

Я отримую це:

sshd.service       loaded active running   OpenSSH Daemon

Тоді ви можете попросити journalctlфільтрувати за "ім'ям системного блоку" так:

journalctl _SYSTEMD_UNIT=sshd.service

Це називається "фільтрація сірників". Це було б все.

У випадку, якщо оригінальне запитання було написано замість того, щоб означати " як застосувати grepдо виходу журналу ", то ви можете або застосувати grepдо журналів, збережених "поки що" за допомогою

journalctl | grep ssh

або перегляньте поточні записи журналу за допомогою

journalctl -f | grep ssh

і натисніть CTRL-C, щоб зупинити потік. Звичайно, ви можете використовувати більш складні труби з більш дрібними зернистими регулярними візерунками або декількома grepкомандами.


Дякуємо за відповідь, але _SYTEMD_UNIT не приймає шаблонів. Як було сказано в моєму коментарі та відповіді @ Тіма, це була помилка в документах.
Марк Гримс

@MarkGrimes, Принаймні для мене (systemd 239) це працює. Я завжди перевіряю те, що говорю, перш ніж записувати його. Це працює як документально.
EnzoR

Питання , наприклад, у використанні шаблонівssh* . Документи журналу заявляли, що це можливо за один раз. Документи були невірними та оновлені.
Марк Граймс

@MarkGrimes Питання стосується шаблонів журналу systemd, а не будь-якого характеру . Будь ласка, дивіться мою оновлену відповідь. І він працює під ArchLinux точно так, як це зафіксовано.
EnzoR

-2

Ви можете визначити файл одиниці при запуску journalctl.

journalctl -f -u sshd.service

Я покажу лише журнал sshd


Ця відповідь не стосується питання. Користувач просить використовувати шаблони у фільтрі.
Merlijn Sebrechts
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.