gitlab에서 프로그램내의 다중프로젝트의 코드 검색을 하기 위해서는 깃랩의 고급 검색기능을 사용해야 한다.
advanced search 사용을 위해서는 gitlab/elasticsearch 를 연동이 필요함

gitlab - elasticsearch intergration to use the advanced search(premium feature)

 

순서
1.설치전 주의사항등 확인

2.엘라스틱서치 설치

3.gitlab-엘라스틱서치 연동

위와 같이 진행

 

 

1.설치전 주의사항 등 확인

 

server1 - gitlab(docker containor)
server2 - elasticsearch(docker containor)

ㄴRunning Elasticsearch on the same server as GitLab is not recommended and will likely cause a degradation in GitLab instance performance.(깃랩 독스에 보는것처럼 동일 서버에의 설치는 성능저하가 있을 수 있으니 지양하라 적혀있다)

 

elasticsearch server Use SSD storage. You will need enough storage for 50% of the total size of your Git repositories.

2.엘라스틱서치 설치
엘라스틱서치 노드구성은 멀티노드로 셋팅한다.
ㄴ제공되는 도커 컴포즈가 멀티노드용으로 제공되기도 하고. 엘라스틱서치가 각 노드들의 사용처에 맞게 클러스터링 구성하여 운영하는게 좋기 때문에 멀티노드로 구성한다. 

www.elastic.co/guide/en/elasticsearch/reference/7.11/docker.html 참고

 

 

2-1 docker image pull

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.11.0docker.elastic.co/elasticsearch/elasticsearch:7.11.0

 

2-2 writing docker-compose file

www.elastic.co/guide/en/elasticsearch/reference/7.11/docker.html#docker-compose-file 참고

ps.ES_JAVA_OPTS 옵션은 서버 메모리에 맞게 수정이 필요함 - 최소 4gb는 필요하지 않나 싶다. 디폴트가 512메가였는데 디폴트로하면 메모리부족으로 ES 다운된다. 4기가로 변경하니 잘 돌아감(프로젝트 용량 약 80기가)

2-3 포트는 9200, 9300 사용하니까 서버에서 사용되고 있는지 아닌지 체크 필요.

2-4 볼륨방식이 아닌 바인드 방식으로 마운트 하고자 할 경우는 아래와같이 수정하면 된다.

volumes:
  data01:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/home/data/elasticsearch/es01_data'
  data02:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/home/data/elasticsearch/es02_data'
  data03:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/home/data/elasticsearch/es03_data'

 

 

3.gitlab-엘라스틱서치 연동(인덱서 설치)
3-1. 깃랩 인덱서 설치

11.8버전 이상의 깃랩은 전부 옴니버스 깃랩이라고 설치한 깃랩내에 패키지로 다 들어가 있다.따라서 깃랩 버전이 11.8 이상이라면 3-2로 가면 됨

나도 11.8 이상(13.0이였음)이라서 인덱서 따로 설치하지 않았다.(설치방법은
docs.gitlab.com/ee/////integration/elasticsearch.html#from-source 참고)

3-2.깃랩  > 엘라스틱으로 아이피 연동 
admin area > settings > intergration > elasticsearch 에서 아이피 설정(다른건 아직 안해도 됨)

3-3. gitlab-rake gitlab:elastic:create_empty_index 입력
ㄴ인덱싱. 용량크면 시간 좀 소요됨 

 

3-4. 인덱싱 완료후 깃랩 설정 페이지(admin area > settings > intergration > elasticsearch) 에서 고급검색기능 사용하기 체크하여 사용하면 된다.


기타,

   16  gitlab-rake gitlab:elastic:index_projects_status
ㄴ프로젝트가 전부 인덱싱 됐는지 체크하는 명령어 . 당연히 깃랩 서버에서 실행
   17  gitlab-rake gitlab:check
깃랩 이상있는지 체크하는 명령어. 입력해서 빨간거 나오면 그에 맞춰서 수정 필요

 

 

 

 

 

 

 

gitlab-elasticsearch intergration docs : docs.gitlab.com/ee/integration/elasticsearch.html

ㄴversion/system requirements check , Enabling Advanced Search
elasticsearch install(docker) docs : www.elastic.co/guide/en/elasticsearch/reference/7.x/docker.html

elasticsearch licence setting docs : www.elastic.co/guide/en/elasticsearch/reference/7.x/license-settings.html

 

'job > linux' 카테고리의 다른 글

gitlab - elasticsearch intergration  (0) 2021.02.16
centos 5 iptables에 geoip 올리기(2020-03-05)  (0) 2020.03.05
pgsql 해킹 프로세스  (0) 2019.12.30
tls 1.1 지원 중단  (0) 2019.12.09
nginx + php-fpm 취약점  (0) 2019.10.29
sysdig 로 해킹당한 서버 분석해보기  (0) 2019.06.20

+ Recent posts