Задумывались ли вы об управлении большим количеством журналов? Мы думаем что каждый сисадмин задавал себе этот вопрос. Решение очень простое: «Настройка сервера Graylog».
В предыдущем статье мы показали, как начать работу с Buildah для управления контейнерами Linux. В этой статье мы покажем вам, как настроить сервер Graylog для управления огромным количеством журналов (большие данные).
Graylog — это платформа с открытым исходным кодом для управления журналами. Это позволяет собирать и объединять журналы из разных мест назначения. Затем он также позволяет визуализировать журналы в веб-интерфейсе.
Для установки и настройки сервера Graylog существуют следующие условия:
Основными компонентами сервера Graylog являются:
Начнем с установки сервера Graylog. Мы пройдем процедуру шаг за шагом.
Давайте сначала начнем с установки необходимых компонентов сервера Graylog.
Обратите внимание, что в этой статье мы используем Red Hat Linux, поэтому на этапах установки показан менеджер пакетов Yum. Если вы используете какой-то другой дистрибутив, вы должны использовать менеджер пакетов вашего дистрибутива.
Сначала мы установим openJDK. Зачем тебе OpenJDK? Потому что Elasticsearch основан на Java. Вы также можете использовать OracleJDK, но я предпочитаю версию OpenJDK с открытым исходным кодом.
# yum install java-1.8.0-openjdk-headless.x86_64 -y # yum install epel-release -y # yum install pwgen -y
После установки openJDK перейдем к Elasticsearch. Этот движок играет прекрасную роль на сервере Graylog. Движок Elasticsearch может хранить и искать огромное количество данных. Вот почему он предпочтителен при работе с большими данными.
Elasticsearch выполняет требования приложений, которые требуют сложного поиска. Elasticsearch помогает отображать сообщение в веб-интерфейсе Graylog всякий раз, когда пользователь запрашивает запрос.
Мы собираемся импортировать ключ GPG, используя следующую команду:
# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
Поскольку репозиторий Elasticsearch по умолчанию недоступен в Centos 7/Rhel 7, нам нужно будет создать файл repo вручную, включая следующие записи в файле репозитория Elasticsearch.
# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch-2.x] name=Elasticsearch repository for 2.x packages baseurl=https://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Теперь вы готовы установить пакет Elasticsearch.
# yum install elasticsearch -y
После установки пакета Elasticsearch будет создан файл конфигурации esticsearch.yml, установите для имени кластера значение graylog, как показано ниже.
# vi /etc/elasticsearch/elasticsearch.yml cluster.name: graylog
Все готово чтобы начать и включить elasticsearch.service
# chkconfig --add elasticsearch # systemctl daemon-reload # systemctl enable elasticsearch.service # systemctl start elasticsearch.service
После того, как вы начали, и включили elasticsearch.service ; Запустите команду curl:
# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' { "cluster_name" : "graylog", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 1, "active_shards" : 1, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }
Нам нужно добавить репозиторий MongoDB с указанными ниже записями в репо-файле MongoDB, так как он по умолчанию недоступен в Centos 7/Rhel 7.
# vi /etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
Установите пакет MongoDB.
# yum install mongodb-org -y
Запустите и включите mongod.service.
# chkconfig --add mongod # systemctl daemon-reload # systemctl enable mongod.service # systemctl start mongod.service
После того, как все предпосылки выполнены и проверены. Пришло время настроить и установить сервер Graylog. Вы можете скачать последнюю версию сервера Graylog с открытым исходным кодом по ссылке ниже:
# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm
Установите сервер Graylog:
# yum install graylog-server -y
Сгенерируйте секретный ключ, используя приведенную ниже команду.
# pwgen -N 1 -s 96 eWOm6Gf0zEWQti9PQ65DKOoW9NoY7ekwJ0qlpkiDCNd5I2G622v1wIYrcXnp9JkrUxYKVU5CWFXY0tFEXLGxBymYgP0pQAwH
Установите хеш-пароль для пользователя root. Обратите внимание, что вы будете использовать этот пароль при регистрации в веб-интерфейсе Graylog.
# echo -n AndreyExPassword | sha256sum 98dabf085d96d5e4614172a4e8087ce3d3cd724b6d07dc590dac2948926df887
Теперь введите пароль root и сгенерированный ключ в файле server.conf. Также добавьте другие обязательные параметры.
# vi /etc/graylog/server/server.conf password_secret = eWOm6Gf0zEWQti9PQ65DKOoW9NoY7ekwJ0qlpkiDCNd5I2G622v1wIYrcXnp9JkrUxYKVU5CWFXY0tFEXLGxBymYgP0pQAwHZ root_password_sha2 = 98dabf085d96d5e4614172a4e8087ce3d3cd724b6d07dc590dac2948926df887 root_email = youremail@gmail.ru root_timezone=UTC elasticsearch_discovery_zen_ping_unicast_hosts = <your-server-ip-address>:9300 elasticsearch_shards=1 script.inline: false script.indexed: false script.file: false
Введите эти два параметра с указанным значением в одном файле, чтобы получить доступ к веб-интерфейсу Graylog. Веб-интерфейс Graylog будет прослушивать TCP-порты 12900 и 9000 в веб-браузере.
rest_listen_uri = http://192.168.1.200:12900/ web_listen_uri = http://192.168.1.200:9000/
# chkconfig --add graylog-server # systemctl daemon-reload # systemctl enable graylog-server.service # systemctl start graylog-server.service
Мы видели ранее, мы упоминали некоторые порты в файлах конфигурации для веб-интерфейса. Мы управляем этими портами с помощью брандмауэра. Ниже приведены инструкции по постоянному добавлению этих tcp-портов в настройки брандмауэра. Пожалуйста, выполните следующие команды для управления портами:
# firewall-cmd --permanent --zone=public --add-port=9000/tcp # firewall-cmd --permanent --zone=public --add-port=12900/tcp # firewall-cmd --permanent --zone=public --add-port=1514/tcp
После добавления портов в брандмауэр, не забудьте выполнить приведенную ниже команду, чтобы отразить только что сделанные изменения.
# firewall-cmd --reload
Для управления политики SELinux, мы собираемся установить policycoreutils-python
# yum install policycoreutils-python -y
Команда ниже гарантирует, что ваш веб-интерфейс имеет доступ к сети
# setsebool -P httpd_can_network_connect 1
Используя команду semanage, мы хотим разрешить API-интерфейс Graylog REST и HTTP-интерфейс Elasticsearch HTTP. Если вы хотите знать синтаксис команды semanage, вы можете обратиться к man-странице semanage.
# semanage port -a -t http_port_t -p tcp 9000 # semanage port -a -t http_port_t -p tcp 9200
Разрешение порта по умолчанию MongoDB.
# semanage port -a -t mongod_port_t -p tcp 27017
Откройте веб-браузер и введите URL-адрес http://your_ip_address: 9000. Вы будете перенаправлены на следующую страницу.
Чтобы войти в веб-интерфейс Graylog, введите имя пользователя admin и пароль — AndreyExPassword (который мы установили, как указано выше в команде). Имя пользователя и пароль по умолчанию для веб-интерфейса Graylog — «admin», «admin».
Вот и все. Теперь вы можете визуально управлять журналами приложений/сервера благодаря великолепному серверу Graylog с открытым исходным кодом.
Мы надеемся, что вы найдете эту статью полезным. Пожалуйста, оставьте свои предложения в разделе комментариев.