One place for hosting & domains

      April 2020

      Установка MariaDB в Ubuntu 18.04


      Введение

      MariaDB — это система управления базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она представляет собой упрощенную замену MySQL.

      Краткая версия этого руководства по установке состоит из этих трех шагов:

      • Обновление индекса пакетов с помощью apt.
      • Установка пакета mariadb-server с помощью apt. Пакет также получает связанные инструменты для взаимодействия с MariaDB.
      • Запуск встроенного скрипта безопасности mysql_secure_installation для ограничения доступа к серверу.
      • sudo apt update
      • sudo apt install mariadb-server
      • sudo mysql_secure_installation

      Из этого руководства вы узнаете, как установить MariaDB в Ubuntu 18.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.

      Предварительные требования

      Для данного обучающего руководства вам потребуется следующее:

      Шаг 1 — Установка MariaDB

      В Ubuntu 18.04 версия MariaDB 10.1 включена в репозитории пакетов APT по умолчанию.

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

      Затем выполните установку пакета:

      • sudo apt install mariadb-server

      Эти команды выполнят установку MariaDB, но не будут запрашивать настройку пароля или внесение других изменений в конфигурацию. Поскольку при конфигурации по умолчанию установка MariaDB осуществляется небезопасным образом, мы будем использовать скрипт из пакета mariadb-server​​​ для ограничения доступа к серверу и удаления неиспользуемых учетных записей.

      Шаг 2 — Настройка MariaDB

      Для новых установок MariaDB следующим шагом является запуск встроенного скрипта безопасности. Этот скрипт изменяет ряд наименее безопасных опций, используемых по умолчанию. Мы используем его для блокирования удаленных попыток входа с помощью root и удаления неиспользуемых пользователей базы данных.

      Запустите скрипт безопасности:

      • sudo mysql_secure_installation

      При этом откроется серия диалогов, где вы можете внести некоторые изменения в параметры безопасности установки MariaDB. В первом диалоге вам нужно будет ввести пароль root для текущей базы данных. Поскольку мы еще не настроили его, нажмите ENTER, чтобы указать «отсутствует».

      В следующем диалоге вам будет предложено задать пароль root базы данных. Введите N и нажмите ENTER. В Ubuntu учетная запись root для MariaDB тесно связана с автоматизированным обслуживанием системы, так что мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволит нам обновить пакет для уничтожения системы базы данных посредством удаления доступа к административной учетной записи. Позднее мы расскажем о том, как настроить дополнительную административную учетную запись для доступа по паролю, если аутентификация через сокет не подходит для вашего случая.

      Далее вы можете использовать клавиши Y и ENTER, чтобы принять ответы по умолчанию для всех последующих вопросов. Выбрав эти ответы, вы удалите ряд анонимных пользователей и тестовую базу данных, отключите возможность удаленного входа пользователя root и загрузите новые правила, чтобы внесенные изменения немедленно имплементировались в MariaDB.

      Шаг 3 — Настройка аутентификации и прав пользователя (опционально)

      При установке MariaDB 10.1 в системах Ubuntu для пользователя root user MariaDB настраивается аутентификация с помощью плагина unix_socket, а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin).

      Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf может работать на начальном этапе, но при обновлении пакета изменения могут быть перезаписаны. Вместо изменения учетной записи root, мантейнеры пакетов рекомендуют создать отдельную административную учетную запись для доступа по паролю.

      Для этого мы создадим новую учетную запись с именем admin и теми же возможностями, которые есть у учетной записи root, но настроим для нее аутентификацию по паролю. Для этого откройте командную строку MariaDB через терминал:

      Теперь мы можем создать нового пользователя с привилегиями root и доступом с использованием пароля. Измените имя пользователя и пароль на желаемые:

      • GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

      Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:

      После этого закройте оболочку MariaDB:

      Теперь давайте проверим установку MariaDB.

      Шаг 4 — Тестирование MariaDB

      При установке из репозиториев по умолчанию MariaDB не должна запускаться автоматически. Чтобы проверить это, проверьте ее статус.

      • sudo systemctl status mariadb

      Вы получите вывод, который будет выглядеть примерно так:

      Output

      ● mariadb.service - MariaDB 10.1.44 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 22559 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 1152) CGroup: /system.slice/mariadb.service └─22559 /usr/sbin/mysqld Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES' Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: OK Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts. Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

      Если MariaDB не запущена, вы можете воспользоваться командой sudo systemctl start mariadb для запуска.

      В качестве дополнительной проверки вы можете попробовать подключиться к базе данных с помощью инструмента mysqladmin, который позволяет запускать команды администрирования. Например, эта команда позволяет подключиться к MariaDB в качестве root user и вернуть версию с помощью сокета Unix:

      Результат должен выглядеть примерно следующим образом:

      Output

      mysqladmin Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.1.44-MariaDB-0ubuntu0.18.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 10 min 9 sec Threads: 1 Questions: 445 Slow queries: 0 Opens: 167 Flush tables: 1 Open tables: 30 Queries per second avg: 0.730

      Если вы настроили отдельного пользователя для администрирования с аутентификацией по паролю, вы можете выполнить эту операцию, введя следующую команду:

      • mysqladmin -u admin -p version

      Это означает, что MariaDB запущена и работает и что ваш пользователь сможет успешно пройти аутентификацию.

      Заключение

      С помощью этого руководства вы установили MariaDB для использования в качестве сервера SQL. Во время установки вы также обеспечили безопасность сервера. В качестве дополнительной опции вы создали отдельного пользователя для администрирования с аутентификацией по паролю.

      Теперь, когда у вас есть запущенный и защищенный сервер MariaDB, вы можете воспользоваться некоторыми примерами следующих шагов, которые вы можете выполнить при работе с сервером:

      Также вы можете включить MariaDB в более крупный стек приложения:



      Source link

      Установка Node.js в CentOS 8


      Введение

      Node.js — это среда выполнения JavaScript для программирования на стороне сервера. Она позволяет разработчикам создавать масштабируемый серверный функционал с помощью JavaScript, языка, который многим уже знаком по веб-разработке под браузер.

      В этом руководстве мы покажем вам три разных способа установки Node.js на сервер CentOS 8:

      • использование dnf для установки пакета nodejs из репозитория AppStream, используемого CentOS по умолчанию
      • установка nvm, Node Version Manager, и его использование для установки и управления несколькими версиями node
      • сборка и установка node из источника

      Большинству пользователей следует использовать dnf для установки встроенных и предварительно упакованных версий Node. Если вы разработчик или вам по какой-либо другой причине нужно управлять несколькими установленными версиями Node, используйте nvm. Сборка из источника редко используется большинством пользователей.

      Предварительные требования

      Для выполнения этого обучающего руководства вам потребуется сервер под управлением CentOS 8. Мы будем считать, что вы выполнили вход на этот сервер в качестве non-root user с привилегиями sudo. Чтобы выполнить настройку сервера, воспользуйтесь нашим руководством по начальной настройке сервера CentOS 8.

      Вариант 1 — Установка Node из репозитория AppStream CentOS

      Node.js доступен в репозитории программного обеспечения AppStream, который по умолчанию используется в CentOS 8. Существует несколько доступных версий и вы можете выбирать между ними, активируя соответствующий поток модуля. В первую очередь просмотрите список доступных потоков для модуля nodejs с помощью команды dnf:

      • sudo dnf module list nodejs

      Output

      Name Stream Profiles Summary nodejs 10 [d] common [d], development, minimal, s2i Javascript runtime nodejs 12 common, development, minimal, s2i Javascript runtime

      Доступны два потока, 10 и 12. [d]​​​ указывает, что версия 10 — это поток по умолчанию. Если вы предпочитаете Node.js 12, переключитесь между потоками модуля:

      • sudo dnf module enable nodejs:12

      Вам будет предложено подтвердить ваше решение. После этого поток версии 12 будет активирован, и мы сможем продолжить установку. Дополнительную информацию о работе с потоками модуля см. в официальной документации для AppStream CentOS.

      Установите пакет nodejs с помощью dnf:

      dnf снова предложит вам подтвердить это действие. Для этого нажмите y, а затем ENTER, чтобы выполнить установку программного обеспечения.

      Проверьте, что установка выполнена успешно, запросив у node номер версии:

      Output

      v12.13.1

      Вывод --version​​​ будет отличаться, если вы установили Node.js 10.

      Примечание. Обе доступные версии Node.js — это релизы с долгосрочной поддержкой, т. е. у них гарантировано более длинное окно поддержки. Дополнительную информацию по жизненному циклу см. на официальной странице с информацией о релизах Node.js.

      При установке пакета nodejs должна выполняться установка npm, утилиты Node Package Manager​​​, в качестве зависимости. Проверьте, что она была установлена корректно:

      Output

      6.12.1

      К настоящему моменту вы успешно установили Node.js и npm с помощью репозиториев программного обеспечения CentOS. В следующем разделе вы узнаете, как использовать для этого Node Version Manager.

      Вариант 2 — Установка Node с помощью Node Version Manager

      Еще одним способом установки Node.js, который является достаточно гибким, является использование nvm, или Node Version Manager. Это программное обеспечение позволяет устанавливать и поддерживать несколько разных независимых версий Node.js и связанных с ними пакетов Node.

      Чтобы установить NVM на ваш сервер CentOS 8, откройте страницу проекта на GitHub. Скопируйте команду curl из файла README, отображаемого на главной странице. Она позволит получить самую последнюю версию скрипта установки.

      Прежде чем передавать команду в bash, рекомендуется проверить скрипт, чтобы убедиться, что он не делает ничего, с чем вы не согласны. Вы можете сделать это, удалив сегмент | bash в конце команды curl:

      • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh

      Проверьте и убедитесь, что вы не возражаете против изменений, которые вносит скрипт. Если вас удовлетворит результат, запустите команду еще раз с добавлением | bash в конце. URL-адрес, который вы используете, будет меняться в зависимости от последней версии NVM, но в настоящий момент скрипт можно загрузить и запустить с помощью следующей команды:

      • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

      Она устанавливает скрипт nvm для вашей учетной записи. Для его использования необходимо сначала получить ваш файл .bash_profile:

      Теперь вы можете спросить у NVM, какие версии Node доступны:

      nvm list-remote
      
      . . .
             v12.13.0   (LTS: Erbium)
             v12.13.1   (LTS: Erbium)
             v12.14.0   (LTS: Erbium)
             v12.14.1   (LTS: Erbium)
             v12.15.0   (LTS: Erbium)
             v12.16.0   (LTS: Erbium)
             v12.16.1   (Latest LTS: Erbium)
              v13.0.0
              v13.0.1
              v13.1.0
              v13.2.0
              v13.3.0
              v13.4.0
              v13.5.0
              v13.6.0
              v13.7.0
              v13.8.0
              v13.9.0
             v13.10.0
             v13.10.1
             v13.11.0
             v13.12.0
      

      Это очень длинный список! Вы можете установить версию Node, введя любую версию релиза, которую вы видите. Например, для получения версии 13.6.0 воспользуйтесь следующей командой:

      Вы можете увидеть установленные вами различные версии с помощью следующей команды:

      nvm list
      

      Output

      -> v13.6.0 default -> v13.6.0 node -> stable (-> v13.6.0) (default) stable -> 13.6 (-> v13.6.0) (default)

      Она отображает текущую активную версию на первой строке (-> v13.6.0), за которой следуют псевдонимы и версии, на которые указывают эти псевдонимы.

      Примечание: если у вас также имеется версия Node, установленная через репозитории программного обеспечения CentOS, вы можете увидеть здесь строку system -> v12.13.1​​​ (или другой номер версии). Вы всегда можете активировать системную версию Node с помощью nvm use system​​​.

      Также вы увидите псевдонимы для различных релизов Node с длительной поддержкой (LTS):

      Output

      lts/* -> lts/erbium (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.19.0 (-> N/A) lts/erbium -> v12.16.1 (-> N/A)

      Мы можем установить релиз на основе этих псевдонимов. Например, для установки последней версии с долгосрочной поддержкой, erbium, запустите следующую команду:

      Output

      Downloading and installing node v12.16.1... . . . Now using node v12.16.1 (npm v6.13.4)

      Вы можете переключаться между установленными версиями с помощью nvm use:

      nvm use v13.6.0
      
      Now using node v13.6.0 (npm v6.13.4)
      

      Вы можете проверить, что установка выполнена успешно, с помощью того же метода, использованного в других разделах. Введите следующую команду:

      node --version
      

      Output

      v13.6.0

      Корректная версия Node установлена на нашем компьютере, как мы и ожидали. Совместимая версия npm также доступна.

      Вариант 3 — Установка Node из источника

      Еще одним способом установки Node.js является загрузка исходного кода и его компиляция.

      Воспользуйтесь вашим браузером и перейдите на официальную страницу загрузки Node.js, нажмите правой кнопкой на ссылке Исходный код и нажмите Скопировать адрес ссылки или похожий вариант в зависимости от браузера.

      Вернитесь к вашему сеансу SSH, убедившись, что вы находитесь в директории, для которой у вас есть права на запись. Мы будем использовать домашнюю директорию текущего пользователя:

      Затем введите curl, вставьте ссылку, скопированную вами с сайта, и добавьте в конце | tar xz:

      • curl https://nodejs.org/dist/v12.16.1/node-v12.16.1.tar.gz | tar xz

      Команда будет использовать утилиту curl для загрузки исходника, затем передавать его непосредственно в утилиту tar, которая будет извлекать его в текущую директорию.

      Перейдите во вновь созданную директорию исходника:

      Существует несколько пакетов, которые нам нужно загрузить из репозиториев CentOS для компиляции кода. Используйте dnf для их установки:

      • sudo dnf install gcc-c++ make python2

      Вам будет предложено подтвердить установку. Введите y, а затем ENTER, чтобы сделать это. Теперь мы можем настроить и скомпилировать программное обеспечение:

      Компиляция может занимать определенное время (около 30 минут для четырехъядерного сервера). Мы использовали опцию -j4 для запуска четырех параллельных процессов компиляции. Вы можете пропустить эту опцию или обновить число исходя из количества доступных ядер процессора.

      После завершения компиляции вы можете установить программное обеспечение в вашей системе с помощью следующей команды:

      Чтобы проверить, что установка выполнена успешно, попросите Node отобразить номер версии:

      v12.16.1
      

      Если вы увидите правильный номер версии, установка была выполнена успешно. По умолчанию Node также устанавливает совместимую версию npm, поэтому она также должна быть доступна.

      Заключение

      В этом обучающем руководстве мы продемонстрировали, как установить Node.js с помощью репозитория программного обеспечения CentOS AppStream, с помощью Node Version Manager и компиляции исходного кода.

      Если вы хотите получить дополнительную информацию о программировании на JavaScript, воспользуйтесь нашей серией обучающих материалов:



      Source link

      How To Install and Configure Elasticsearch on Ubuntu 20.04


      Introduction

      Elasticsearch is a platform for distributed search and analysis of data in real time. It is a popular choice due to its usability, powerful features, and scalability.

      This article will guide you through installing Elasticsearch, configuring it for your use case, securing your installation, and beginning to work with your Elasticsearch server.

      Prerequisites

      Before following this tutorial, you will need:

      For this tutorial, we will work with the minimum amount of CPU and RAM required to run Elasticsearch. Note that the amount of CPU, RAM, and storage that your Elasticsearch server will require depends on the volume of logs that you expect.

      Step 1 — Installing and Configuring Elasticsearch

      The Elasticsearch components are not available in Ubuntu’s default package repositories. They can, however, be installed with APT after adding Elastic’s package source list.

      All of the packages are signed with the Elasticsearch signing key in order to protect your system from package spoofing. Packages which have been authenticated using the key will be considered trusted by your package manager. In this step, you will import the Elasticsearch public GPG key and add the Elastic package source list in order to install Elasticsearch.

      To begin, use cURL, the command line tool for transferring data with URLs, to import the Elasticsearch public GPG key into APT. Note that we are using the arguments -fsSL to silence all progress and possible errors (except for a server failure) and to allow cURL to make a request on a new location if redirected. Pipe the output of the cURL command into the apt-key program, which adds the public GPG key to APT.

      • curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

      Next, add the Elastic source list to the sources.list.d directory, where APT will search for new sources:

      • echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

      Next, update your package lists so APT will read the new Elastic source:

      Then install Elasticsearch with this command:

      • sudo apt install elasticsearch

      Elasticsearch is now installed and ready to be configured.

      Step 2 — Configuring Elasticsearch

      To configure Elasticsearch, we will edit its configuration files. Elasticsearch has three configuration files:

      • elasticsearch.yml for configuring Elasticsearch, the main configuration file
      • jvm.options for configuring the Elasticsearch Java Virtual Machine (JVM) settings
      • log4j2.properties for configuring Elasticsearch logging

      For this tutorial, we are interested in the elasticsearch.yml file, where most configuration options are stored. This file is located in the /etc/elasticsearch directory.

      Use your preferred text editor to edit Elasticsearch’s configuration file. Here, we’ll use nano:

      • sudo nano /etc/elasticsearch/elasticsearch.yml

      Note: Elasticsearch’s configuration file is in YAML format, which means that we need to maintain the indentation format. Be sure that you do not add any extra spaces as you edit this file.

      The elasticsearch.yml file provides configuration options for your cluster, node, paths, memory, network, discovery, and gateway. Most of these options are preconfigured in the file but you can change them according to your needs. For the purposes of our demonstration of a single-server configuration, we will only adjust the settings for the network host.

      Elasticsearch listens for traffic from everywhere on port 9200. You will want to restrict outside access to your Elasticsearch instance to prevent outsiders from reading your data or shutting down your Elasticsearch cluster through its REST API. To restrict access and therefore increase security, find the line that specifies network.host, uncomment it, and replace its value with localhost so it reads like this:

      /etc/elasticsearch/elasticsearch.yml

      . . .
      # ---------------------------------- Network -----------------------------------
      #
      # Set the bind address to a specific IP (IPv4 or IPv6):
      #
      network.host: localhost
      . . .
      

      We have specified localhost so that Elasticsearch listens on all interfaces and bound IPs. If you want it to listen only on a specific interface, you can specify its IP in place of localhost. Save and close elasticsearch.yml. If you’re using nano, you can do so by pressing CTRL+X, followed by Y and then ENTER .

      These are the minimum settings you can start with in order to use Elasticsearch. Now you can start Elasticsearch for the first time.

      Start the Elasticsearch service with systemctl. Give Elasticsearch a few moments to start up. Otherwise, you may get errors about not being able to connect.

      • sudo systemctl start elasticsearch

      Next, run the following command to enable Elasticsearch to start up every time your server boots:

      • sudo systemctl enable elasticsearch

      With Elasticsearch enabled upon startup, let’s move on to the next step to discuss security.

      Step 3 — Securing Elasticsearch

      By default, Elasticsearch can be controlled by anyone who can access the HTTP API. This is not always a security risk because Elasticsearch listens only on the loopback interface (that is, 127.0.0.1), which can only be accessed locally. Thus, no public access is possible and as long as all server users are trusted, security may not be a major concern.

      If you need to allow remote access to the HTTP API, you can limit the network exposure with Ubuntu’s default firewall, UFW. This firewall should already be enabled if you followed the steps in the prerequisite Initial Server Setup with Ubuntu 20.04 tutorial.

      We will now configure the firewall to allow access to the default Elasticsearch HTTP API port (TCP 9200) for the trusted remote host, generally the server you are using in a single-server setup, such as198.51.100.0. To allow access, type the following command:

      • sudo ufw allow from 198.51.100.0 to any port 9200

      Once that is complete, you can enable UFW with the command:

      Finally, check the status of UFW with the following command:

      If you have specified the rules correctly, you should receive output like this:

      Output

      Status: active To Action From -- ------ ---- 9200 ALLOW 198.51.100.0 22 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6)

      The UFW should now be enabled and set up to protect Elasticsearch port 9200.

      If you want to invest in additional protection, Elasticsearch offers the commercial Shield plugin for purchase.

      Step 4 — Testing Elasticsearch

      By now, Elasticsearch should be running on port 9200. You can test it with cURL and a GET request.

      • curl -X GET 'http://localhost:9200'

      You should receive the following response:

      Output

      { "name" : "elasticsearch-ubuntu20-04", "cluster_name" : "elasticsearch", "cluster_uuid" : "qqhFHPigQ9e2lk-a7AvLNQ", "version" : { "number" : "7.6.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f", "build_date" : "2020-03-26T06:34:37.794943Z", "build_snapshot" : false, "lucene_version" : "8.4.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }

      If you receive a response similar to the one above, Elasticsearch is working properly. If not, make sure that you have followed the installation instructions correctly and you have allowed some time for Elasticsearch to fully start.

      To perform a more thorough check of Elasticsearch execute the following command:

      • curl -XGET 'http://localhost:9200/_nodes?pretty'

      In the output from the above command you can verify all the current settings for the node, cluster, application paths, modules, and more.

      Step 5 — Using Elasticsearch

      To start using Elasticsearch, let’s first add some data. Elasticsearch uses a RESTful API, which responds to the usual CRUD commands: create, read, update, and delete. To work with it, we’ll use the cURL command again.

      You can add your first entry like so:

      • curl -XPOST -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'

      You should receive the following response:

      Output

      {"_index":"tutorial","_type":"helloworld","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

      With cURL, we have sent an HTTP POST request to the Elasticsearch server. The URI of the request was /tutorial/helloworld/1 with several parameters:

      • tutorial is the index of the data in Elasticsearch.
      • helloworld is the type.
      • 1 is the ID of our entry under the above index and type.

      You can retrieve this first entry with an HTTP GET request.

      • curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'

      This should be the resulting output:

      Output

      {"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"found":true,"_source":{ "message": "Hello, World!" }}

      To modify an existing entry, you can use an HTTP PUT request.

      • curl -X PUT -H "Content-Type: application/json" 'localhost:9200/tutorial/helloworld/1?pretty' -d '
      • {
      • "message": "Hello, People!"
      • }'

      Elasticsearch should acknowledge successful modification like this:

      Output

      { "_index" : "tutorial", "_type" : "helloworld", "_id" : "1", "_version" : 2, "result" : "updated", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 1 }

      In the above example we have modified the message of the first entry to “Hello, People!”. With that, the version number has been automatically increased to 2.

      You may have noticed the extra argument pretty in the above request. It enables human-readable format so that you can write each data field on a new row. You can also “prettify” your results when retrieving data to get a more readable output by entering the following command:

      • curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1?pretty'

      Now the response will be formatted for a human to parse:

      Output

      { "_index" : "tutorial", "_type" : "helloworld", "_id" : "1", "_version" : 2, "_seq_no" : 1, "_primary_term" : 1, "found" : true, "_source" : { "message" : "Hello, People!" } } }

      We have now added and queried data in Elasticsearch. To learn about the other operations please check the API documentation.

      Conclusion

      You have now installed, configured, and begun to use Elasticsearch. To further explore Elasticsearch’s functionality, please refer to the official Elasticsearch documentation.



      Source link