Невероятно странно, но попытки нагуглить хоть какой-нибудь веб-интерфейс для сислога приводят в основном в дебри топов коммерческих интерфейсов, среди которых, может, и есть бесплатные версии, но будьте любезны сами ковыряться и разбираться насколько оно убого или нет, и какой функционал там порезан.
Мне же от вебморды много не надо — мне надо чтобы она лог показывала, фильтры имела, и было бы неплохо чтобы составляла с сервером полностью FOSS-решение. И сам я давно уже использую под это дело LogAnalyzer, который с поставленной задачей — презентовать лог сислог-сервера, собирающего в базу данных логи с различного оборудования — справляется весьма неплохо.
И так как в целом задача развертывания сислог-сервера с веб-мордой не решается автоматически установкой какого-нибудь пакета в этом нашем дебиане, я решил во-первых написать скрипт, который сделает все за вас, ну а попутно еще расписать как в целом все это инсталлируется и настраивается руками.
Итак, скрипт писался и проверялся на Debian 10 «Buster», его актуальная версия находится на гитхабе, а текущую я оставлю здесь:
loganalyzer_install.sh
#!/bin/bash
# Syslog server with web interface for Debian 10
# LAMP + phpmyadmin + rsyslog + Log Analyzer
PHPMYADMINUSER="pma"
PHPMYADMINPASS="321"
SYSLOGDBPASSWORD="Qwerty"
PMAVER="4.9.2"
LAVERSION="4.1.7"
exportLANG="en_US.UTF-8"
function check_packages {
notinstalled=""
if[$#-eq0]; thenecho"Package name(s) required"; fi
if[$#-gt0]; then
for packagename in $@; do
if[["" == $(dpkg-query -W--showformat='${Status}\n'${packagename}2>&1|grep"install ok")]]; then
notinstalled=${notinstalled}${packagename}" "
fi
done
fi
if[["" == ${notinstalled}]]; then
echo"true"
else
echo"${notinstalled}"
fi
}
######## MARIA DB
function check_sql {
if[["true"!= $( check_packages mariadb-server )&&"true"!= $( check_packages mysql-server)]]; then
echo"false"
fi
if[["true" == $( check_packages mariadb-server )]]; thenecho"mariadb"; fi
if[["true" == $( check_packages mysql-server )]]; thenecho"mysql"; fi
}
function install_sql {
apt -yinstall mariadb-server
# mysql -uroot -e "UPDATE mysql.user SET Password=PASSWORD('${MYSQLROOTPASS}') WHERE User='root';\
# DELETE FROM mysql.user WHERE User='';\
# DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\
# DROP DATABASE test;\
# DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%';\
mysql -uroot-e"use mysql; CREATE USER ${PHPMYADMINUSER}@localhost IDENTIFIED BY '${PHPMYADMINPASS}'; GRANT ALL ON *.* TO ${PHPMYADMINUSER}@localhost WITH GRANT OPTION;"
Лучше всего использовать его на свежеустановленном дебиане в минимальной конфигурации. Перед запуском нужно его отредактировать, изменив пароль для создаваемого в процессе пользователя (базы данных) rsyslog, а также логин и пароль дополнительного администратора БД, который будет создан в случае установки (опциональной) PhpMyAdmin. Всего скрипт установит:
mariadb в качестве сервера баз данных,
rsyslog с коннектором rsyslog-mysql в качестве сислог сервера, и создаст конфиг для приема логов по сети
веб-сервер apache
опционально phpmyadmin для управления базой данных
LogAnalyzer.
После завершения работы скрипта останется пройти мастера настройки LogAnalyzer, перейдя в браузере по адресу вашего сервера. Так что если вы решите его использовать, то можете листать к разделу «Настройка LogAnalyzer», а также посмотреть наглядное видео:
Настройка сервера syslog с веб-интерфейсом и хранением логов в базе данных (на Debian 10 «buster»)
Установка debian
Для наших целей подойдет установленный в минимальной конфигурации дебиан. Идеально сразу при установке поставить LAMP-набор, отметив опцию web server
Но можно обойтись пунктом standard system utilities, а все остальное установить самостоятельно. Я буду исходить из этого варианта.
В процессе установки соглашаемся сконфигурировать базу данных
Придумываем и подтверждаем пароль для пользователя «rsyslog» БД
После того как сислог будет установлен, его нужно сконфигурировать так, чтобы он мог принимать события с сетевого оборудования. Создаем файл /etc/rsyslog.d/enable-remote.conf с таким содержанием:
/etc/rsyslog.d/enable-remote.conf
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
И перезагружаем сервис
service rsyslog restart
Установка веб-интерфейса (LogAnalyzer)
Скачиваем и распаковываем файлы в директорию веб-сервера:
Перед тем как перейти мастеру настройки, создадим еще одну одну базу, в которой лог аналайзер будет хранить свои настройки, и дадим пользователю rsyslog полные права на нее
mysql -uroot -e "create database loganalyzer; grant all privileges on loganalyzer.* to rsyslog@localhost"
Настройка LogAnalyzer
Теперь к мастеру. Перейдя в браузере по адресу сервера мы должны увидеть его приглашение создать конфиг
Первые два шага пропускаем, интересное начинается с третьего. Здесь нужно выбрать Enable User Database и ввести имя пользователя (rsyslog) и пароль с которыми будет производиться подключение к созданной нами базе «loganalyzer». Остальные настройки можно оставить по умолчанию.
На шестом шаге создаем внутреннего администратора лог аналайзера
На следующем шаге выбираем источник данных — базу rsyslog\’а. Важные пункты, которые будет нужно здесь изменить:
Source Type — MYSQL Native
Database Name — Syslog (была создана при установке rsyslog-mysql)
Database Tablename — SystemEvents (именно так — с большими буквами, а не как по дефолту)
Database User — rsyslog
Database Password — пароль юзера rsyslog
Enable Row Counting — No (при объеме логов в несколько гигабайт этот подсчет приводит к более чем минутным запросам к БД)
Next, Finish и перед нами интерфейс лог аналайзера
Тюнинг
Теперь остается сделать две довольно важные вещи.
Во-первых, при попытке логина в админку, лог аналайзер пытается проверить свое собственное обновление, и это приводит к длительному ожиданию, если сервер не имеет выхода в интернет. Чтобы этого не происходило — нужно отредактировать файл /var/www/html/include/functions_common.php, изменив строку
Второе, и не менее важное. Со временем база сислога будет опухать, поэтому ее стоит периодически очищать от старых записей. Для этого нужно создать файлик /etc/cron.d/rsyslog_mysql с содержимым
232 * * * root mysql -uroot -e 'use Syslog; DELETE FROM SystemEvents WHERE ReceivedAt < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 365 DAY);'
С ним каждый день из базы будут удаляться записи старше 365 дней (разумеется это количество можно поправить на необходимое)
Комментарии к записи Почему российская локализация фильмов сосет отключены
Давненько я писал о трилогии Властелина Колец, и тогда упоминал, что пытался ранее ее смотреть и засыпал в процессе. Собственно, захотелось вернуться к этой теме, потому что я наткнулся на понятный, как мне кажется, пример того, о чем я часто говорю, когда обсуждается тема результатов работы российских локализаторов.
Если вкратце: один из пунктов, который относится непосредственно к озвучке, и который меня неимоверно раздражает — особая стилистика озвучания, выраженная в каком-то… как бы выразиться… голосе-в-вакууме. Голоса в нашей озвучке очень часто звучат именно так — словно текст произносится в вакууме, отрезанном от окружающего мира. Словно актер озвучания находится в комнате увешанной коврами. И это, может быть, хорошо для записи голоса, но когда это в таком виде втыкают в итоговую звуковую дорогу, то начинает казаться, что все окружение вокруг персонажей — иллюзия, а они вещают из гробовой тишины космоса. И в сочетании с тембрами голосов это напрочь убивает и погружает в сон спустя полчаса просмотра фильма.
Пример — вот это отрывок из зеленой мили. Он и в оригинале очень негромкий, снятый в замкнутом пространстве без особых шумов, типа шума улицы или природы. Но даже при этом есть эта разница между оригинальной озвучкой и российской.
Комментарии к записи vSphere Launch Remote Console — сменить Workstation на Player в Linux отключены
После переустановки VMware Workstation возникла проблема — ссылка «Launch Remote Console» в web-интерфейсе vSphere стала открываться при помощи основного Workstation вместо более легкого и не требующего аутентификации Player-приложения. Чинится в линуксе очень просто:
Не проверял, но по идее аналогично можно переключить на непосредственно VMware Remote Console, поставив название его ярлыка вместо «vmware-player.desktop» (ярлыки искать в /usr/local/share/applications/)