Мониторинг журналов сервера в режиме реального времени с помощью инструмента «Log.io» на RHEL/CentOS 7/6.
Log.io — это небольшое простое, но эффективное приложение, созданное на базе Node.js и Socket.io, которое позволяет отслеживать журналы серверов Linux. файлы в режиме реального времени через виджеты экрана веб-интерфейса.
Из этого руководства вы узнаете, как установить и отслеживать любые локальные файлы журналов в режиме реального времени с помощью Log.io, установленного в RHEL/CentOS 7/6.x, путем настройки Log.io файл харвестера для отслеживания любых локальных изменений в файлах журналов.
Шаг 1. Добавьте репозитории Epel
1. Репозитории CentOS Epel предоставляют двоичные пакеты для Node.js и NPM – упакованные модули Node. . Установите репозитории Epel, выполнив следующую команду.
На RHEL/CentOS 7
yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
На RHEL/CentOS 6
--------------------- On RHEL/CentOS 6.x - 32 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm
--------------------- On RHEL/CentOS 6.x - 64 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2. После добавления Epel Repos в вашу систему выполните обновление системы, выполнив следующую команду.
yum update
Шаг 2. Установите пакеты Node.js и NPM
3. Node.js — это серверная платформа программирования Javascript, которая позволяет создавать сетевые приложения с серверной функциональностью. NPM (менеджер пакетов Node) — это практически менеджер пакетов для Node.js. Итак, на следующем шаге установите двоичные файлы Node.js и NMP в свою систему через менеджер пакетов YUM, выполнив следующие команды.
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
yum install -y nodejs
Шаг 3. Установите и настройте приложение Log.io
4. Приложение Log.io необходимо установить в вашей системе через NPM, указав действительного локального пользователя системы, через которого должна выполняться установка. Хотя вы можете использовать любого действующего пользователя системы для установки Log.io, лично я рекомендую устанавливать приложение через пользователя root или другого пользователя системы с привилегиями root.
Причина использования этого подхода заключается в том, что Log.io должен иметь доступ для чтения локальных файлов журналов, а пользователь с правами root без привилегий обычно не может получить доступ и прочитать некоторые важные файлы журналов.
Итак, войдите в систему с учетной записью root и установите приложение Log.io через учетную запись root, выполнив следующую команду (если вы используете другого пользователя, замените учетную запись root соответствующим образом).
npm install -g log.io --user “root”
5. После установки приложения измените свой рабочий каталог на папку Log.io, которая скрыта, и выполните список каталогов, чтобы визуализировать содержимое папки и настроить применение дальше.
pwd [Make sure you are on the right path]
cd .log.io/
ls
6. Теперь пришло время настроить Log.io для мониторинга локальных файлов журналов в режиме реального времени. Давайте узнаем, как работает Log.io.
- Файл harvester отслеживает изменения в указанных локальных файлах журналов, объявленных в его конфигурации, и отправляет свои выходные данные через TCP-порт Socket.io
протокол, который далее отправляет сообщения на локальный сервер Log.io или любой другой удаленный сервер, объявленный с его IP-адресом (адрес 0.0.0.0, указанный на комбайнах, транслируется на все прослушивающие серверы log.io) – файл harvester.conf - Сервер Log.io привязывается ко всем сетевым интерфейсам (если иное не указано в файле log_server.conf), ожидает сообщений от локальных или удаленных узлов сборщиков и отправляет их выходные данные на веб-сервер log.io (0.0.0.0 означает, что он ожидает сообщений с любых локальных или удаленных сборщиков) файл log_server.conf
- Веб-сервер Log.io привязывается ко всем сетевым интерфейсам, прослушивает соединения веб-клиентов на порту 28778, а также обрабатывает и выводит сообщения, которые он получает внутри от сервера log.io – файл web_server.conf
Сначала откройте для редактирования файл harvester.conf, который по умолчанию отслеживает только файлы журналов Apache, и замените оператор nodeName на соответствие вашему имени хоста и определите logStreams заявления о том, какие внутренние файлы журналов вы хотите отслеживать (в данном случае я отслеживаю несколько файлов журналов, таких как журналы аудита, сообщений и защищенные журналы). Используйте приведенный ниже отрывок из файла в качестве руководства.
nano harvester.conf
Отрывок из файла комбайна.
exports.config = {
nodeName: "pxe-server",
logStreams: {
audit: [
"/var/log/audit/audit.log"
],
messages: [
"/var/log/messages"
],
secure: [
"/var/log/secure"
]
},
server: {
host: '0.0.0.0',
port: 28777
}
}
Кроме того, если вам не нужно, чтобы выходные данные комбайна отправлялись на удаленный сервер Log.io, измените строку host в операторе server, чтобы только отправлять его вывод локально путем изменения адреса 0.0.0.0 на адрес обратной связи (127.0.0.1).
7. В целях безопасности, если вы не ожидаете, что удаленные сборщики данных будут выводить данные на локальный сервер Log.io, откройте файл log_server.conf и замените < b>0.0.0.0 адрес с адресом обратной связи (127.0.0.1).
nano log_server.conf
8. Другие функции безопасности, такие как вход с учетными данными, HTTPS или ограничение доступа к веб-серверу Log.io на основе IP-адресов, могут применяться на стороне веб-сервера. В этом уроке я буду использовать только учетные данные для входа в качестве меры безопасности.
Итак, откройте файл web_server.conf, раскомментируйте весь оператор auth, удалив все косые черты и звездочки, и замените user и pass соответственно, как показано на нижнем скриншоте.
nano web_server.conf
Шаг 4. Добавьте правило брандмауэра и запустите приложение Log.io.
9. Чтобы получить веб-доступ к серверу Log.io, добавьте правило на брандмауэре RHEL/CentOS 7. чтобы открыть порт TCP 28778, выполнив следующую команду.
firewall-cmd --add-port=28778/tcp --permanent
firewall-cmd --reload
Примечание. Пользователи RHEL/CentOS 6.x могут открыть порт 28778 на брандмауэре iptable.
Шаг 5. Запустите приложение Log.io и войдите в веб-интерфейс.
10. Чтобы запустить приложение мониторинга журналов Log.io, убедитесь, что ваш текущий рабочий каталог является домашним корневым каталогом .log.io, и используйте следующее команды в следующем порядке для запуска приложения.
------------ First start server, put it in background and press Enter key ------------
log.io-server &
------------ Start log harvester in background ------------
log.io-harvester &
11. После запуска сервера откройте браузер, введите IP-адрес вашего сервера, а затем номер порта 28778, используя протокол HTTP по URL-адресу, и должно появиться приглашение с запросом ваших учетных данных для входа. .
Введите своего пользователя и пароль, настроенные на шаге 8, чтобы продолжить, и приложение Log.io теперь должно быть видно в вашем браузере, отображая отслеживаемые файлы журналов в режиме реального времени.
http://192.168.1.20:28778
В веб-интерфейсе добавьте новые экраны и соответствующим образом организуйте свои потоки или узлы.
12. Чтобы остановить приложение Log.io, выполните следующую команду.
pkill node
Шаг 6. Создайте сценарий управления Log.io
13. Чтобы использовать команду, управляющую приложением Log.io, с тремя переключателями ( start, stop и status) создайте следующий сценарий с именем log.io в исполняемом каталоге /usr/local/bin и добавьте к этому сценарию разрешения на выполнение.
nano /usr/local/bin/log.io
chmod +x /usr/local/bin/log.io
Добавьте следующий отрывок в этот файл сценария.
#!/bin/bash
start() {
echo "Starting log.io process..."
/usr/bin/log.io-server &
/usr/bin/log.io-harvester &
}
stop() {
echo "Stopping io-log process..."
pkill node
}
status() {
echo "Status io-log process..."
netstat -tlp | grep node
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo "Usage: start|stop|status"
;;
Esac
14. Чтобы запустить, остановить или просмотреть статус Log.io, войдите в систему с учетной записью root (или пользователем, у которого установлено приложение Log.io) и просто выполните следующие команды, чтобы легко управлять приложением.
log.io start
log.io status
log.io stop
Вот и все! По моему мнению, Log.io — отличное и эффективное веб-приложение для мониторинга файлов журналов локальных или удаленных серверов в режиме реального времени и получения представления о том, что происходит внутри систем, и особенно для устранения проблем с сервером, когда системы имеют тенденцию переставать отвечать на запросы или давать сбои без необходимости использования консоли.