ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ElasticSearch → Kibana 특정 유저, 경로 지정하여 설치
    엔지니어링/ELK 2021. 11. 19. 12:00
    728x90

    ElasticSearch

    • 우분투에서는 apt-get 패키지를 사용하여 안정적인 최신버전의 elk stack을 설치할 수 있다. 
    • 하기 installation은 .deb 파일로 설치하는 과정이다. 
    • 모든 서비스는 system 에 등록하지 않고 직접 기동하였다. 

    1. add user

    • elk 유저 생성 및 /elk 디렉토리 생성
    # adduser elk 
    -> elk 
    -> elk
    -> Y

     

    • /etc/sudoers 파일에 추가

    elk는 root 권한이 있어야 실행되므로, /etc/sudoers 파일에 추가해준다. 

    추가해주지 않으면 sudo 명령 사용 시, 'elk is not in the sudoers file. This incident will be reported' 와 같은 에러 메시지가 출력되면서 기동되지 않는다. 

    # vi /etc/sudoers
    
    elk    ALL=(ALL:ALL) ALL # User privilege specification 항목에 추가

     

    2. ES Installation 

    https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html

     

    Install Elasticsearch with Debian Package | Elasticsearch Guide [7.15] | Elastic

    On systemd-based distributions, the installation scripts will attempt to set kernel parameters (e.g., vm.max_map_count); you can skip this by masking the systemd-sysctl.service unit.

    www.elastic.co

     

    • 디렉토리 생성
    $ sudo mkdir -p /elk/Elasticsearch
    $ sudo chown -R elk:elk /elk

     

    • 패키지 다운로드 및 설치
    $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-amd64.deb
    $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-amd64.deb.sha512
    $ shasum -a 512 -c elasticsearch-7.15.2-amd64.deb.sha512 
    $ sudo dpkg -x elasticsearch-7.15.2-amd64.deb /elk/Elasticsearch
    
    $ sudo chown -R elk:elk /elk

     

    3. ES Configuration 

    • config 파일 수정
    $ cd /elk/Elasticsearch/etc/elasticsearch
    $ vi elasticsearch.yml
    
    # ======================== Elasticsearch Configuration =========================
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #
    path.data: /elkdata/lib/elasticsearch
    #
    # Path to log files:
    #
    path.logs: /elkdata/log/elasticsearch
    #
    #
    # ---------------------------------- Network -----------------------------------
    #
    # By default Elasticsearch is only accessible on localhost. Set a different
    # address here to expose this node on the network:
    #
    network.host: "localhost"
    #
    # By default Elasticsearch listens for HTTP traffic on the first free port it
    # finds starting at 9200. Set a specific HTTP port here:
    #
    http.port: 9200
    #
    # For more information, consult the network module documentation.
    #

     

    • 데이터 및 로그 디렉토리 생성
    $ sudo mkdir -p /elkdata/lib/elasticsearch
    $ sudo mkdir -p /elkdata/log/elasticsearch
    $ sudo chown -R elk:elk /elk /elkdata

     

    • 서비스 기동 시 참조 파일 수정 

    사용자 지정 경로에서 ES를 시작하는 경우, 하기 파일을 수정해주어야 한다. 

    $ vi /elk/Elasticsearch/etc/default/elasticsearch
    
    # Elasticsearch configuration directory
    # Note: this setting will be shared with command-line tools
    ES_PATH_CONF=/elk/Elasticsearch/etc/elasticsearch

    ES 기동 스크립트에서 default 파일 경로를 수정한다. 

    $ vi /elk/Elasticsearch/usr/share/elasticsearch/bin/elasticsearch-env
    
    source /elk/Elasticsearch/etc/default/elasticsearch #87번째 줄 수정

     

    4. Run ES

    • 서비스 기동
    $ cd /elk/Elasticsearch/usr/share/elasticsearch/bin
    $ ./elasticsearch &
    $ curl -X GET "localhost:9200/?pretty"
    
    {
      "name" : "broker03",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "<cluster)uuid>",
      "version" : {
        "number" : "7.15.2",
        "build_flavor" : "default",
        "build_type" : "deb",
        "build_hash" : "<build_hash>",
        "build_date" : "2021-11-04T14:04:42.515624022Z",
        "build_snapshot" : false,
        "lucene_version" : "8.9.0",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    
    $ ps -ef |grep elastic
    elk       2257   984 99 12:24 pts/2    00:00:55 /usr/local/jdk1.8.0_212/bin/<path>/* org.elasticsearch.bootstrap.Elasticsearch
    elk       2618  2257  0 12:24 pts/2    00:00:00 /elk/Elasticsearch/usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

    Kibana

    1. kibana Installation

    https://www.elastic.co/guide/kr/kibana/current/deb.html

     

    Debian 패키지로 Kibana 설치 | Kibana 사용자 가이드 [5.4] | Elastic

    add-apt-repository`는 사용하지 마십시오. 이는 `deb-src 항목도 추가하는데 소스 패키지가 제공되지 않습니다. deb-src 항목을 추가하면 다음과 같은 오류가 표시됩니다. 릴리스 파일에서 예상된 항목 'm

    www.elastic.co

     

    • 패키지 다운로드 및 설치
    $ sudo mkdir /elk/Kibana
    
    $ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.15.2-amd64.deb
    $ shasum -a 512 kibana-7.15.2-amd64.deb 
    $ sudo dpkg -x kibana-7.15.2-amd64.deb /elk/Kibana
    
    $ sudo chown -R elk:elk /elk/Kibana

     

    2. Kibana Configuration 

    • config 파일 수정 

    7.2.0버전부터 elasticsearch.url 이 elasticsearch.hosts 로 변경되었다.

    $ vi /elk/Kibana/etc/kibana/kibana.yml 
    
    # Kibana is served by a back end server. This setting specifies the port to use.
    server.port: 5601
    
    # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
    # The default is 'localhost', which usually means remote machines will not be able to connect.
    # To allow connections from remote users, set this parameter to a non-loopback address.
    server.host: "<KibanaIP>"
    
    # Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects
    # the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests
    # to Kibana. This setting cannot end in a slash.
    #server.basePath: ""
    
    # The maximum payload size in bytes for incoming server requests.
    #server.maxPayloadBytes: 1048576
    
    # The Kibana server's name.  This is used for display purposes.
    server.name: "elk"
    
    # The URL of the Elasticsearch instance to use for all your queries.
    elasticsearch.hosts: ["http://127.0.0.1:9200"]

    (yml 파일이 있는 경로를 찾지 못해서 에러메시지에 나온 경로로 yml파일 복사해준다.)

    $ cd /elk/Kibana/usr/share/kibana
    $ mkdir config
    $ cp /elk/Kibana/etc/kibana/kibana.yml /elk/Kibana/usr/share/kibana/config

     

    3. Run Kibana

    • 서비스 기동
    $ cd /elk/Kibana/usr/share/kibana/bin
    $ ./kibana &
    • 웹 접속 : <kibanaIP>:5601

    728x90

    댓글

Designed by Tistory.