InfoGrab Docs

Elasticsearch 서버 설정

요약

Elasticsearch를 사용하면 게시물 데이터의 인덱스를 생성하고 관리하여 대량의 데이터를 거의 실시간으로 빠르게 검색할 수 있습니다. Elasticsearch 배포에는 Elasticsearch 설정 및 Mattermost 구성 두 단계가 포함됩니다.

Elasticsearch를 사용하면 게시물 데이터의 인덱스를 생성하고 관리하여 대량의 데이터를 거의 실시간으로 빠르게 검색할 수 있습니다. 인덱싱 프로세스는 Elasticsearch 서버를 설정하고 연결한 후 시스템 콘솔에서 관리할 수 있습니다. 게시물 인덱스는 Elasticsearch 서버에 저장되며 새 게시물이 작성된 후 지속적으로 업데이트됩니다. 기존 게시물을 인덱싱하려면 전체 게시물 데이터베이스의 대량 인덱스를 생성해야 합니다.

Elasticsearch 배포에는 Elasticsearch 설정Mattermost 구성 두 단계가 포함됩니다.

Elasticsearch 설정#

Mattermost 서버와 별개로 전용 머신에 Elasticsearch 서버를 설정하는 것을 강력히 권장합니다.

  1. Elasticsearch v8 또는 Elasticsearch v7.17+의 최신 릴리즈를 다운로드하고 설치합니다. 설치 세부 정보는 Elasticsearch 문서를 참조하세요.
  2. 다음 명령을 실행하여 systemd로 Elasticsearch를 설정합니다:
  3. sudo /bin/systemctl daemon-reload
    sudo /bin/systemctl enable elasticsearch.service
    sudo systemctl start elasticsearch.service
  4. 다음 명령을 실행하여 서버에서 Elasticsearch가 작동하는지 확인합니다:
  5. curl localhost:9200
  6. 다음 명령을 실행하여 네트워크 인터페이스 이름을 가져옵니다:
  7. ip addr
  8. 다음 명령을 실행하여 vi에서 Elasticsearch 구성 파일을 편집합니다:
  9. vi /etc/elasticsearch/elasticsearch.yml
  10. 이 파일에서 network.host_eth0_을 네트워크 인터페이스 이름으로 교체하고 변경 사항을 저장합니다.
  11. Elasticsearch v8을 사용하는 경우 와일드카드 작업이 작동하도록 elasticsearch.yml에서 action.destructive_requires_namefalse로 설정해야 합니다.
  12. 다음 명령을 실행하여 Elasticsearch를 재시작합니다:
  13. sudo systemctl stop elasticsearch
    sudo systemctl start elasticsearch
  14. 다음 명령을 실행하여 포트가 수신 중인지 확인합니다:
  15. netstat -plnt
    
    포트 9200 및 9300에서 수신하는 포트를 포함한 다음 포트가 표시되어야 합니다. 이것들이 서버의 IP 주소에서 수신하고 있는지 확인하세요.
  16. Elasticsearch 디렉터리를 생성하고 적절한 권한을 부여합니다.
  17. 다음 명령을 실행하여 /usr/share/elasticsearch/plugins 디렉터리에 icu-analyzer 플러그인을 설치합니다:
  18. sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
    
    **(선택 사항) CJK 언어 분석기 플러그인**: 한국어, 일본어 또는 중국어 콘텐츠 검색을 개선하려면 다음 언어별 분석기 플러그인 중 하나 이상을 설치하세요: ``analysis-nori``(한국어), ``analysis-kuromoji``(일본어), ``analysis-smartcn``(중국어).
    
    
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-nori
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn
    
    CJK 플러그인을 설치한 후 로드하려면 Elasticsearch를 재시작합니다:
    
    sudo systemctl restart elasticsearch
    그런 다음 <a href="/docs/mattermost/configure/environment-configuration-settings/#enable-cjk-analyzers" class="doc-ref">EnableCJKAnalyzers</a> 구성 설정을 활성화합니다. 추가 CJK 검색 구성 옵션은 <a href="/docs/mattermost/configure/enabling-chinese-japanese-korean-search/" class="doc-ref">중국어, 일본어, 한국어 검색 활성화</a>를 참조하세요.
    
    Important

    기존 인덱싱된 콘텐츠가 있는 서버에서 CJK 분석기를 활성화하는 경우, 기존 게시물에 CJK 분석기가 적용되도록 **시스템 콘솔 > 환경 > Elasticsearch**에서 검색 인덱스를 제거하고 재구축해야 합니다.</code></pre> <li class="numbered">다음 명령을 실행하여 Mattermost에서 Elasticsearch로의 연결을 테스트합니다:

curl 172.31.80.220:9200

Mattermost 구성#

Elasticsearch 서버를 사용하고 게시물 인덱스를 생성하도록 Mattermost를 구성하려면 다음 단계를 따르세요:

  1. 시스템 콘솔 > 환경 > Elasticsearch로 이동합니다.
  2. Elasticsearch 인덱싱 활성화true로 설정하여 페이지의 다른 설정을 활성화합니다. 구성이 저장되면 데이터베이스에 새로 게시된 게시물이 Elasticsearch 서버에 자동으로 인덱싱됩니다.
  3. 백엔드 유형elasticsearch로 설정되어 있는지 확인합니다.

서버 연결 세부 정보 설정#

  1. (선택 사항) 엔터프라이즈 검색 서버에 접근하기 위한 서버 사용자 이름 을 입력합니다.
  2. (선택 사항) 사용자 이름과 연결된 서버 비밀번호 를 입력합니다.
  3. 클러스터 스니핑 활성화 (선택 사항)를 설정합니다. 스니핑은 클러스터의 모든 데이터 노드를 자동으로 찾아 연결합니다.
  4. Elastic Cloud 또는 Amazon OpenSearch Service와 같은 클라우드 호스팅 검색 공급자를 사용하는 경우 클러스터 스니핑을 활성화하지 마세요. 클라우드 공급자는 일반적으로 프록시 뒤에 검색 클러스터 노드를 숨기므로, 스니핑된 노드 주소는 네트워크에서 도달할 수 없을 수 있습니다. 공급자가 연결 풀링을 처리하므로 스니핑은 불필요하며 잠재적으로 문제를 일으킬 수 있습니다.

  5. 기본 인증 자격 증명과 함께 사용하거나 대체하기 위한 선택적 CA 및 클라이언트 인증서 구성 설정을 사용할 수 있습니다. 자세한 내용은 엔터프라이즈 검색 구성 설정 문서를 참조하세요.
  6. 연결 테스트 를 선택한 다음 저장 을 선택합니다. 서버 연결이 실패하면 구성을 저장하거나 Elasticsearch 또는 AWS OpenSearch로 검색을 활성화할 수 없습니다.

Mattermost v11부터 엔터프라이즈 검색 서버 연결은 지원 패킷 생성 중에 테스트됩니다. 지원 패킷 생성 중 발생하는 연결 오류는 구성 문제 진단에 도움이 되도록 자동으로 패킷에 포함됩니다.

기존 메시지의 포스트 인덱스 생성#

지금 인덱싱 을 선택합니다. 이 프로세스는 포스트 데이터베이스 크기와 메시지 수에 따라 최대 몇 시간이 걸릴 수 있습니다. 인덱스가 생성되는 동안 진행률을 백분율로 확인할 수 있습니다. 인덱싱 프로세스 중에 데이터베이스 검색을 사용할 수 있도록 다운타임을 방지하려면 검색 쿼리에 Elasticsearch 활성화false 로 설정하세요.

엔터프라이즈 검색 활성화#

엔터프라이즈 검색을 활성화하기 전에 대량 인덱싱이 완료되어야 합니다. 그렇지 않으면 검색 결과가 불완전합니다.

검색 쿼리에 Elasticsearch 활성화true 로, 자동 완성에 Elasticsearch 활성화true 로 설정합니다. 구성 업데이트를 저장하고 Mattermost 서버를 재시작합니다.

게시물 볼륨이 높은 배포의 경우 Mattermost LiveIndexingBatchSize 구성 설정을 읽고 적절히 구성하는 것을 강력히 권장합니다. 게시물 볼륨이 높은 배포의 경우 Elasticsearch 또는 AWS OpenSearch가 완전히 구성되고 실행된 후 데이터베이스 검색을 비활성화 하는 것도 강력히 권장합니다. Mattermost 서버는 Elasticsearch 또는 OpenSearch를 사용할 수 없는 경우 데이터베이스 검색으로 폴백하며, 이는 게시물 볼륨이 높은 배포에서 성능 저하로 이어질 수 있습니다. Mattermost v11.7부터 서버는 주기적인 상태 확인을 통해 장애를 사전에 감지하고, 요청 타임아웃을 기다리는 대신 첫 번째 상태 확인 실패 시 데이터베이스 검색으로 전환합니다. 자세한 내용은 장애 처리 FAQ 를 참조하세요.

구성이 저장되면 데이터베이스에 새로 작성된 게시물이 Elasticsearch 또는 AWS OpenSearch 서버에 자동으로 인덱싱됩니다.

엔터프라이즈 검색 제한 사항#

  1. Elasticsearch 및 AWS OpenSearch는 검색 결과의 관련성을 유지하기 위해 표준 "불용어(stop words)" 세트를 사용합니다. 다음 단어에 대한 결과는 반환되지 않습니다: "a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with".
  2. 따옴표 안의 불용어를 검색하면 검색된 단어 이상의 결과가 반환됩니다 (티켓).
  3. 기본적으로 검색 결과는 사용자의 팀 및 채널 멤버십으로 제한됩니다. 이는 Mattermost 서버에 의해 적용됩니다. 항목은 Mattermost가 쿼리 시 필터링할 수 있는 방식으로 Elasticsearch 또는 AWS OpenSearch에 인덱싱되므로, Mattermost 서버는 모든 Elasticsearch 또는 AWS OpenSearch 요청에서 해당 필터를 적용하여 결과를 좁힙니다. Mattermost v11.6부터 관리자는 멤버십 없이 공개 채널 검색 허용 을 설정하여 사용자가 참여하지 않은 공개 채널의 메시지를 속한 팀 범위 내에서 찾을 수 있게 할 수 있습니다.

Elasticsearch 서버 설정

원문 보기
요약

Elasticsearch를 사용하면 게시물 데이터의 인덱스를 생성하고 관리하여 대량의 데이터를 거의 실시간으로 빠르게 검색할 수 있습니다. Elasticsearch 배포에는 Elasticsearch 설정 및 Mattermost 구성 두 단계가 포함됩니다.

Elasticsearch를 사용하면 게시물 데이터의 인덱스를 생성하고 관리하여 대량의 데이터를 거의 실시간으로 빠르게 검색할 수 있습니다. 인덱싱 프로세스는 Elasticsearch 서버를 설정하고 연결한 후 시스템 콘솔에서 관리할 수 있습니다. 게시물 인덱스는 Elasticsearch 서버에 저장되며 새 게시물이 작성된 후 지속적으로 업데이트됩니다. 기존 게시물을 인덱싱하려면 전체 게시물 데이터베이스의 대량 인덱스를 생성해야 합니다.

Elasticsearch 배포에는 Elasticsearch 설정Mattermost 구성 두 단계가 포함됩니다.

Elasticsearch 설정#

Mattermost 서버와 별개로 전용 머신에 Elasticsearch 서버를 설정하는 것을 강력히 권장합니다.

  1. Elasticsearch v8 또는 Elasticsearch v7.17+의 최신 릴리즈를 다운로드하고 설치합니다. 설치 세부 정보는 Elasticsearch 문서를 참조하세요.
  2. 다음 명령을 실행하여 systemd로 Elasticsearch를 설정합니다:
  3. sudo /bin/systemctl daemon-reload
    sudo /bin/systemctl enable elasticsearch.service
    sudo systemctl start elasticsearch.service
  4. 다음 명령을 실행하여 서버에서 Elasticsearch가 작동하는지 확인합니다:
  5. curl localhost:9200
  6. 다음 명령을 실행하여 네트워크 인터페이스 이름을 가져옵니다:
  7. ip addr
  8. 다음 명령을 실행하여 vi에서 Elasticsearch 구성 파일을 편집합니다:
  9. vi /etc/elasticsearch/elasticsearch.yml
  10. 이 파일에서 network.host_eth0_을 네트워크 인터페이스 이름으로 교체하고 변경 사항을 저장합니다.
  11. Elasticsearch v8을 사용하는 경우 와일드카드 작업이 작동하도록 elasticsearch.yml에서 action.destructive_requires_namefalse로 설정해야 합니다.
  12. 다음 명령을 실행하여 Elasticsearch를 재시작합니다:
  13. sudo systemctl stop elasticsearch
    sudo systemctl start elasticsearch
  14. 다음 명령을 실행하여 포트가 수신 중인지 확인합니다:
  15. netstat -plnt
    
    포트 9200 및 9300에서 수신하는 포트를 포함한 다음 포트가 표시되어야 합니다. 이것들이 서버의 IP 주소에서 수신하고 있는지 확인하세요.
  16. Elasticsearch 디렉터리를 생성하고 적절한 권한을 부여합니다.
  17. 다음 명령을 실행하여 /usr/share/elasticsearch/plugins 디렉터리에 icu-analyzer 플러그인을 설치합니다:
  18. sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
    
    **(선택 사항) CJK 언어 분석기 플러그인**: 한국어, 일본어 또는 중국어 콘텐츠 검색을 개선하려면 다음 언어별 분석기 플러그인 중 하나 이상을 설치하세요: ``analysis-nori``(한국어), ``analysis-kuromoji``(일본어), ``analysis-smartcn``(중국어).
    
    
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-nori
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn
    
    CJK 플러그인을 설치한 후 로드하려면 Elasticsearch를 재시작합니다:
    
    sudo systemctl restart elasticsearch
    그런 다음 <a href="/docs/mattermost/configure/environment-configuration-settings/#enable-cjk-analyzers" class="doc-ref">EnableCJKAnalyzers</a> 구성 설정을 활성화합니다. 추가 CJK 검색 구성 옵션은 <a href="/docs/mattermost/configure/enabling-chinese-japanese-korean-search/" class="doc-ref">중국어, 일본어, 한국어 검색 활성화</a>를 참조하세요.
    
    Important

    기존 인덱싱된 콘텐츠가 있는 서버에서 CJK 분석기를 활성화하는 경우, 기존 게시물에 CJK 분석기가 적용되도록 **시스템 콘솔 > 환경 > Elasticsearch**에서 검색 인덱스를 제거하고 재구축해야 합니다.</code></pre> <li class="numbered">다음 명령을 실행하여 Mattermost에서 Elasticsearch로의 연결을 테스트합니다:

curl 172.31.80.220:9200

Mattermost 구성#

Elasticsearch 서버를 사용하고 게시물 인덱스를 생성하도록 Mattermost를 구성하려면 다음 단계를 따르세요:

  1. 시스템 콘솔 > 환경 > Elasticsearch로 이동합니다.
  2. Elasticsearch 인덱싱 활성화true로 설정하여 페이지의 다른 설정을 활성화합니다. 구성이 저장되면 데이터베이스에 새로 게시된 게시물이 Elasticsearch 서버에 자동으로 인덱싱됩니다.
  3. 백엔드 유형elasticsearch로 설정되어 있는지 확인합니다.

서버 연결 세부 정보 설정#

  1. (선택 사항) 엔터프라이즈 검색 서버에 접근하기 위한 서버 사용자 이름 을 입력합니다.
  2. (선택 사항) 사용자 이름과 연결된 서버 비밀번호 를 입력합니다.
  3. 클러스터 스니핑 활성화 (선택 사항)를 설정합니다. 스니핑은 클러스터의 모든 데이터 노드를 자동으로 찾아 연결합니다.
  4. Elastic Cloud 또는 Amazon OpenSearch Service와 같은 클라우드 호스팅 검색 공급자를 사용하는 경우 클러스터 스니핑을 활성화하지 마세요. 클라우드 공급자는 일반적으로 프록시 뒤에 검색 클러스터 노드를 숨기므로, 스니핑된 노드 주소는 네트워크에서 도달할 수 없을 수 있습니다. 공급자가 연결 풀링을 처리하므로 스니핑은 불필요하며 잠재적으로 문제를 일으킬 수 있습니다.

  5. 기본 인증 자격 증명과 함께 사용하거나 대체하기 위한 선택적 CA 및 클라이언트 인증서 구성 설정을 사용할 수 있습니다. 자세한 내용은 엔터프라이즈 검색 구성 설정 문서를 참조하세요.
  6. 연결 테스트 를 선택한 다음 저장 을 선택합니다. 서버 연결이 실패하면 구성을 저장하거나 Elasticsearch 또는 AWS OpenSearch로 검색을 활성화할 수 없습니다.

Mattermost v11부터 엔터프라이즈 검색 서버 연결은 지원 패킷 생성 중에 테스트됩니다. 지원 패킷 생성 중 발생하는 연결 오류는 구성 문제 진단에 도움이 되도록 자동으로 패킷에 포함됩니다.

기존 메시지의 포스트 인덱스 생성#

지금 인덱싱 을 선택합니다. 이 프로세스는 포스트 데이터베이스 크기와 메시지 수에 따라 최대 몇 시간이 걸릴 수 있습니다. 인덱스가 생성되는 동안 진행률을 백분율로 확인할 수 있습니다. 인덱싱 프로세스 중에 데이터베이스 검색을 사용할 수 있도록 다운타임을 방지하려면 검색 쿼리에 Elasticsearch 활성화false 로 설정하세요.

엔터프라이즈 검색 활성화#

엔터프라이즈 검색을 활성화하기 전에 대량 인덱싱이 완료되어야 합니다. 그렇지 않으면 검색 결과가 불완전합니다.

검색 쿼리에 Elasticsearch 활성화true 로, 자동 완성에 Elasticsearch 활성화true 로 설정합니다. 구성 업데이트를 저장하고 Mattermost 서버를 재시작합니다.

게시물 볼륨이 높은 배포의 경우 Mattermost LiveIndexingBatchSize 구성 설정을 읽고 적절히 구성하는 것을 강력히 권장합니다. 게시물 볼륨이 높은 배포의 경우 Elasticsearch 또는 AWS OpenSearch가 완전히 구성되고 실행된 후 데이터베이스 검색을 비활성화 하는 것도 강력히 권장합니다. Mattermost 서버는 Elasticsearch 또는 OpenSearch를 사용할 수 없는 경우 데이터베이스 검색으로 폴백하며, 이는 게시물 볼륨이 높은 배포에서 성능 저하로 이어질 수 있습니다. Mattermost v11.7부터 서버는 주기적인 상태 확인을 통해 장애를 사전에 감지하고, 요청 타임아웃을 기다리는 대신 첫 번째 상태 확인 실패 시 데이터베이스 검색으로 전환합니다. 자세한 내용은 장애 처리 FAQ 를 참조하세요.

구성이 저장되면 데이터베이스에 새로 작성된 게시물이 Elasticsearch 또는 AWS OpenSearch 서버에 자동으로 인덱싱됩니다.

엔터프라이즈 검색 제한 사항#

  1. Elasticsearch 및 AWS OpenSearch는 검색 결과의 관련성을 유지하기 위해 표준 "불용어(stop words)" 세트를 사용합니다. 다음 단어에 대한 결과는 반환되지 않습니다: "a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with".
  2. 따옴표 안의 불용어를 검색하면 검색된 단어 이상의 결과가 반환됩니다 (티켓).
  3. 기본적으로 검색 결과는 사용자의 팀 및 채널 멤버십으로 제한됩니다. 이는 Mattermost 서버에 의해 적용됩니다. 항목은 Mattermost가 쿼리 시 필터링할 수 있는 방식으로 Elasticsearch 또는 AWS OpenSearch에 인덱싱되므로, Mattermost 서버는 모든 Elasticsearch 또는 AWS OpenSearch 요청에서 해당 필터를 적용하여 결과를 좁힙니다. Mattermost v11.6부터 관리자는 멤버십 없이 공개 채널 검색 허용 을 설정하여 사용자가 참여하지 않은 공개 채널의 메시지를 속한 팀 범위 내에서 찾을 수 있게 할 수 있습니다.