Поиск по сайту:

Мониторинг журналов сервера в режиме реального времени с помощью инструмента «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.

  1. Файл harvester отслеживает изменения в указанных локальных файлах журналов, объявленных в его конфигурации, и отправляет свои выходные данные через TCP-порт Socket.io
    протокол, который далее отправляет сообщения на локальный сервер Log.io или любой другой удаленный сервер, объявленный с его IP-адресом (адрес 0.0.0.0, указанный на комбайнах, транслируется на все прослушивающие серверы log.io) – файл harvester.conf
  2. Сервер Log.io привязывается ко всем сетевым интерфейсам (если иное не указано в файле log_server.conf), ожидает сообщений от локальных или удаленных узлов сборщиков и отправляет их выходные данные на веб-сервер log.io (0.0.0.0 означает, что он ожидает сообщений с любых локальных или удаленных сборщиков) файл log_server.conf
  3. Веб-сервер 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 — отличное и эффективное веб-приложение для мониторинга файлов журналов локальных или удаленных серверов в режиме реального времени и получения представления о том, что происходит внутри систем, и особенно для устранения проблем с сервером, когда системы имеют тенденцию переставать отвечать на запросы или давать сбои без необходимости использования консоли.