Graylog – свободный инструмент управления логами с открытым исходным кодом на основе Java, Elasticsearch и MongoDB, который может использоваться, чтобы собирать, индексировать и анализировать любые системные записи журнала с централизованного расположения.
Вы можете легко контролировать входы в систему SSH и необычные действие для отладки приложений при использовании логов Graylog.
Вы можете расширить функциональность Graylog через API REST и аддоны этого приложения.
Компоненты Graylog
Elasticsearch: Он хранит все входящие сообщения, и предоставляет информацию по поиску нужных элементов.
MongoDB: Он используется для базы данных, хранит конфигурации и метаинформацию.
Server Graylog: Он получает и обрабатывает сообщения от различных источников, и обеспечиват доступ к веб-интерфейсу для анализа и контроля состояния.
В этом туториале мы объясним, как установить Graylog2 на сервере Debian 9.
Установка Elasticsearch и MongoDB
1.Отредактируем файл:
# gedit /etc/apt/sources.list.d/backport.list
И добавим следующую строчку:
deb http://ftp.debian.org/debian jessie-backports main
2.Сохраним редактируемый файл и произведем обновление системы:
# apt-get update -y # apt-get upgrade -y
3.Как только система обновится, установим пакеты следующей командой:
# apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen -y
Как только все необходимые пакеты установлены, мы можем начать устанавливать MongoDB.
4.MongoDB предназначен для хранения конфигурационной информации и метаинформации.
MongoDB доступен в репозитарии по умолчанию в Debian 9, таким образом, мы можем установить MongoDB, просто выполнив следующую команду:
# apt-get install mongodb-server -y
Теперь мы можем приступить к установке Elasticsearch.
5. Для начала, скачаем и добавим PGP ключ:
# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
6. Создадим файл репозитория:
# gedit /etc/apt/sources.list.d/elasticsearch.list
7. Добавим в него следующую строчку:
deb https://packages.elastic.co/elasticsearch/2.x/debian stable main
8. Обновим репозиторий:
# apt-get update -y
9. Теперь установим Elasticsearch:
# apt-get install elasticsearch -y
10. Отредактируем основной конфигурационный файл:
# gedit /etc/elasticsearch/elasticsearch.yml
11. Выполним изменения:
cluster.name: graylog
network.host: 192.168.0.187
discovery.zen.ping.timeout: 10s
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: [“192.168.0.187:9300”]
12. Сохраним и закроем конфигурационный файл и разрешим Elasticsearch стартовать при загрузке
# systemctl start elasticsearch
# systemctl enable elasticsearch
13. Протестируем работу:
# curl -XGET 'http://192.168.0.187:9200/_cluster/health?pretty=true'
Удостоверьтесь, что статус группы – green:
{
"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" : 1,
"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" : 50.0
}
Установка Graylog
1. Скачаем и установим пакет:
# wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb # dpkg -i graylog-2.2-repository_latest.deb
2. Обновимся и установим серверную часть:
# apt-get update -y # apt-get install graylog-server -y
После установки Graylog вы должны будете защитить пользовательские пароли и также устанавить хеш (sha256) пароль для пользователя root.
Во-первых, сгенерируем password_secret следующей командой:
# pwgen -N 1 -s 96
3. Вы увидите следующее:
TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC
4. Теперь сгенерируем пароль:
# echo -n youradminpassword | sha256sum
5. Вывод будет такого вида:
e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee
Примечание: Запомните оба парольных ключа.
6. Отредактируем конфигурационный фал по пути /etc/graylog/server/ :
# gedit /etc/graylog/server/server.conf
7. Добавим изменения:
is_master = true node_id_file = /etc/graylog/server/node-id ########past-your-password-secret-here######### password_secret = TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC root_username = admin #######past-your-root-hash-password-here########## root_password_sha2 = e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee root_timezone = UTC plugin_dir = /usr/share/graylog-server/plugin rest_listen_uri = http://0.0.0.0:9000/api/ rest_enable_cors = true web_listen_uri = http://0.0.0.0:9000/ rotation_strategy = count elasticsearch_max_docs_per_index = 20000000 elasticsearch_max_number_of_indices = 7 retention_strategy = delete elasticsearch_shards = 4 elasticsearch_replicas = 1 elasticsearch_index_prefix = graylog allow_leading_wildcard_searches = true allow_highlighting = false elasticsearch_cluster_name = graylog elasticsearch_discovery_zen_ping_unicast_hosts = 192.168.0.187:9300 elasticsearch_http_enabled = false elasticsearch_network_host = 0.0.00 elasticsearch_discovery_initial_state_timeout = 3s elasticsearch_analyzer = standard output_batch_size = 500 output_flush_interval = 1 output_fault_count_threshold = 5 output_fault_penalty_seconds = 30 processbuffer_processors = 5 outputbuffer_processors = 3 processor_wait_strategy = blocking ring_size = 65536 inputbuffer_ring_size = 65536 inputbuffer_processors = 2 inputbuffer_wait_strategy = blocking message_journal_enabled = true message_journal_dir = /var/lib/graylog-server/journal async_eventbus_processors = 2 lb_recognition_period_seconds = 3 alert_check_interval = 60 mongodb_uri = mongodb://localhost/graylog mongodb_max_connections = 1000 mongodb_threads_allowed_to_block_multiplier = 5 content_packs_dir = /usr/share/graylog-server/contentpacks content_packs_auto_load = grok-patterns.json proxied_requests_thread_pool_size = 32
8. Сохраняем и закрываем файл и добавляем аналогично в загрузку при старте
# systemctl start graylog-server # systemctl enable graylog-server
Доступ в вэб-интерфейс Graylog
Если установлен ufw разрешим необходимый нам порт:
# ufw allow 9000
Теперь откроем браузер с нашим ip-адресом и портом 9000, который используется по умоланию – http://192.168.0.187:9000.
Вход в систему с именем пользователя “admin” и паролем, который вы сконфигурировали в root_password_sha2 на server.conf.
Вы должны увидеть следующий экран после авторизации: