← Back to list

Vmware vRealize (Aria)Operations Python API

VROps

Mert Kışlakçı in Turk Telekom Bulut Teknolojileri · 2024-07-23 07:17 · 0 claps · 4.0 min read
#vrops #python #api #vmware-aria #automation
Open on Medium ↗
Wiki topics: 🎮 · Gaming

Vmware vRealize (Aria)Operations Python API

VROPS

VROPS

VROps

VMware tarafından geliştirilen VMware vRealize (Aria) Operations, IT altyapısını izleme, yönetme ve optimize etme yetenekleri sunan bir operasyon yönetimi ve kapasite planlama platformudur. Bu yazılım, büyük ve karmaşık sanal ve bulut altyapılarındaki performansı ve verimliliği izlemek ve iyileştirmek için tasarlanmıştır.

vRealize Operations’ın Temel Özellikleri

  1. Performans İzleme ve Analiz: Sanal makineler, depolama, ağ ve uygulamaların performansını izler ve analiz eder. Bu sayede performans sorunları hızla tespit edilerek çözüm önerilerinde bulunulur.
  2. Kapasite Planlama: Gelecekteki altyapı ihtiyaçlarını tahmin etmek için kapasite analizi yapar. Bu, kaynakların etkili bir şekilde kullanılmasını sağlar ve gereksiz donanım maliyetlerini azaltır.
  3. Otomasyon ve Yönetim Entegrasyonu: vRealize Operations, diğer VMware ürünleri ve üçüncü taraf sistemlerle entegre olabilir. Otomasyon yetenekleri, iş süreçlerini optimize etmeye ve sorunları otomatik olarak çözmeye yardımcı olur.
  4. Anlık Görünürlük: Sanal ve fiziksel altyapıdaki varlıkların anlık durumu hakkında detaylı bilgiler sağlar. Bu sayede hızlı kararlar alınabilir.
  5. Anomali Algılama ve Alarm Yönetimi: Sistem normal davranışları öğrenir ve sapmaları tespit ederek anında uyarılar ve alarm bildirimleri sağlar.
  6. Raporlama ve Veri Görselleştirme: Kapsamlı raporlama ve görselleştirme araçları, altyapının durumu, performansı ve kullanımı hakkında anlamlı bilgiler sunar.

vRealize Operations (vROps) Raporlarını Python API ile İndirme

vROps raporlarını Python API kullanarak indirmek, sistem yöneticileri ve operasyon ekipleri için verimliliği artırmak açısından önemlidir. Bu süreci başarılı bir şekilde gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz.

Gerekli Kütüphanelerin Yüklenmesi

Öncelikle, vROps Python API’larını kullanmak için gerekli kütüphaneleri yüklemelisiniz. Bu adım, Python ortamınızı vROps ile iletişim kurmaya hazır hale getirmek için gereklidir.

Raporların Listelenmesi

vROps üzerinde bulunan raporları listelemek için API’yi kullanabilirsiniz. Bu adım, mevcut raporları görüntülemenize ve istediğiniz raporu seçmenize olanak tanır.

Raporların İndirilmesi

Raporları indirmek için, seçtiğiniz raporun benzersiz bir kimliğini veya adını belirlemeniz gerekir. Ardından, bu raporu Python kodunuzda belirttiğiniz dosya formatında (CSV, PDF gibi) indirebilirsiniz. İndirme işlemlerini otomatikleştirmek istiyorsanız, zamanlanmış görevler veya başka bir otomasyon mekanizması kullanabilirsiniz.

Sorunların Tespiti ve Çözümü

Bu süreçte karşılaşabileceğiniz olası sorunları öngörmek ve bunlara çözümler sunmak önemlidir. Hata ayıklama yetenekleri, sorunları hızlı bir şekilde tespit etmenize ve çözmenize yardımcı olacaktır.

API ile Rapor Alma ve İndirme Adımları

  1. vROps Üzerinden Rapor Verilerinin Elde Edilmesi
  • VROPS ekranınızda bulunan Report > Manage alanından API ile çıktısını almak istediğiniz bir raporun üzerine sağ tıklayın ve açılan menüden “İncele” seçeneğine tıklayın.

  • İnceleme kısmından Network sekmesine gidin. Bu sayfa açıkken raporu oluşturun ve en altta çıkan router kısmına tıklayın ve buradaki bilgileri aşağıda bulunan report_creation_data.jsondosyasındaki yerlere girin. Bu bilgileri raporu run ettikten sonra en aşağıdaki router bilgisinden alın.

  • Raporu oluşturmak için rapor adının yanındaki üç noktaya tıkladıktan sonra “Run” seçeneğine basın.

  • Network ekranında bulunan router isteğine ait bilgileri aşağıdaki dosyada gerekli yerlere doldurup bu dosyayı report_creation_data.json adıyla kodunuzla aynı klasöre koyun.
{
    "reportId": "",
    "reportDefinitionId": "",
    "reportName": "",
    "resourceId": "",
    "resourceName": "",
    "creationTime": "",
    "formattedCreationTime": "",
    "completionState": "",
    "owner": "",
    "subjectTypes": [
        {
            "object": {
                "minType": "",
                "subject": {
                    "adapterKind": "",
                    "resourceKind": ""
                },
                "type": "",
                "filter": null
            },
            "localizedValue": ""
        }
    ],
    "hasCsvData": true,
    "hasPdfData": true,
    "links": [
        {
            "imgUrl": "",
            "downloadUrl": "",
            "tooltip": "Download as PDF"
        },
        {
            "imgUrl": "",
            "downloadUrl": "",
            "tooltip": "Download as CSV"
        }
    ],
    "creationDateFormatted": ""
}

2. Python Kodu ile Rapor Oluşturma ve İndirme

import ssl
import time
import json
import urllib3
import requests
from datetime import datetime

# SSL sertifika doğrulamasını devre dışı bırak
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class VRopsClient:
    headers = {"Accept": "application/json", "Content-Type": "application/json"}

    def __init__(self, url_base, username=None, password=None):
        self.url_base = url_base + "/suite-api/api"
        credentials = json.dumps({"username": username, "password": password})
        result = requests.post(url=self.url_base + "/auth/token/acquire",
                               data=credentials,
                               verify=False, headers=self.headers)
        result.raise_for_status()
        json_data = json.loads(result.content)
        self.token = json_data["token"]
        self.headers["Authorization"] = "vRealizeOpsToken " + self.token

    def get(self, url):
        return requests.get(url=self.url_base + url,
                            headers=self.headers,
                            verify=False)

    def post(self, url, data):
        return requests.post(url=self.url_base + url,
                             headers=self.headers,
                             data=json.dumps(data),
                             verify=False)

    def delete(self, url):
        return requests.delete(url=self.url_base + url,
                               headers=self.headers,
                               verify=False)

class VRopsService:
    def __init__(self, url, user, password, output_file):
        self.vrops = VRopsClient(url, user, password)
        self.output_file = output_file

    # VROPS üzerinden rapor oluştur
    def report_create(self):
        # report_creation_data.json dosyasını oluşturmanız gerekmektedir.
        file_path = "report_creation_data.json"
        with open(file_path, "r") as json_file:
            report_creation_data = json.load(json_file)

        try:
            create_response = self.vrops.post('/reports', data=report_creation_data)
            create_response.raise_for_status()
            print("Report created successfully.")
            self.created_report_id = create_response.json()["id"]
        except requests.exceptions.RequestException as e:
            print(f"Failed to create report. {e}")

    def wait_for_report_ready(self, timeout=600, interval=10):
        start_time = datetime.now()
        while (datetime.now() - start_time).seconds < timeout:
            try:
                if self.created_report_id:
                    status_response = self.vrops.get(f'/reports/{self.created_report_id}')
                    status_response.raise_for_status()
                    status_data = status_response.json()
                    print(f"Report status data: {status_data}")

                    # Kontrol etmek için status_data içeriğini yazdırın
                    if 'status' in status_data:
                        if status_data['status'] == 'COMPLETED':
                            print("Report is ready for download.")
                            return True
                        elif status_data['status'] == 'FAILED':
                            print("Report creation failed.")
                            return False
                    else:
                        print("Unexpected status data structure: missing 'status' key.")
                else:
                    print("Report ID is missing.")
            except requests.exceptions.RequestException as e:
                print(f"Error checking report status: {e}")
            time.sleep(interval)
        print("Report creation timed out.")
        return False

    # Oluşturulan raporu VROPS üzerinden indir
    def report_download(self):
        try:
            if self.created_report_id:
                download_response = self.vrops.get(f'/reports/{self.created_report_id}/download?format=csv')
                download_response.raise_for_status()
                print("Report downloaded successfully.")
                with open(self.output_file, "wb") as f:
                    f.write(download_response.content)
        except requests.exceptions.RequestException as e:
            print(f"Failed to download report. {e}")

    # Rapor oluşturulduktan sonra VROPS ekranından sil
    def report_delete(self):
        try:
            if self.created_report_id:
                delete_response = self.vrops.delete(f'/reports/{self.created_report_id}')
                delete_response.raise_for_status()
                print("Report deleted successfully.")
        except requests.exceptions.RequestException as e:
            print(f"Failed to delete report. {e}")

# Giriş bilgilerinizi bu alana giriniz.
if __name__ == '__main__':
    url = "https://"
    user = ""
    password = ""
    output_file = "output_file.csv"

    vrops_service = VRopsService(url, user, password, output_file)
    vrops_service.report_create()
    if vrops_service.wait_for_report_ready():
        vrops_service.report_download()
    vrops_service.report_delete()

Bu rehber, vROps raporlarını Python API kullanarak otomatik indirme yoluyla ekiplere kolaylık sağlamayı amaçlamaktadır.


메타데이터
post_id
2ca3cb03c869
slug
vmware-vrealize-aria-operations-python-api-2ca3cb03c869
url
https://medium.com/t%C3%BCrk-telekom-bulut-teknolojileri/vmware-vrealize-aria-operations-python-api-2ca3cb03c869
canonical_url
https://medium.com/t%C3%BCrk-telekom-bulut-teknolojileri/vmware-vrealize-aria-operations-python-api-2ca3cb03c869
author_url
https://medium.com/@mertkslkc
status
ok
fetched_at
2026-07-23 08:12:15