Вопрос или проблема
Как правильно добавить syslog на сервер Observium?
У меня есть сервер Ubuntu 16.04, на котором я установил Observium для мониторинга самого сервера, и эта часть работает хорошо, я вижу журналы событий.
После этого я следовал инструкциям о том, как добавить syslog: http://docs.observium.org/syslog/ Но когда я открываю syslog на сервере, появляется сообщение об ошибке:
"Записей syslog не найдено!".
Нужно ли мне делать что-то еще (кроме инструкций на веб-странице Observium)?
Спасибо
ОБНОВЛЕНИЕ 1:
Версия rsyslogd 8.16.0
Когда я пытаюсь использовать прямую запись, это работает нормально.
Вот файл конфигурации:
#---------------------------------------------------------
#отправить удаленные журналы в Observium
template(name="observium"
type="string"
string="%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")
$ModLoad omprog
# Модули ввода rsyslog
input(type="imudp"
port="514"
ruleset="observium")
# Наборы правил rsyslog
ruleset(name="observium") {
action(type="omprog"
binary="/opt/observium/syslog.php"
template="observium")
}
*.* stop
#---------------------------------------------------------
И вместо этого я убрал его без наборов правил:
#---------------------------------------------------------
#отправить удаленные журналы в Observium
#ceph-mon.=notice; ~
template(name="observium"
type="string"
string="%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")
$ModLoad omprog
action(type="omprog"
binary="/opt/observium/syslog.php"
template="observium")
*.* stop
#---------------------------------------------------------
Это работает 🙂
Теперь есть другой вопрос. Нужно ли мне использовать ruleset
? Если да, сталкивался ли кто-то с такой же/похожей проблемой и как вы ее решили?
Спасибо!
Да, я тоже видел эту проблему.
Я по ошибке включил “input(type=”imudp” port=”514″)” как в rsyslogd.conf, так и в 30-observium.conf. Вам нужно включить модуль imudp в rsyslogd.conf и включить действие input->ruleset для него в 30-observium.conf
/etc/rsyslog.conf;
предоставляет прием syslog по UDP
module(load="imudp")
#input(type="imudp" port="514")
/etc/rsyslog.d/30-observium.conf должен быть таким;
#---------------------------------------------------------
#отправить удаленные журналы в Observium
template(name="observium"
type="string"
string="%fromhost-ip%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")
$ModLoad omprog
# Модули ввода rsyslog
input(type="imudp"
port="514"
ruleset="observium")
# Наборы правил rsyslog
ruleset(name="observium") {
action(type="omprog"
binary="/opt/observium/syslog.php"
template="observium")
}
#& stop
#---------------------------------------------------------
Мне также пришлось закомментировать последнюю строку, так как это вызывало молчаливый сбой rsyslog.
PS; Каждый раз, когда вы вносите изменения в фильтры syslog, вам нужно перезапустить rsyslog, так как он кэширует результирующий скрипт syslog.php при запуске.
Ответ или решение
Чтобы правильно настроить syslog для сервера Observium на Ubuntu 16.04, вам нужно убедиться, что конфигурация rsyslog соответствует требованиям Observium и что вы используете правильные модули и правила. Давайте разберем необходимые шаги.
1. Установка и настройка rsyslog
Первым делом, убедитесь, что rsyslog установлен и работает:
sudo systemctl status rsyslog
Если он не установлен, можете установить его с помощью:
sudo apt-get install rsyslog
2. Настройка конфигурационного файла rsyslog
Вам нужно будет отредактировать конфигурационный файл rsyslog для корректной обработки сообщений. Вам понадобится два файла:
/etc/rsyslog.conf
/etc/rsyslog.d/30-observium.conf
В файле /etc/rsyslog.conf
:
Включите модуль imudp
, но не добавляйте input
в этом файле. Он должен выглядеть так:
module(load="imudp") # Загрузка модуля для UDP syslog
#input(type="imudp" port="514") # Убедитесь, что эта строка закомментирована
В файле /etc/rsyslog.d/30-observium.conf
:
Убедитесь, что файл настроен следующим образом:
#---------------------------------------------------------
# Отправка удаленных журналов в Observium
template(name="observium"
type="string"
string="%fromhost-ip%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")
$ModLoad omprog
# Модули ввода rsyslog
input(type="imudp"
port="514"
ruleset="observium")
# Правила rsyslog
ruleset(name="observium") {
action(type="omprog"
binary="/opt/observium/syslog.php"
template="observium")
}
# Убедитесь, что эта строка закомментирована
# *.* stop
#---------------------------------------------------------
3. Перезапуск службы rsyslog
Каждый раз при внесении изменений в конфигурацию rsyslog обязательно перезагружайте службу, чтобы изменения вступили в силу:
sudo systemctl restart rsyslog
4. Проверка работы
После настройки посетите интерфейс Observium и проверьте, появляются ли новые записи в разделе syslog. Если сообщения не отображаются, проверьте журналы ошибок rsyslog для возможных проблем:
sudo tail -f /var/log/syslog
5. Дополнительные рекомендации
- Если у вас все еще не отображаются записи, убедитесь, что нет конфликта в конфигурациях — не включайте
input
в обоих файлах. - Проверьте, что права доступа к
/opt/observium/syslog.php
позволяют выполнение скрипта. - Убедитесь, что другие службы (например, firewalld или iptables) не блокируют UDP-порт 514, который используется для приема логов.
Соблюдая эти инструкции, вы сможете успешно интегрировать syslog в сервер Observium и избежать ошибок. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.