2장. 중앙 집중식 로깅 제품군 설치
2.1. 중앙 집중식 로그 릴레이/Transformer 설치 링크 복사링크가 클립보드에 복사되었습니다!
다음 최소 사양을 충족하는 베어 메탈 시스템을 찾습니다.
- 8GB 메모리
- 단일 소켓 Xeon 클래스 CPU
- 500GB의 디스크 공간
- Red Hat Enterprise Linux 7을 설치합니다.
시스템이 Operational Tools 패키지에 액세스할 수 있도록 허용합니다.
시스템을 등록하고 구독하십시오.
subscription-manager register subscription-manager list --consumed
# subscription-manager register # subscription-manager list --consumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenStack 서브스크립션이 자동으로 연결되지 않은 경우 수동으로 서브스크립션을 연결하는 설명서를 참조하십시오.
처음 활성화된 리포지토리를 비활성화하고 Operational Tools에 적합한 리포지토리만 활성화합니다.
subscription-manager repos --disable=* subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-openstack-8-optools-rpms
# subscription-manager repos --disable=* # subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-openstack-8-optools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기본 OpenStack 리포지토리(rhel-7-server-openstack-8-rpms)는 이 노드에서 활성화되지 않아야 합니다. 이 리포지토리에는 Operational Tools 패키지와 호환되지 않을 수 있는 특정 운영 툴 종속 항목의 최신 버전이 포함될 수 있습니다.
다음 명령을 실행하여
Elasticsearch,Fluentd및Kibana소프트웨어를 설치합니다.yum install elasticsearch fluentd rubygem-fluent-plugin-elasticsearch kibana httpd
# yum install elasticsearch fluentd rubygem-fluent-plugin-elasticsearch kibana httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch에서 CORS(Cross-origin resource sharing)를 활성화합니다. 이렇게 하려면/etc/elasticsearch/elasticsearch.yml을 편집하고 파일 끝에 다음 행을 추가합니다.http.cors.enabled: true http.cors.allow-origin: "/.*/"
http.cors.enabled: true http.cors.allow-origin: "/.*/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이렇게 하면 모든 웹 서버의 모든 웹 페이지에서
ElasticsearchJavaScript 애플리케이션을 호출할 수 있습니다.Kibana서버의 CORS만 허용하려면 다음을 사용합니다.http.cors.allow-origin: "http://LOGGING_SERVER"
http.cors.allow-origin: "http://LOGGING_SERVER"Copy to Clipboard Copied! Toggle word wrap Toggle overflow IP 주소 또는 호스트 이름을 Kibana에 액세스할지 여부에 따라 LOGGING_SERVER 를
서버의 IP 주소 또는 호스트 이름으로 교체합니다. 그러나KibanaElasticsearch서비스가 신뢰할 수 있는 호스트에서만 액세스할 수 있는 경우"/.*/"를 사용하는 것이 안전합니다.Elasticsearch인스턴스를 시작하고 부팅 시 활성화합니다.systemctl start elasticsearch systemctl enable elasticsearch
# systemctl start elasticsearch # systemctl enable elasticsearchCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch인스턴스가 작동하는지 확인하려면 다음 명령을 실행합니다.curl http://localhost:9200/
# curl http://localhost:9200/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 유사한 응답이 제공됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 데이터를 수락하고
Elasticsearch에 작성하도록Fluentd를 구성합니다./etc/fluentd/fluent.conf를 편집하고 해당 콘텐츠를 다음으로 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Fluentd를 시작하고 부팅 시 활성화합니다.systemctl start fluentd systemctl enable fluentd
# systemctl start fluentd # systemctl enable fluentdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Fluentd의 저널을 확인하고 시작 시 오류가 없는지 확인합니다.journalctl -u fluentd -l -f
# journalctl -u fluentd -l -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch인스턴스를 가리키도록Kibana를 구성합니다./etc/httpd/conf.d/kibana3.conf를 만들고 다음 내용을 내부에 배치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kibana및Elasticsearch에 대한 액세스를 권한 있는 사용자에게만 제한하려면 이러한 서비스가 개방형 네트워크의 시스템에서 실행되고 HTTP 기본 인증을 사용하여 가상 호스트를 보호하고 프록시 뒤에서Elasticseach를 이동하기 때문입니다. 이렇게 하려면 다음 단계를 수행합니다.다음 콘텐츠를 사용하여
/etc/httpd/conf.d/kibana3.conf파일을 생성(또는 다시 작성)합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고AuthUserFile옵션과AuthName옵션에 대해 다른 경로를 사용할 수 있습니다.Kibana에 액세스할 수 있는 사용자 이름과 암호 쌍을 생성합니다. 이렇게 하려면 다음 명령을 실행합니다.htpasswd -c /etc/httpd/conf/htpasswd-kibana user_name
# htpasswd -c /etc/httpd/conf/htpasswd-kibana user_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고AuthUserFile옵션에 다른 경로를 사용하는 경우 그에 따라 명령을 변경합니다.user_name 을 선택한 사용자 이름으로 교체합니다. 메시지가 표시되면 이 사용자 이름과 함께 사용할 암호를 입력합니다. 암호를 다시 입력하라는 메시지가 표시됩니다.
선택적으로 다음 명령을 실행하여 자체 암호를 사용하여 더 많은 사용자를 생성합니다.
htpasswd /etc/httpd/conf/htpasswd-kibana another_user_name
# htpasswd /etc/httpd/conf/htpasswd-kibana another_user_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow localhost인터페이스에서만 수신 대기하도록Elasticsearch를 구성합니다. 이렇게 하려면 편집기에서/etc/elasticsearch/elasticsearch.yml파일을 열고 다음 옵션을 추가합니다.network.host: 127.0.0.1
network.host: 127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 옵션을
/etc/elasticsearch/elasticsearch.yml에 추가하여 CORS로 HTTP 기본 인증 데이터를 사용할 수 있도록Elasticsearch를 구성해야 합니다.http.cors.allow-credentials: true
http.cors.allow-credentials: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 변경 사항을 적용하려면
Elasticsearch를 다시 시작하십시오.systemctl restart elasticsearch
# systemctl restart elasticsearchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 마지막으로 프록시를 사용하여
Elasticsearch파일을 다운로드하고 브라우저에서 HTTP 기본 인증 데이터를 전송하는지 확인합니다. 이렇게 하려면/usr/share/kibana/config.js파일을 편집합니다. 이 파일에서 다음 행을 찾습니다.elasticsearch: "http://"+window.location.hostname+":9200",
elasticsearch: "http://"+window.location.hostname+":9200",Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같이 변경합니다.
elasticsearch: {server: "http://"+window.location.hostname, withCredentials: true},elasticsearch: {server: "http://"+window.location.hostname, withCredentials: true},Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Kibana(Inside Apache)를 활성화하여Elasticsearch에 연결한 다음 Apache를 시작하고 부팅 시 활성화합니다.setsebool -P httpd_can_network_connect 1 systemctl start httpd systemctl enable httpd
# setsebool -P httpd_can_network_connect 1 # systemctl start httpd # systemctl enable httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템에서 방화벽을 열어
Fluentd및httpd에 대한 연결을 허용합니다.firewall-cmd --zone=public --add-port=4000/tcp --permanent firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload
# firewall-cmd --zone=public --add-port=4000/tcp --permanent # firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 HTTP 인증 및
Elasticsearch프록시를 구성하지 않은 경우 방화벽을 열어Elasticsearch에 대한 직접 연결을 허용합니다.firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload
# firewall-cmd --zone=public --add-port=9200/tcp --permanent # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요HTTP 인증을 사용하여
Kibana및Elasticseach에 대한 액세스를 제한하지 않으면 Kibana 및 Elasticsearch에서 제공하는 정보는 인증 없이 모든 사람이 사용할 수 있습니다. 데이터를 보호하려면 시스템 또는 열려 있는 TCP 포트(80, 4000, 9200)가 신뢰할 수 있는 호스트에서만 액세스할 수 있는지 확인합니다.