Работая с Syslog, можно заметить, что каждое сообщение начинается с числа. Это число определяет приоритет сообщения, и в этом тексте я объясню, как его рассчитать и разложить на составляющие.
Вот несколько примеров сообщений Syslog:
| 1 2 3 4 5 | <11>Dec 11 19:07:55 <process>: <payload> <13>Dec 11 19:08:55 <process>: <payload> <84>Dec 11 19:09:55 <process>: <payload> <96>Dec 11 19:10:55 <process>: <payload> <136>Dec 11 19:11:55 <process>: <payload> |
Первое число в начале строки (^<([0-9]*)>) - это значение приоритета (Priority), и оно находится в диапазоне от 0 до 191. Priority получается из значений подсистемы (Facility) и уровня важности (Severity):
- Подсистема (Facility) - это процесс, создавший сообщение. Её значение варьируется от 0 до 23, где 0-15 предопределены, а 16-23 обычно используются сетевым оборудованием.
- Значения уровня важности (Severity) предопределены и варьируются от 0 до 7.
Следующие уравнения показывают, как рассчитать Priority и как получить значения подсистемы и уровня важности из приоритета:
| 1 2 3 4 | Priority=facility∗8+severity Severity=Priority mod 8 Facility=(Priority− everity)/8 |
При работе с Syslog полезно уметь декомпозировать приоритет для диагностики текущей конфигурации. Кстати, вот значения уровня важности и подсистемы для пяти приоритетов, приведенных в начале этого текста:
| Приоритет | Подсистема | Уровень важности |
|---|---|---|
| 11 | 1 (user-level) | 3 (ошибка / error) |
| 13 | 1 (user-level) | 5 (уведомление / notice) |
| 84 | 10 (security/auth) | 4 (предупреждение / warning) |
| 96 | 12 (ntp) | 0 (авария / emergency) |
| 136 | 17 (local1) | 0 (авария / emergency) |