Когда речь заходит о логировании в Linux, Elasticsearch становится одним из первых инструментов, которые приходят на ум. Это мощная поисковая система, которая может быстро обрабатывать большие объемы данных и отлично справляется с задачами мониторинга и анализа логов. В этой статье я поделюсь с вами процессом установки и настройки Elasticsearch, чтобы ваши логи не просто валялись в куче, а помогали вам обнаруживать тайные загадки, сокрытые в них.

Итак, начнём с установки. Если вы можете справиться с установкой чашки кофе, то установка Elasticsearch вам точно под силу. Выполните следующие команды в терминале:

sudo apt update
sudo apt install openjdk-11-jdk
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.3-amd64.deb
sudo dpkg -i elasticsearch-8.3.3-amd64.deb

Не забудьте, что Elasticsearch требует Java, поэтому установка JDK обязательна. Если у вас уже есть JDK, то можно пропустить этот шаг, но я бы не стал проверять, всегда лучше перепроверить.

После установки нам нужно немного понастраивать наш Elasticsearch. Откройте файл конфигурации:

sudo nano /etc/elasticsearch/elasticsearch.yml

Добавьте или измените следующие строки:

network.host: localhost
http.port: 9200

Теперь у вас есть Elasticsearch, который слушает на localhost и ожидает ваших запросов. Все, как в реальной жизни, если не позвонил, то и не ждут!

После внесения изменений нужно перезапустить Elasticsearch:

sudo systemctl restart elasticsearch

Чтобы удостовериться, что Elasticsearch работает, выполните команду:

curl -X GET "localhost:9200/"

Вы должны увидеть что-то похожее на следующее:

{
  "name" : "your-node-name",
  "cluster_name" : "your-cluster-name",
  "cluster_uuid" : "random-uuid",
  "version" : {
    "number" : "8.3.3",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "abcdef01234",
    "build_date" : "2023-09-12T09:00:00Z",
    "build_snapshot" : false,
    "lucene_version" : "8.10.0",
    "minimum_wire_compatibility_version" : "8.0.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}

Статус “You Know, for Search” как бы намекает, что Elasticsearch готов к работе. Теперь мы можем начать логирование. Обычно для этих целей используется Filebeat — суперклассный инструмент для отправки логов в Elasticsearch. Установите его, как и Elasticsearch:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.3.3-amd64.deb
sudo dpkg -i filebeat-8.3.3-amd64.deb

Теперь откройте файл конфигурации Filebeat:

sudo nano /etc/filebeat/filebeat.yml

Найдите секцию output.elasticsearch и убедитесь, что она выглядит так:

output.elasticsearch:
  hosts: ["localhost:9200"]

Сохраните и закройте файл. Затем запустите Filebeat:

sudo systemctl start filebeat
sudo systemctl enable filebeat

Теперь ваши логи начинают поступать в Elasticsearch. Чтобы проверить, что всё работает, можно сделать запрос к Elasticsearch:

curl -X GET "localhost:9200/_cat/indices?v"

Если вы увидите индексы, то вы на правильном пути. О, в эти моменты вы чувствуете себя настоящим шефом!

Теперь у вас есть полноценная система логирования с использованием Elasticsearch и Filebeat. Вы сможете не только собирать логи, но и задавать вопросы: «Почему сервер упал?» или «Кто оставил свою чашку на моём столе?» — так что будьте готовы к неожиданностям.

Надеюсь, эта статья была полезной и добавила немного радости в ваш день администрирования. Удачи в мире логирования!