로깅, 모니터링 및 문제 해결 가이드


Red Hat OpenStack Platform 8

OpenStack Logging, 모니터링 및 문제 해결을 위한 In-Depth 가이드

OpenStack Documentation Team

초록

이 가이드에서는 Red Hat OpenStack Platform 환경 로깅 및 모니터링 및 문제 해결 방법에 대한 자세한 개요를 제공합니다.

머리말

이 문서에서는 Red Hat OpenStack Platform 환경에서 사용할 수 있는 로깅 및 모니터링 기능과 가능한 문제를 해결하는 방법을 간략하게 설명합니다.

1장. 로깅

Red Hat OpenStack Platform은 특정 로그 파일에 정보 메시지를 작성합니다. 이러한 메시지를 사용하여 시스템 이벤트 문제 해결 및 모니터링할 수 있습니다.

참고

개별 로그 파일을 지원 케이스에 수동으로 첨부할 필요는 없습니다. 필요한 모든 정보는 3장. 문제 해결 에 설명된 sosreport 유틸리티에 의해 자동으로 수집됩니다.

1.1. OpenStack 서비스의 로그 파일

각 OpenStack 구성 요소에는 실행 중인 서비스와 관련된 파일이 포함된 별도의 로깅 디렉터리가 있습니다.

1.1.1. Bare Metal Provisioning (ironic) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack Ironic API

openstack-ironic-api.service

/var/log/ironic/ironic-api.log

OpenStack Ironic Conductor

openstack-ironic-conductor.service

/var/log/ironic/ironic-conductor.log

1.1.2. Block Storage(cinder) 로그 파일

Expand
서비스서비스 이름로그 경로

블록 스토리지 API

openstack-cinder-api.service

/var/log/cinder/api.log

블록 스토리지 백업

openstack-cinder-backup.service

/var/log/cinder/backup.log

정보 메시지

cinder-manage 명령

/var/log/cinder/cinder-manage.log

블록 스토리지 스케줄러

openstack-cinder-scheduler.service

/var/log/cinder/scheduler.log

블록 스토리지 볼륨

openstack-cinder-volume.service

/var/log/cinder/volume.log

1.1.3. 컴퓨팅(nova) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack Compute API 서비스

openstack-nova-api.service

/var/log/nova/nova-api.log

OpenStack Compute 인증서 서버

openstack-nova-cert.service

/var/log/nova/nova-cert.log

OpenStack Compute 서비스

openstack-nova-compute.service

/var/log/nova/nova-compute.log

OpenStack Compute Conductor 서비스

openstack-nova-conductor.service

/var/log/nova/nova-conductor.log

OpenStack Compute VNC 콘솔 인증 서버

openstack-nova-consoleauth.service

/var/log/nova/nova-consoleauth.log

정보 메시지

nova-manage 명령

/var/log/nova/nova-manage.log

OpenStack Compute NoVNC Proxy 서비스

openstack-nova-novncproxy.service

/var/log/nova/nova-novncproxy.log

OpenStack Compute Scheduler 서비스

openstack-nova-scheduler.service

/var/log/nova/nova-scheduler.log

1.1.4. 대시보드(horizon) 로그 파일

Expand
서비스서비스 이름로그 경로

특정 사용자 상호 작용 로그

대시보드 인터페이스

/var/log/horizon/horizon.log

Apache HTTP 서버는 웹 브라우저 또는 명령줄 클라이언트(keystone, nova)를 사용하여 액세스할 수 있는 대시보드 웹 인터페이스에 몇 가지 추가 로그 파일을 사용합니다. 다음 로그 파일은 대시보드 사용 및 진단 오류를 추적하는 데 유용할 수 있습니다.

Expand
목적로그 경로

처리된 모든 HTTP 요청

/var/log/httpd/horizon_access.log

HTTP 오류

/var/log/httpd/horizon_error.log

admin-role API 요청

/var/log/httpd/keystone_wsgi_admin_access.log

admin-role API 오류

/var/log/httpd/keystone_wsgi_admin_error.log

member-role API 요청

/var/log/httpd/keystone_wsgi_main_access.log

member-role API 오류

/var/log/httpd/keystone_wsgi_main_error.log

참고

동일한 호스트에서 실행 중인 다른 웹 서비스에서 보고한 오류를 저장하는 /var/log/httpd/default_error.log 도 있습니다.

1.1.5. 데이터 처리(sahara) 로그 파일

Expand
서비스서비스 이름로그 경로

Sahara API Server

openstack-sahara-all.service
openstack-sahara-api.service

/var/log/sahara/sahara-all.log
/var/log/messages

Sahara Engine Server

openstack-sahara-engine.service

/var/log/messages

1.1.6. 서비스(trove) 로그 파일로서의 데이터베이스

Expand
서비스서비스 이름로그 경로

OpenStack Trove API Service

openstack-trove-api.service

/var/log/trove/trove-api.log

OpenStack Trove Conductor Service

openstack-trove-conductor.service

/var/log/trove/trove-conductor.log

OpenStack Trove guestagent Service

openstack-trove-guestagent.service

/var/log/trove/logfile.txt

OpenStack Trove taskmanager Service

openstack-trove-taskmanager.service

/var/log/trove/trove-taskmanager.log

1.1.7. ID 서비스(keystone) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack ID 서비스

openstack-keystone.service

/var/log/keystone/keystone.log

1.1.8. Image 서비스(glance) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack Image Service API 서버

openstack-glance-api.service

/var/log/glance/api.log

OpenStack 이미지 서비스 레지스트리 서버

openstack-glance-registry.service

/var/log/glance/registry.log

1.1.9. 네트워킹(neutron) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack Neutron DHCP 에이전트

neutron-dhcp-agent.service

/var/log/neutron/dhcp-agent.log

OpenStack Networking 계층 3 에이전트

neutron-l3-agent.service

/var/log/neutron/l3-agent.log

메타데이터 에이전트 서비스

neutron-metadata-agent.service

/var/log/neutron/metadata-agent.log

메타데이터 네임스페이스 프록시

해당 없음

/var/log/neutron/neutron-ns-metadata-proxy-UUID.log

Open vSwitch 에이전트

neutron-openvswitch-agent.service

/var/log/neutron/openvswitch-agent.log

OpenStack Networking 서비스

neutron-server.service

/var/log/neutron/server.log

1.1.10. Object Storage(swift) 로그 파일

OpenStack Object Storage는 시스템 로깅 기능에만 로그를 보냅니다.

참고

기본적으로 local0, local1, local2 syslog 기능을 사용하여 모든 Object Storage 로그 파일을 /var/log/swift/swift.log에 기록합니다.

오브젝트 스토리지의 로그 메시지는 REST API 서비스 및 백그라운드 데몬의 두 가지 범주로 분류됩니다. API 서비스 메시지에는 널리 사용되는 HTTP 서버와 유사한 방식으로 API 요청당 한 행이 포함됩니다. frontend(Proxy)와 백엔드(Account, 컨테이너, 오브젝트) 서비스 모두 이러한 메시지를 게시합니다. 데몬 메시지는 체계적이지 않으며 일반적으로 주기적인 작업을 수행하는 데몬에 대한 사람이 읽을 수 있는 정보를 포함합니다. 그러나 Object Storage의 어떤 부분에서 메시지를 생성하는지와 관계없이 소스 ID는 항상 행의 시작 부분에 있습니다.

프록시 메시지의 예:

Apr 20 15:20:34 rhev-a24c-01 proxy-server: 127.0.0.1 127.0.0.1 20/Apr/2015/19/20/34 GET /v1/AUTH_zaitcev%3Fformat%3Djson%26marker%3Dtestcont HTTP/1.0 200 - python-swiftclient-2.1.0 AUTH_tk737d6... - 2 - txc454fa8ea4844d909820a-0055355182 - 0.0162 - - 1429557634.806570053 1429557634.822791100
Copy to Clipboard Toggle word wrap

백그라운드 데몬의 임시 메시지의 예:

Apr 27 17:08:15 rhev-a24c-02 object-auditor: Object audit (ZBF). Since Mon Apr 27 21:08:15 2015: Locally: 1 passed, 0 quarantined, 0 errors files/sec: 4.34 , bytes/sec: 0.00, Total time: 0.23, Auditing time: 0.00, Rate: 0.00
Apr 27 17:08:16 rhev-a24c-02 object-auditor: Object audit (ZBF) "forever" mode completed: 0.56s. Total quarantined: 0, Total errors: 0, Total files/sec: 14.31, Total bytes/sec: 0.00, Auditing time: 0.02, Rate: 0.04
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Beginning replication run
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Replication run OVER
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Attempted to replicate 5 dbs in 0.12589 seconds (39.71876/s)
Apr 27 17:08:16 rhev-a24c-02 account-replicator: Removed 0 dbs
Apr 27 17:08:16 rhev-a24c-02 account-replicator: 10 successes, 0 failures
Copy to Clipboard Toggle word wrap

1.1.11. 오케스트레이션(heat) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack Heat API 서비스

openstack-heat-api.service

/var/log/heat/heat-api.log

OpenStack Heat Engine Service

openstack-heat-engine.service

/var/log/heat/heat-engine.log

오케스트레이션 서비스 이벤트

해당 없음

/var/log/heat/heat-manage.log

1.1.12. 공유 파일 시스템 서비스(manila) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack Manila API 서버

openstack-manila-api.service

/var/log/manila/api.log

OpenStack Manila Scheduler

openstack-manila-scheduler.service

/var/log/manila/scheduler.log

OpenStack Manila 공유 서비스

openstack-manila-share.service

/var/log/manila/share.log

참고

Manila Python 라이브러리의 일부 정보는 /var/log/manila/manila-manage.log 에도 로그인할 수 있습니다.

1.1.13. Telemetry(ceilometer) 로그 파일

Expand
서비스서비스 이름로그 경로

OpenStack ceilometer 알림 에이전트

openstack-ceilometer-notification.service

/var/log/ceilometer/agent-notification.log

OpenStack ceilometer 알람 평가

openstack-ceilometer-alarm-evaluator.service

/var/log/ceilometer/alarm-evaluator.log

OpenStack ceilometer 경보 알림

openstack-ceilometer-alarm-notifier.service

/var/log/ceilometer/alarm-notifier.log

OpenStack ceilometer API

openstack-ceilometer-api.service

/var/log/ceilometer/api.log

정보 메시지

MongoDB 통합

/var/log/ceilometer/ceilometer-dbsync.log

OpenStack ceilometer 중앙 에이전트

openstack-ceilometer-central.service

/var/log/ceilometer/central.log

OpenStack ceilometer 컬렉션

openstack-ceilometer-collector.service

/var/log/ceilometer/collector.log

OpenStack ceilometer 컴퓨팅 에이전트

openstack-ceilometer-compute.service

/var/log/ceilometer/compute.log

1.1.14. 서비스 지원을 위한 로그 파일

다음 서비스는 핵심 OpenStack 구성 요소에서 사용하며 자체 로그 디렉터리와 파일이 있습니다.

Expand
서비스서비스 이름로그 경로

메시지 브로커(RabbitMQ)

rabbitmq-server.service

/var/log/rabbitmq/rabbit@short_hostname.log
/var/log/rabbitmq/rabbit@short_hostname-sasl.log (Simple Authentication and Security Layer 관련 로그 메시지의 경우)

데이터베이스 서버(MariaDB)

mariadb.service

/var/log/mariadb/mariadb.log

문서 지향 데이터베이스(MongoDB)

mongod.service

/var/log/mongodb/mongodb.log

가상 네트워크 스위치(Open vSwitch)

openvswitch-nonetwork.service

/var/log/openvswitch/ovsdb-server.log
/var/log/openvswitch/ovs-vswitchd.log

1.2. 로깅 옵션 구성

각 구성 요소는 각 구성 파일에 별도의 로깅 구성을 유지 관리합니다. 예를 들어 Compute에서 이러한 옵션은 /etc/nova/nova.conf 에 설정됩니다.

  • 디버깅을 활성화하여 정보 로깅 수준을 높입니다. 이 옵션은 캡처된 정보의 양을 크게 늘리므로 일시적으로만 사용하거나 로그 순환 설정을 먼저 검토하는 것이 좋습니다.

    debug=True
    Copy to Clipboard Toggle word wrap
  • 자세한 로깅을 활성화합니다.

    verbose=True
    Copy to Clipboard Toggle word wrap
  • 로그 파일 경로를 변경합니다.

    log_dir=/var/log/nova
    Copy to Clipboard Toggle word wrap
  • 로그를 중앙 syslog 서버로 보냅니다.

    use_syslog=True
    syslog_log_facility=LOG_USER
    Copy to Clipboard Toggle word wrap
참고

옵션은 타임스탬프 구성 및 로그 형식에도 사용할 수 있습니다. 추가 로깅 옵션은 구성 요소의 구성 파일을 검토합니다.

1.3. 원격 로깅 설치 및 구성

1.3.1. 원격 로깅 소개

모든 시스템은 로그 파일을 생성하고 업데이트합니다. 해당 작업과 발생하는 모든 문제가 기록됩니다. 많은 시스템을 포함하는 분산 또는 클라우드 컴퓨팅 환경에서는 중앙 위치에서 이러한 로그 파일을 수집하면 디버깅을 단순화할 수 있습니다.

rsyslog 서비스는 중앙 집중식 로깅 서버를 실행하고 개별 시스템을 구성하여 로그 파일을 중앙 집중식 로깅 서버로 전송할 수 있는 기능을 제공합니다. 이를 원격 로깅 을 위한 시스템 구성이라고 합니다.

1.3.2. rsyslog 서버 설치

rsyslog 패키지는 중앙 집중식 로깅 서버로 사용하려는 시스템과 로그를 전송하도록 구성된 모든 시스템에 설치해야 합니다. 이렇게 하려면 root 사용자로 로그인하여 rsyslog 패키지를 설치합니다.

# yum install rsyslog
Copy to Clipboard Toggle word wrap

rsyslog 패키지가 설치되고 구성할 준비가 되었습니다.

1.3.3. 중앙 집중식 로깅 서버에서 rsyslog 구성

이 절차의 단계를 중앙 집중식 로깅 서버로 사용하려는 시스템에서 따라야 합니다. 이 절차의 모든 단계는 root 사용자로 로그인하는 동안 실행해야 합니다.

  1. rsyslog 트래픽을 허용하도록 SELinux를 구성합니다.

    # semanage port -a -t syslogd_port_t -p udp 514
    Copy to Clipboard Toggle word wrap
  2. 텍스트 편집기에서 /etc/rsyslog.conf 파일을 엽니다.

    1. 파일에 다음 행을 추가하고 위치 로그를 정의하는 방법은 다음과 같습니다.

      $template TmplMsg, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
      $template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
      
      authpriv.*   ?TmplAuth
      *.info,mail.none,authpriv.none,cron.none   ?TmplMsg
      Copy to Clipboard Toggle word wrap
    2. 파일에서 다음 줄의 시작 부분에서 주석 문자(#)를 제거합니다.

      #$ModLoad imudp
      #$UDPServerRun 514
      Copy to Clipboard Toggle word wrap
    3. /etc/rsyslog.conf 파일에 변경 사항을 저장합니다.

이제 환경의 다른 시스템에서 로그 파일을 수신하고 저장하도록 중앙 집중식 로그 서버가 구성되어 있습니다.

1.3.4. 개별 노드에서 rsyslog 구성

이 절차에 나열된 단계를 각 시스템에 적용하여 로그를 중앙 집중식 로그 서버로 전송하도록 구성합니다. 이 절차에 나열된 모든 단계는 root 사용자로 로그인하는 동안 수행해야 합니다.

  1. /etc/rsyslog.conf 를 편집하고 다음을 추가하여 중앙 집중식 로그 서버의 주소를 지정합니다.

    *.*   @YOURSERVERADDRESS:YOURSERVERPORT
    Copy to Clipboard Toggle word wrap

    SERVERADDRESS 를 중앙 집중식 로깅 서버의 주소로 바꿉니다. SERVERPORT 를 rsyslog 서비스가 수신 대기하는 포트로 바꿉니다. 예를 들면 다음과 같습니다.

    *.*   @192.168.20.254:514
    Copy to Clipboard Toggle word wrap

    또는 다음을 수행합니다.

    *.*   @@log-server.example.com:514
    Copy to Clipboard Toggle word wrap

    단일 @ 기호는 전송을 위한 UDP 프로토콜을 지정합니다. @@ 을 사용하여 전송을 위한 TCP 프로토콜을 지정합니다.

    중요

    이러한 예제 구성에서 와일드카드(*) 문자를 사용하면 모든 로그 기능 및 모든 로그 우선 순위의 로그 항목이 원격 rsyslog 서버로 전송되어야 함을 rsyslog에 나타냅니다.

    보다 정확한 로그 파일 필터링을 적용하는 방법에 대한 자세한 내용은 rsyslog 구성 파일 rsyslog.conf 의 매뉴얼 페이지를 참조하십시오. man rsyslog.conf 를 실행하여 도움말 페이지에 액세스합니다.

  2. rsyslog 서비스가 시작되거나 재시작되면 시스템은 모든 로그 메시지를 중앙 집중식 로깅 서버로 전송합니다.

1.3.5. rsyslog 서버 시작

rsyslog 서비스는 중앙 집중식 로깅 서버와 로그인하려는 시스템에서 실행 중이어야 합니다.

이 절차의 단계는 root 사용자로 로그인하는 동안 수행해야 합니다.

  1. rsyslog 서비스를 시작합니다.

    # service rsyslog start
    Copy to Clipboard Toggle word wrap
  2. 나중에 rsyslog 서비스가 자동으로 시작되는지 확인합니다.

    # chkconfig rsyslog on
    Copy to Clipboard Toggle word wrap

rsyslog 서비스가 시작되었습니다. 서비스는 로컬 구성에 따라 로그 메시지를 보내거나 받기 시작합니다.

2장. 원격 분석 서비스를 사용하여 모니터링

ceilometer 명령에 대한 도움말을 보려면 다음을 사용합니다.

# ceilometer help
Copy to Clipboard Toggle word wrap

하위 명령에 대한 도움말을 보려면 다음을 사용합니다.

# ceilometer help subcommand
Copy to Clipboard Toggle word wrap

2.1. 기존 경보 보기

구성된 Telemetry 알람을 나열하려면 다음을 사용합니다.

# ceilometer alarm-list
Copy to Clipboard Toggle word wrap

리소스의 구성된 미터를 나열하려면 다음을 사용합니다.

# ceilometer meter-list --query resource=UUID
+--------------------------+------------+-----------+-----------+----------+----------+
| Name                     | Type       | Unit      | Resource  | User ID  | Project  |
+--------------------------+------------+-----------+-----------+----------+----------+
| cpu                      | cumulative | ns        | 5056eda...| b0e500...| f23524...|
| cpu_util                 | gauge      | %         | 5056eda...| b0e500...| f23524...|
| disk.ephemeral.size      | gauge      | GB        | 5056eda...| b0e500...| f23524...|
| disk.read.bytes          | cumulative | B         | 5056eda...| b0e500...| f23524...|

| instance                 | gauge      | instance  | 5056eda...| b0e500...| f23524...|
| instance:m1.tiny         | gauge      | instance  | 5056eda...| b0e500...| f23524...|
| memory                   | gauge      | MB        | 5056eda...| b0e500...| f23524...|
| vcpus                    | gauge      | vcpu      | 5056eda...| b0e500...| f23524...|
+--------------------------+------------+-----------+---------------------------------+
Copy to Clipboard Toggle word wrap

여기서 UUID 는 기존 리소스의 리소스 ID입니다(예: 인스턴스, 이미지 또는 볼륨).

2.2. 알람 구성

임계값이 교차될 때 활성화되도록 알람을 구성하려면 다음 구문과 함께 ceilometer alarm-threshold-create 명령을 사용합니다.

# ceilometer alarm-threshold-create --name alarm-name [--description alarm-text] --meter-name meter-name --threshold value
Copy to Clipboard Toggle word wrap

개별 인스턴스의 평균 CPU 사용률이 3개의 연속 600(10분) 기간 동안 50%를 초과하면 활성화되는 알람을 구성하려면 다음을 사용합니다.

# ceilometer alarm-threshold-create --name cpu_high --description 'CPU usage high' --meter-name cpu_usage_high --threshold 50 --comparison-operator gt --statistic avg --period 600 --evaluation-periods 3 --alarm-action 'log://' --query resource_id=5056eda6-8a24-4f52-9cc4-c3ddb6fb4a69
Copy to Clipboard Toggle word wrap

이 예제에서 알림 작업은 로그 메시지입니다.

기존 임계값 알람을 편집하려면 ceilometer alarm-threshold-update 명령을 알람 ID와 함께 사용한 다음 하나 이상의 옵션을 업데이트합니다.

알람 임계값을 75%로 늘리려면 다음을 사용합니다.

# ceilometer alarm-threshold-update 35addb25-d488-4a74-a038-076aad3a3dc3 --threshold=75
Copy to Clipboard Toggle word wrap

2.3. 알람 비활성화 또는 삭제

알람을 비활성화하려면 다음을 사용합니다.

# ceilometer alarm-threshold-update --enabled False ALARM_ID
Copy to Clipboard Toggle word wrap

알람을 삭제하려면 다음을 사용합니다.

# ceilometer alarm-delete ALARM_ID
Copy to Clipboard Toggle word wrap

2.4. 샘플 보기

특정 측정 이름에 대한 모든 샘플을 나열하려면 다음을 사용합니다.

# ceilometer sample-list --meter METER_NAME
Copy to Clipboard Toggle word wrap

타임스탬프 범위 내에서 특정 리소스에 대한 샘플만 나열하려면 다음을 사용합니다.

# ceilometer sample-list --meter METER_NAME --query 'resource_id=INSTANCE_ID;timestamp>_START_TIME_;timestamp>=END_TIME'
Copy to Clipboard Toggle word wrap

여기서 START_TIMEEND_TIMEiso-dateThh:mm:ss 형식으로 되어 있습니다.

13:10:0014:25:00 사이에 수행된 샘플의 인스턴스를 쿼리하려면 다음을 사용합니다.

# ceilometer sample-list --meter cpu --query 'resource_id=5056eda6-8a24-4f52-9cc4-c3ddb6fb4a69;timestamp>2015-01-12T13:10:00;timestamp>=2015-01-12T14:25:00'
+-------------------+------+------------+---------------+------+---------------------+
| Resource ID       | Name | Type       | Volume        | Unit | Timestamp           |
+-------------------+------+------------+---------------+------+---------------------+
| 5056eda6-8a24-... | cpu  | cumulative | 3.5569e+11    | ns   | 2015-01-12T14:21:44 |
| 5056eda6-8a24-... | cpu  | cumulative | 3.0041e+11    | ns   | 2015-01-12T14:11:45 |
| 5056eda6-8a24-... | cpu  | cumulative | 2.4811e+11    | ns   | 2015-01-12T14:01:54 |
| 5056eda6-8a24-... | cpu  | cumulative | 1.3743e+11    | ns   | 2015-01-12T13:30:54 |
| 5056eda6-8a24-... | cpu  | cumulative | 84710000000.0 | ns   | 2015-01-12T13:20:54 |
| 5056eda6-8a24-... | cpu  | cumulative | 31170000000.0 | ns   | 2015-01-12T13:10:54 |
+-------------------+------+------------+---------------+------+---------------------+
Copy to Clipboard Toggle word wrap

2.5. 샘플 생성

샘플은 원격 분석 서비스로 전송하기 위해 생성할 수 있으며 이전에 정의한 미터와 일치하지 않아도 됩니다. 다음 구문을 사용합니다.

# ceilometer sample-create --resource_id RESOURCE_ID --meter-name METER_NAME --meter-type METER_TYPE --meter-unit METER_UNIT --sample-volume SAMPLE_VOLUME
Copy to Clipboard Toggle word wrap

여기서 METER_TYPE 는 다음 중 하나일 수 있습니다.

  • 누적 - 실행 중인 합계
  • Cryostat - 시간에 따른 변경 또는 차이점
  • 게이지 - 불연속 값

# ceilometer sample-create -r 5056eda6-8a24-4f52-9cc4-c3ddb6fb4a69 -m On_Time_Mins --meter-type cumulative --meter-unit mins --sample-volume 0
+-------------------+--------------------------------------------+
| Property          | Value                                      |
+-------------------+--------------------------------------------+
| message_id        | 521f138a-9a84-11e4-8058-525400ee874f       |
| name              | On_Time_Mins                               |
| project_id        | f2352499957d4760a00cebd26c910c0f           |
| resource_id       | 5056eda6-8a24-4f52-9cc4-c3ddb6fb4a69       |
| resource_metadata | {}                                         |
| source            | f2352499957d4760a00cebd26c910c0f:openstack |
| timestamp         | 2015-01-12T17:56:23.179729                 |
| type              | cumulative                                 |
| unit              | mins                                       |
| user_id           | b0e5000684a142bd89c4af54381d3722           |
| volume            | 0.0                                        |
+-------------------+--------------------------------------------+
Copy to Clipboard Toggle word wrap

여기서 volume (일반적으로 샘플링 작업 결과로 얻은 값은 이 경우 명령으로 생성되는 값입니다.

참고

샘플이 생성되는 시점이 원격 분석 서비스로 전송되므로 샘플이 업데이트되지 않습니다. 샘플은 기본적으로 메시지입니다. 따라서 메시지 ID가 있습니다. 새 샘플을 생성하려면 sample-create 명령을 반복하고 --sample-volume 값을 업데이트합니다.

2.6. 클라우드 사용량 통계 보기

OpenStack 관리자는 대시보드를 사용하여 클라우드 통계를 볼 수 있습니다.

  1. 대시보드에서 관리자 권한으로 관리자 > 시스템 > 리소스 사용을 선택합니다.
  2. 다음 중 하나를 클릭합니다.

    • 일별 보고서 - 프로젝트당 일일 사용량 보고서를 표시합니다. 프로젝트 수에 대한 날짜 범위 및 제한을 선택하고 Generate Report 를 클릭합니다. 일일 사용량 보고서가 표시됩니다.
    • stats - 프로젝트별로 그룹화된 지표 그래프 보기. 드롭다운 메뉴를 사용하여 값과 기간을 선택합니다. 표시된 그래프는 자동으로 업데이트됩니다.

ceilometer 명령줄 클라이언트를 사용하여 클라우드 사용량 정적을 볼 수도 있습니다.

cpu_util 측정기의 모든 통계를 보려면 다음을 사용합니다.

# ceilometer statistics --meter cpu_util
+--------+----------------+---------------+-----+-----+------+-------+------+--------
| Period | Period Start   |Period End     | Max | Min | Avg  | Sum   | Count| Dura...
+--------+----------------+---------------+-----+-----+------+-------+------+--------
| 0      | 2015-01-09T14: |2015-01-09T14:2| 9.44| 0.0 | 6.75 | 337.94| 50   | 2792...
+--------+----------------+---------------+-----+-----+------+-------+------+--------
Copy to Clipboard Toggle word wrap

통계는 --query 옵션을 통해 특정 리소스로 제한되고 타임스탬프 옵션을 통해 특정 범위로 제한할 수 있습니다.

# ceilometer statistics --meter cpu_util --query 'resource_id=5056eda6-8a24-4f52-9cc4-c3ddb6fb4a69;timestamp>2015-01-12T13:00:00;timestamp<=2015-01-13T14:00:00'
+--------+----------------+---------------+-----+-----+------+-------+------+--------
| Period | Period Start   |Period End     | Max | Min | Avg  | Sum   | Count| Dura...
+--------+----------------+---------------+-----+-----+------+-------+------+--------
| 0      | 2015-01-12T20:1|2015-01-12T20:1| 9.44| 5.95| 8.90 | 347.10| 39   | 2465...
+--------+----------------+---------------+-----+-----+------+-------+------+--------
Copy to Clipboard Toggle word wrap

2.7. Time-Series-Database-as-a-Service 사용

time-Series-Database-as-a-Service(gnocchi)는 다중 테넌트, 지표 및 리소스 데이터베이스입니다. Operator 및 사용자에게 메트릭 및 리소스 정보에 대한 액세스를 제공하는 동시에 매우 큰 규모로 메트릭을 저장하도록 설계되었습니다.

현재 TSDaaS는 인증에 ID 서비스를 사용하고 Ceph, Object Storage를 사용하여 데이터를 저장합니다.

TDSaaS는 statsd 프로토콜과 호환되는 statsd deamon을 제공하며, gnocchi- statsd 라는 네트워크를 통해 전송되는 메트릭을 수신할 수 있습니다. TDSaaS에서 statsd 지원을 활성화하려면 구성 파일에서 [statsd] 옵션을 구성해야 합니다. resource ID 매개변수는 모든 지표가 연결된 기본 일반 리소스, 리소스 및 메트릭과 연결된 사용자 및 프로젝트 ID, 지표를 생성하는 데 사용되는 아카이브 정책 이름으로 사용됩니다.

지표가 gnocchi-statsd 으로 전송되고 구성된 리소스 ID에 제공된 이름으로 연결되므로 모든 메트릭이 동적으로 생성됩니다. TSDaaS 설치 및 구성에 대한 자세한 내용은 설치 참조 가이드의 Time-Series-Database-as-a-Service 설치 장을 참조하십시오. https://access.redhat.com/documentation/en/red-hat-enterprise-linux-openstack-platform/

참고

Time-Series-Database-as-a-Service(gnocchi)는 Red Hat OpenStack Platform 8의 기술 프리뷰로 표시됩니다.

기술 프리뷰로 표시된 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/을 참조하십시오.

2.7.1. Time-Series-Database-as-a-Service 실행

HTTP 서버 및 메트릭 데몬을 실행하여 Time-Series-Database-as-a-Service(TSDaaS)를 실행합니다.

# gnocchi-api
# gnocchi-metricd
Copy to Clipboard Toggle word wrap

2.7.2. WSGI 애플리케이션으로 실행

mod_wsgi 또는 다른 WSGI 애플리케이션과 같은 WSGI 서비스를 통해 TSDaaS를 실행할 수 있습니다. TSDaaS와 함께 제공되는 gnocchi/rest/app.wsgi 파일을 사용하면 Gnocchi를 WSGI 애플리케이션으로 활성화할 수 있습니다.

TSDaaS API 계층은 WSGI를 사용하여 실행됩니다. 즉, Apache httpdmod_wsgi 또는 uwsgi 와 같은 다른 HTTP 데몬을 사용하여 실행할 수 있습니다. CPU 수(일반적으로 1.5 × CPU 수)에 따라 프로세스 및 스레드 수를 구성해야 합니다. 하나의 서버가 충분하지 않으면 여러 새 API 서버를 생성하여 다른 시스템에서도 Gnocchi out를 확장할 수 있습니다.

2.7.3. 메트릭된 작업자

기본적으로 gnocchi-metricd 데몬은 컴퓨팅 지표 집계 시 CPU 사용률을 극대화하기 위해 모든 CPU 성능을 확장합니다. gnocchi status 명령을 사용하여 HTTP API를 쿼리하고 지표 처리의 클러스터 상태를 가져올 수 있습니다. 이 명령은 gnocchi-metricd 의 처리 백로그라고 하는 프로세스 지표 수를 표시합니다. 이 백로그가 지속적으로 증가하지 않는 한, 이는 gnocchi-metricd 가 전송되는 메트릭의 양에 대처할 수 있음을 의미합니다. 처리할 측정값 수가 지속적으로 증가하는 경우 gnocchi-metricd 데몬의 수를 늘릴 수 있습니다. 여러 서버에서 메트릭된 데몬 수를 실행할 수 있습니다.

2.7.4. Time-Series-Database-as-a-Service 모니터링

HTTP API의 /v1/status 끝점은 쉽게 모니터링할 측정값 수(정상 백로그)와 같은 다양한 정보를 반환합니다. HTTP 서버와 gnocchi-metricd 데몬이 실행 중이고 로그에 어떤 알람도 쓰지 않는지 확인하는 것은 전체 시스템의 정상 상태를 나타내는 신호입니다.

2.7.5. Time-Series-Database-as-a-Service 백업 및 복원

untunate 이벤트에서 복구하려면 인덱스와 스토리지를 모두 백업해야 합니다. 즉, 데이터베이스 덤프(PostgreSQL 또는 MySQL)를 만들고 데이터 스토리지의 스냅샷 또는 복사본(Ceph, Swift 또는 파일 시스템)을 수행합니다. 복원 절차: 인덱스 및 스토리지 백업을 복원하고 필요한 경우 TSDaaS를 다시 설치한 후 다시 시작합니다.

3장. 문제 해결

이 장에서는 Red Hat OpenStack Platform 배포 문제를 해결하기 위한 로깅 및 지원 정보를 설명합니다.

3.1. 지원

클라이언트 명령이 실패하거나 다른 문제로 실행되는 경우, Red Hat 기술 지원팀에 어떤 일이 발생했는지, 전체 콘솔 출력, 콘솔 출력에서 참조되는 모든 로그 파일, 문제(또는) 노드의 sosreport 에 문의하십시오. 예를 들어, 계산 수준에서 문제가 발생하면 Nova 노드에서 sosreport 를 실행하거나 네트워킹 문제인 경우 Neutron 노드에서 유틸리티를 실행합니다. 일반적인 배포 문제의 경우 클라우드 컨트롤러에서 sosreport 를 실행하는 것이 가장 좋습니다.

sosreport 명령(sos 패키지)에 대한 자세한 내용은 What is a sosreport and how to create one in Red Hat Enterprise Linux 4.6 이상에서 참조하십시오.

모든 팁에 대해 /var/log/messages 파일도 확인합니다.

3.2. Identity Client(keystone) 연결 문제 해결

ID 클라이언트(keystone)가 ID 서비스에 연결할 수 없는 경우 오류를 반환합니다.

Unable to communicate with identity service: [Errno 113] No route to host. (HTTP 400)
Copy to Clipboard Toggle word wrap

이러한 일반적인 원인에 대한 문제를 디버깅하려면 다음을 수행합니다.

ID 서비스가 다운됨

Identity 서비스를 호스팅하는 시스템에서 서비스 상태를 확인합니다.

# openstack-status | grep keystone
openstack-keystone:                     active
Copy to Clipboard Toggle word wrap

서비스가 실행되지 않으면 root 사용자로 로그인하여 시작합니다.

# service openstack-keystone start
Copy to Clipboard Toggle word wrap
방화벽이 올바르게 구성되지 않았습니다.
포트 500035357 에서 TCP 트래픽을 허용하도록 방화벽을 구성하지 못할 수 있습니다. 이 문제를 해결하는 방법에 대한 지침은 설치 참조 에서 ID 서비스 트래픽을 허용하도록 방화벽 구성 을 참조하십시오.
Service Endpoints not defined correctly

Identity 서비스를 호스팅하는 시스템에서 끝점이 올바르게 정의되었는지 확인합니다.

  1. 관리 토큰을 가져옵니다.

    # grep admin_token /etc/keystone/keystone.conf
    admin_token = 0292d404a88c4f269383ff28a3839ab4
    Copy to Clipboard Toggle word wrap
  2. ID 서비스에 대한 올바른 관리 끝점을 확인합니다.

    http://IP:35357/VERSION
    Copy to Clipboard Toggle word wrap

    IP 를 ID 서비스를 호스팅하는 시스템의 IP 주소 또는 호스트 이름으로 바꿉니다. VERSION 을 사용 중인 API 버전(v2.0 또는 v3)으로 바꿉니다.

  3. 사전 정의된 ID 서비스 관련 환경 변수를 설정 해제합니다.

    # unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL
    Copy to Clipboard Toggle word wrap
  4. 관리 토큰 및 엔드포인트를 사용하여 ID 서비스로 인증합니다. Identity 서비스 엔드 포인트가 올바른지 확인합니다.

    # keystone --os-token=TOKEN \
                --os-endpoint=ENDPOINT \
                endpoint-list
    Copy to Clipboard Toggle word wrap

    나열된 publicurl,internalurladminurl 이 ID 서비스에 적합한지 확인합니다. 특히 각 엔드포인트에 나열된 IP 주소와 포트 번호가 올바르며 네트워크를 통해 연결할 수 있는지 확인합니다.

    이러한 값이 올바르지 않으면 올바른 엔드포인트를 추가하는 방법에 대한 자세한 내용은 설치 참조에서 ID 서비스 끝점 만들기 를 참조하십시오. 올바른 엔드포인트가 추가되면 keystone 명령의 endpoint-delete 작업을 사용하여 잘못된 엔드포인트를 제거합니다.

    # keystone --os-token=TOKEN \
                --os-endpoint=ENDPOINT \
                endpoint-delete ID
    Copy to Clipboard Toggle word wrap

    TOKENENDPOINT 를 이전에 식별한 값으로 바꿉니다. IDendpoint-list 작업에 나열된 대로 제거하려면 ID를 끝점의 ID로 바꿉니다.

3.3. OpenStack Networking 문제 해결

이 섹션에서는 OpenStack Networking 서비스 문제를 해결하기 위해 사용할 수 있는 다양한 명령과 절차를 설명합니다.

네트워킹 장치 디버깅
  • ip a 명령을 사용하여 모든 물리적 및 가상 장치를 표시합니다.
  • ovs-vsctl show 명령을 사용하여 가상 스위치의 인터페이스와 브리지를 표시합니다.
  • ovs-dpctl show 명령을 사용하여 스위치의 datapaths를 표시합니다.
네트워킹 패킷 추적
  • tcpdump 명령을 사용하여 패킷이 통과되지 않는 위치를 확인합니다.

    # tcpdump -n -i INTERFACE -e -w FILENAME
    Copy to Clipboard Toggle word wrap

    INTERFACE 를 네트워크 인터페이스 이름으로 교체하여 패킷이 통과되지 않는 위치를 확인합니다. 인터페이스 이름은 브리지의 이름 또는 호스트 이더넷 장치일 수 있습니다.

    -e 플래그를 사용하면 링크 수준 헤더가 덤프됩니다( vlan 태그가 표시됩니다).

    -w 플래그는 선택 사항입니다. 출력을 파일에 작성하려는 경우에만 사용할 수 있습니다. 그렇지 않은 경우 출력은 표준 출력(stdout)에 작성됩니다.

    tcpdump 에 대한 자세한 내용은 man tcpdump 를 실행하여 수동 페이지를 참조하십시오.

네트워크 네임스페이스 디버깅
  • ip netns list 명령을 사용하여 알려진 모든 네트워크 네임스페이스를 나열합니다.
  • ip netns exec 명령을 사용하여 특정 네임스페이스 내에 라우팅 테이블을 표시합니다.

    # ip netns exec NAMESPACE_ID bash
    # route -n
    Copy to Clipboard Toggle word wrap

    bash 쉘에서 ip netns exec 명령을 시작하여 ip netns exec 명령 없이 후속 명령을 호출할 수 있습니다.

3.4. 네트워크 및 경로 탭 문제 해결 대시보드의 문제 표시

네트워크라우터 탭은 환경이 OpenStack Networking을 사용하도록 구성된 경우에만 대시보드에 표시됩니다. 특히 기본적으로 Cryostat 유틸리티는 현재 Nova Networking을 배포하고 이러한 방식으로 배포된 환경에서 탭이 표시되지 않습니다.

OpenStack Networking이 환경에 배포되었지만 탭이 계속 나타나지 않으면 서비스 엔드포인트가 ID 서비스에서 올바르게 정의되고 방화벽이 엔드포인트에 대한 액세스를 허용하고 서비스가 실행 중인지 확인합니다.

3.5. 대시보드에서 인스턴스 시작 오류 문제 해결

작업이 실패하면 대시보드를 사용하여 인스턴스를 시작할 때 일반적인 ERROR 메시지가 표시됩니다. 실패의 실제 원인을 확인하려면 명령줄 툴을 사용해야 합니다.

nova list 명령을 사용하여 인스턴스의 고유 식별자를 찾습니다. 그런 다음 이 식별자를 nova show 명령에 대한 인수로 사용합니다. 반환된 항목 중 하나가 오류 상태입니다. 가장 일반적인 값은 NoValidHost 입니다.

이 오류는 인스턴스를 호스팅할 수 있는 충분한 리소스가 있는 유효한 호스트를 찾을 수 없음을 나타냅니다. 이 문제를 해결하려면 더 작은 인스턴스 크기를 선택하거나 환경에 대한 오버 커밋 허용 범위를 늘리는 것이 좋습니다.

참고

지정된 인스턴스를 호스팅하려면 계산 노드에 사용 가능한 CPU 및 RAM 리소스뿐만 아니라 인스턴스와 연결된 임시 스토리지에 충분한 디스크 공간이 있어야 합니다.

3.6. Keystone v3 대시보드 인증 문제 해결

django_openstack_auth는 OpenStack ID 서비스 API에 대해 사용자를 인증하기 위해 Django의 contrib.auth 프레임워크와 함께 작동하는 플러그형 Django 인증 백엔드입니다. Django_openstack_auth는 토큰 오브젝트를 사용하여 사용자 및 Keystone 관련 정보를 캡슐화합니다. 대시보드는 토큰 오브젝트를 사용하여 Django 사용자 오브젝트를 다시 빌드합니다.

현재 토큰 오브젝트는 다음을 저장합니다.

  • Keystone 토큰
  • 사용자 정보
  • 범위
  • 역할
  • 서비스 카탈로그

대시보드는 사용자 세션 데이터를 처리하기 위해 Django의 세션 프레임워크를 사용합니다. 다음은 사용할 수 있는 다양한 세션 백엔드 목록으로, local_settings.py 파일의 SESSION_ENGINE 설정을 통해 제어됩니다.

  • 로컬 메모리 캐시
  • Memcached
  • 데이터베이스
  • 캐시된 데이터베이스
  • 쿠키

특히 서명된 쿠키 세션 백엔드가 사용되고, 한 번에 여러 또는 모든 서비스를 동시에 활성화하면 쿠키 크기가 제한에 도달하고 대시보드가 로그인하지 못할 수 있습니다. 쿠키 크기가 증가한 이유 중 하나는 서비스 카탈로그입니다. 더 많은 서비스가 등록되면 서비스 카탈로그의 크기가 커집니다.

이러한 시나리오에서는 세션 토큰 관리를 개선하기 위해 특히 Keystone v3 인증을 사용할 때 대시보드에 로그인하기 위한 다음 구성 설정을 포함합니다.

  1. /usr/share/openstack-dashboard/openstack_dashboard/settings.py에서 다음 구성을 추가합니다.

    DATABASES =
    {
      'default':
      {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'horizondb',
        'USER': 'User Name',
        'PASSWORD': 'Password',
        'HOST': 'localhost',
       }
    }
    Copy to Clipboard Toggle word wrap
  2. 동일한 파일에서 SESSION_ENGINE을 다음과 같이 변경합니다.

    SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
    Copy to Clipboard Toggle word wrap
  3. mysql 명령을 사용하여 데이터베이스 서비스에 연결하고 USER를 연결할 사용자 이름으로 교체합니다. USER는 root 사용자여야 합니다(또는 적어도 올바른 권한이 있는 사용자인 경우: db 생성).

    # mysql -u USER -p
    Copy to Clipboard Toggle word wrap
  4. Horizon 데이터베이스를 만듭니다.

    mysql > create database horizondb;
    Copy to Clipboard Toggle word wrap
  5. mysql 클라이언트를 종료합니다.

    mysql > exit
    Copy to Clipboard Toggle word wrap
  6. openstack_dashboard 디렉터리로 변경하고 다음을 사용하여 데이터베이스를 동기화합니다.

    # cd /usr/share/openstack-dashboard/openstack_dashboard
    $ ./manage.py syncdb
    Copy to Clipboard Toggle word wrap

    슈퍼유저를 생성할 필요가 없으므로 질문에 'n'으로 응답합니다.

  7. Apache http 서버를 다시 시작합니다. Red Hat Enterprise Linux의 경우:

    #service httpd restart
    Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat