-
ElasticSearch → Kibana 특정 유저, 경로 지정하여 설치엔지니어링/ELK 2021. 11. 19. 12:00728x90
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
- 디렉토리 생성
$ 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
- 패키지 다운로드 및 설치
$ 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'엔지니어링 > ELK' 카테고리의 다른 글
[Grafana] No date field named @timestamp found 오류 (0) 2021.08.12 서울시 지하철 대시보드1 - 전처리 (0) 2021.07.31