NetWorker: REST API Sorun Giderme ve Önceliklendirme Rehberi
Summary: Bu KB, RETAPI ile ilgili sorunlar için temel sorun gidermeye genel bir bakış sağlar.
Instructions
YouTube'da izleyin
Additional Information
Başlarken
Temsili Durum Aktarımı (REST) Uygulama Programlama Arayüzü (API), NetWorker veri koruma hizmetine programlı erişim sağlar. NetWorker kullanıcıları, REST API'yi kullanarak NetWorker işlemlerini otomatikleştirmek için istemci uygulamaları oluşturabilir. NetWorker REST API, NetWorker kimlik doğrulama hizmetleriyle aynı Apache Tomcat kapsayıcısına NetWorker sunucu kurulumunun bir parçası olarak kurulur. Kimlik doğrulaması, NetWorker Management Console için kullanılanla aynı kimlik bilgileri kullanılarak yapılır.
REST API, Tekdüzen Kaynak Tanımlayıcısı (URI) adresleriyle tanımlanan kaynaklarla etkileşime olanak tanır. Tekdüzen Kaynak Tanımlayıcısı (URI) ile durum bilgisi olmayan bir şekilde etkileşim kurmak için HTTP fiillerini (HEAD, GET, PUT, POST, DELETE) kullanır. Sunucu, istemci durumu içermez ve her ileti kendini açıklayıcıdır.
Bu belge, kullanıcı tarafından yazılan REST API çağrılarını kullanarak NetWorker kaynaklarıyla etkileşimi ele alır. Arka uç NetWorker işlemleri tarafından kullanılan REST API çağrıları ile karıştırılmamalıdır.
NetWorker a bağlanma:
NetWorker'a bağlanmak için komutları çalıştırmak üzere kullanılabilecek birkaç farklı REST API istemci teknolojisi vardır; Dahil curl komutlar (Linux), PowerShell curl.exe (Windows) ve REST API istemci tarayıcı uzantıları.
Bağlantı için gereken üç başlık vardır:
- Content-Type:
application/json - Kabul:
application/json - Yetkilendirme: Base 64 ile kodlanmış kullanıcı adı ve parolaya sahip Basic
Birden fazla NetWorker veri bölgesinin tek bir NetWorker AUTHC sunucusu üzerinden doğrulandığı ortamlarda ek bir başlık gerekir:
X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
NetWorker REST API, aşağıdaki temel URI'de gösterilir:
https://[nw-server-hostname]:9090/nwrestapi/v3
API'lerin farklı sürümleri vardır. REST API'nin ilk kez uygulanmasından bu yana geliştirmeler yapılmıştır. Bu uç noktalarda yapılan değişiklikler şurada ayrıntılı olarak açıklanmıştır: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md
Tam json şeması şu adreste bulunabilir:
https://[nw-server-hostname]:9090/nwrestapi/v3/schemas/swagger.json
| Başarı Kodu | Şunlar için geçerlidir: HTTP yöntemi | Yanıt Gövdesi İçeriği | Açıklama |
| 200 | AL | Kaynak Gösterimi | Tamam. Bu HTTP durumuna neden olan işlemler, yükte kaynak gösterimini taşır. |
| 201 | YAYINLA | Boş Yanıt | Oluşturulan. Bu durum, yeni bir kaynağın veya amaçlanan bir işin oluşturulduğunu ve ilişkili URL'sine yanıttaki konum başlığından erişilebildiğini gösterir. |
| 202 | YAYINLA | Yanıttaki Ayrıntılar | Kabul. Bu, API isteğinin kabul edildiğini gösterir. Yük, izleme kaynağı örneğinin URL'sine yanıttaki konum başlığından erişilebildiğini belirtir. |
| 204 | PUT veya DELETE | Boş Yanıt | İçerik Yok. Durum, gerçekleştirilen işlemin başarılı olduğunu gösterir. Ancak, sağlanacak ek ayrıntı yoktur. |
| Hata Kodu | Açıklama |
| 400 | Hatalı İstek |
| 401 | Geçersiz Kimlik Bilgileri |
| 403 | Yetersiz Ayrıcalıklar |
| 404 | Kaynak Bulunamadı |
| 405 | Yönteme İzin Verilmez |
| 406 | Geçersiz Yerel Ayar Belirtildi. |
| 500 | Dahili Sunucu Hatası |
REST API İşlevleri
| HTTP Yöntemi | İşlem | Açıklama |
| AL | Read | Kaynak gösterimini alır. |
| YAYINLA | Oluşturma | Yeni bir kaynak oluşturur. |
| KOYMAK | Güncelleştirme | Var olan bir kaynağı güncelleştirir. |
| DELETE | Çıkarma | Mevcut bir kaynağı siler. |
Bazı örnekler:
GET:
Tüm istemcileri listele.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
Yalnızca bir istemci, yalnızca üç alan (hostname, saveSets ve protectionGroups) gösterir
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=hostname,saveSets,protectionGroups&q=hostname:nwserver121
Bir istemcinin içinde bulunduğu Protection Groups öğesini listeleyin.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=protectionGroups&q=hostname:nwserver121
Mevcut uyarıları gösterir.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/alerts
Son başarısız işleri gösterir.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/jobs?q=completionStatus:"Failed"&fl=clientHostname,startTime,name,message
İş akışlarını tek bir ilkede listeleyin (bu örnekte WinFS olarak adlandırılmıştır).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/WinFS/workflows
Yalnızca bir kaydetme kümesi örneğinin özelliklerini listeleyin (istemci ana bilgisayar adı ve kaydetme kümesi ile tanımlanan şekilde).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?q=hostname:vm-lego-231 and saveSets:"/etc"
YAYINLA:
Bir iş akışı eylemi başlatın.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/Angela/workflows/WinFS/op/backup
JSON Body:
{
}
Yeni bir istemci örneği oluşturun (listelenen dört özellik dışındaki tüm özellikler için varsayılan değerlerle).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
JSON Body
{
"hostname": "vm-lego-231",
"backupType": "Filesystem",
"saveSets": [ "/etc" ],
"protectionGroups" : [ "LinuxFS" ]
Komut Satırı Örnekleri:
Linux:
Şu özelliklere sahip sistemler için: python kuruluysa:
curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | python -m json.tool
jq kuruluysa:
curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | jq
[root@nsr ~]# curl -k -u Administrator https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01 | jq
Enter host password for user 'Administrator':
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2820 0 2820 0 0 72307 0 --:--:-- --:--:-- --:--:-- 72307
{
"accessWeight": 1,
"accesses": "66",
"activeSessions": [],
"autoMediaManagement": false,
"autoRecoverDtf": "None",
"cdi": "NotUsed",
"cleaningRequired": false,
"consecutiveErrors": "0",
"currentNSRMMDCount": "1",
"dataDomainFibreChannel": false,
"dataDomainRetentionLockMode": "None",
"deviceAccessInfo": "ddve01.amer.lan:/nsr/VMBackupDevice01",
"deviceBlockSize": "HandlerDefault",
"dltWormCapable": false,
"idleDeviceTimeout": 0,
"jukeboxDevice": "No",
"links": [
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/opstatus",
"title": "Volume operation status"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/label",
"title": "Label volume"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/mount",
"title": "Mount volume"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/unmount",
"title": "Unmount volume"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/verifylabel",
"title": "Verify volume label"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/erase",
"title": "Erase the device"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/volumes/4267924096",
"title": "Volume"
}
],
"longVolumeId": "703cdc60-00000005-fe635a80-66635a80-00045000-592bbe56",
"maxConsecutiveErrors": 20,
"maxNsrmmdCount": 4,
"maxSession": 60,
"mediaFamily": "Disk",
"mediaType": "Data Domain",
"message": "mounted Data Domain disk VMBackupPool.001",
"mountedVolume": "VMBackupPool.001",
"name": "ddve01.amer.lan_VMBackupDevice01",
"ndmp": false,
"operationParameters": [],
"password": "*******",
"pathId": "53f9269d-00000010-e2f994bd-66635a7e-00035000-592bbe56",
"readOnly": false,
"remoteUser": "ddboost",
"reserveRelease": "None",
"resourceId": {
"id": "178.0.90.20.0.0.0.0.196.80.99.102.192.168.9.150",
"sequence": 256
},
"saveLockout": 0,
"saveMountTimeout": 30,
"secureMultiTenancy": false,
"sharedDevices": "Done",
"statistics": [
"elapsed = 17310",
"errors = 0",
"last rate = 0",
"max clients = 0",
"file marks = 0",
"rewinds = 0",
"files skipped = 0",
"records skipped = 0",
"current file = 0",
"current record = 0",
"seek files = 0",
"seek records = 0",
"estimated kb = 0",
"amount kb = 0",
"file amount kb = 0",
"sessions = 0"
],
"status": "Enabled",
"suspectedDevice": false,
"tapeAlertsCritical": [],
"tapeAlertsInformation": [],
"tapeAlertsWarning": [],
"targetSession": 20,
"unlabeledVolumeLoaded": false,
"verifyLabelOnEject": false,
"volumeBlockSize": "256 KB",
"volumeCurrentCapacity": "0 KB",
"volumeErrorNumber": "0",
"volumeExpiration": "Sun Jun 7 15:07:44 2026",
"volumeId": "4267924096",
"volumeLabel": "VMBackupPool.001",
"volumePool": "VMBackupPool",
"warnOnSuspectVolumesInPercent": 80,
"wormCapable": false,
"wormCartridgePresent": false,
"writeEnabled": true
}
[root@nsr ~]#
Windows (PowerShell):
curl.exe -k -u Administrator:'ADMISTRATOR_PASSWORD' "https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT" | ConvertFrom-Json | ConvertTo-Json -Depth 50
Örneğin:
PS C:\Users\Administrator.NETWORKER> curl.exe -k -u Administrator:'!Password1' "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup" | ConvertFrom-Json | ConvertTo-Json -Depth 50
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2824 0 2824 0 0 20311 0 --:--:-- --:--:-- --:--:-- 21074
{
"accessWeight": 1,
"accesses": "45",
"activeSessions": [
],
"autoMediaManagement": false,
"autoRecoverDtf": "None",
"cdi": "NotUsed",
"cleaningRequired": false,
"consecutiveErrors": "0",
"currentNSRMMDCount": "1",
"dataDomainFibreChannel": false,
"dataDomainRetentionLockMode": "None",
"deviceAccessInfo": "dd3300-ff28:/win-srvr02/Backup",
"deviceBlockSize": "HandlerDefault",
"dltWormCapable": false,
"idleDeviceTimeout": 0,
"jukeboxDevice": "No",
"links": [
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/opstatus",
"title": "Volume operation status"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/label",
"title": "Label volume"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/mount",
"title": "Mount volume"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/unmount",
"title": "Unmount volume"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/verifylabel",
"title": "Verify volume label"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/erase",
"title": "Erase the device"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/volumes/3963713",
"title": "Volume"
}
],
"longVolumeId": "0aea479c-00000005-003c7b41-693c7b41-00025000-e6b5bb56",
"maxConsecutiveErrors": 20,
"maxNsrmmdCount": 4,
"maxSession": 60,
"mediaFamily": "Disk",
"mediaType": "Data Domain",
"message": "writing, done",
"mountedVolume": "win_srvr02.networker.lan.dddefault.001",
"name": "dd3300-ff28_Backup",
"ndmp": false,
"operationParameters": [
],
"password": "*******",
"pathId": "a30a7858-00000010-5ded760e-693c7b41-00015000-e6b5bb56",
"readOnly": false,
"remoteUser": "loudekboost",
"reserveRelease": "None",
"resourceId": {
"id": "176.0.164.7.0.0.0.0.69.121.60.105.192.168.0.22",
"sequence": 100
},
"saveLockout": 0,
"saveMountTimeout": 30,
"secureMultiTenancy": false,
"sharedDevices": "Done",
"statistics": [
"elapsed = 228514",
"errors = 0",
"last rate = 0",
"max clients = 0",
"file marks = 0",
"rewinds = 0",
"files skipped = 0",
"records skipped = 0",
"current file = 0",
"current record = 0",
"seek files = 0",
"seek records = 0",
"estimated kb = 0",
"amount kb = 0",
"file amount kb = 52206",
"sessions = 0"
],
"status": "Enabled",
"suspectedDevice": false,
"tapeAlertsCritical": [
],
"tapeAlertsInformation": [
],
"tapeAlertsWarning": [
],
"targetSession": 20,
"unlabeledVolumeLoaded": false,
"verifyLabelOnEject": false,
"volumeBlockSize": "256 KB",
"volumeCurrentCapacity": "0 KB",
"volumeErrorNumber": "0",
"volumeExpiration": "Sun Dec 12 15:29:53 2027",
"volumeId": "3963713",
"volumeLabel": "win_srvr02.networker.lan.dddefault.001",
"volumePool": "Data Domain Default",
"warnOnSuspectVolumesInPercent": 80,
"wormCapable": false,
"wormCartridgePresent": false,
"writeEnabled": true
}
Destek İçin Gerekli Bilgiler
Ortam:
- NetWorker sunucu adı
- NetWorker sürümü ve derleme numarası
- NetWorker sunucu ana bilgisayar işletim sistemi türü ve sürümü
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a
Windows:
nsrwatch
Sorun Ayrıntıları:
- Hangi REST API işleminin gerçekleştirildiğini (GET, POST, PUT, DELETE), kullanılan URI'yi ve JSON gövde içeriğini (varsa) açıklayın.
- REST API yanıt kodu ve sağlanan herhangi bir hata mesajı.
- REST API istemcisi ile NetWorker arasında ilk bağlantı ve yetkilendirme başarılı oldu mu?
Günlük Toplama:
- NetWorker sunucusundan işlenen daemon.raw günlük dosyası:
- Linux:
/nsr/logs/daemon.raw - Windows:
C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw - NetWorker: nsr_render_log'u kullanma
- Linux:
- NetWorker sunucusundan alınan REST API günlükleri:
/nsr/logs/restapi(Linux) veyaEMC NetWorker\nsr\logs\restapi(Windows) - Kimlik doğrulama sorunları için bkz. standart NetWorker kimlik doğrulama günlüğünde oturum açma
/nsr/authc/logs(Linux) veya..\EMC NetWorker\nsr\authc-server\tomcat\logs(Windows)
Hata ayıklama:
Performans:
REST API performansıyla ilgili sorunları değerlendirmeden önce, sorunun tüm REST API işlevlerinde mi yoksa belirli işlevlerde mi gözlemlendiğini belirlemek önemlidir. Örneğin, istemciler, işler, birimler vb. gibi genel uç noktalardaki GET istekleri çok fazla veri çekebilir. Bu tür istekler yüksek sistem kaynağı kullanımına ve zaman aşımlarına neden olabilir.
Bakınız: NetWorker REST API: HTTP GET istekleri zaman zaman aşımına uğruyor
Büyük genel uç noktalarda performans sorunları gözlemlendiğinde, "sorgu listesi filtresi" (q) veya "alan listesi filtresi" (fl) ihtiyaç duyulan belirli bilgilere döndürülen verileri azaltmak için. Yukarıdaki KB, bu ayarları detaylandırır ve ek bilgiler REST API Geliştirici Kılavuzu'nda mevcuttur: Dell Technologies Developer
Sorun REST API performansıyla ilgiliyse, API çağrıları tarafından kullanılan nsrtomc+ işleminin kaynak tüketimini izlemek için aşağıdaki seçenekleri kullanabilirsiniz.
Linux:
top -b | awk '/nsrtomc+/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
Bu çıktı, insanlar tarafından okunabilir zaman damgalarına sahip standart üst çıktıyı gösterir. Bu, işlem tarafından CPU ve bellek tüketimini ve bir REST çağrısı yapıldığında belirli bir durumda ne kadar kaldığını gözden geçirmek için kullanılabilir. Bu, hangi aramaların ne sıklıkta yapıldığını görmek için restapi.log ve AUTHC günlükleriyle karşılaştırılabilir.
Windows:
Windows sunucuları için "Performans İzleyicisi:
- Performans İzleyicisi'ni yönetici olarak açın.
- Sol bölmeden İzleme Araçları'nı genişletin ve Performans İzleyicisi'ni seçin.
- Sağ bölmenin içine sağ tıklayın ve Tüm Sayaçları Kaldır'ı seçin.
- Sağ bölmenin içine sağ tıklayın ve Sayaç Ekle'yi seçin.
- Kullanılabilir Sayaçlar'ın altında Bellek'i genişletin ve İşlemi Bayt Yüzdesi'ni seçin ve Ekle'ye tıklayın.
- Memory altında, Available Bytes öğesini seçin ve Add öğesine tıklayın.
- Kullanılabilir Sayaçlar'ın altında İşlem'i genişletin ve % İşlemci Süresi'ni seçin ve Seçili nesnenin Örnekleri'nin altında ilk Java girişini seçin, Ekle'yi tıklatın.
- Kullanılabilir Sayaçlar altında İşlemci Bilgileri'ni genişletin ve % İşlemci Yardımcı Programı'nı seçin, Ekle'ye tıklayın.
- Sağ bölmedeki Eklenen sayaçlar şunları göstermelidir:

- OK (Tamam) öğesine tıklayın. Performans İzleyicisi'ni sağ tıklatın ve Yeni Veri Toplayıcı Grubu'nu> tıklatın.
- Bir ad girin, örneğin:
RESTAPI_MON. - Alternatif bir çıktı konumu belirtmeyi seçmediğiniz sürece konum ekranında İleri öğesine tıklayın.
- Kaydet ve Kapat ı seçin ve Son a tıklayın.
- Data Collector Sets-User> Defined altındaki sol bölmede
RESTAPI_MONproperties'i seçin ve günlük biçimi için Virgülle Ayrılmış'ı seçin, Tamam'ı tıklatın.

- Sol bölmede , Veri Toplayıcı Setleri-Kullanıcı Tanımlı'nın>altında, RESTAPI_MON veri toplayıcı grubunu seçin ve Başlat (Oynat düğmesi) öğesine tıklayın
- Varsayılan çıktı konumu kullanıldıysa .csv dosyası, şu bölümün altında görünür:
C:\PerfLogs\Admin\RESTAPI_MON. - Sorun gözlemlendikten ve çıktı dosyasına kaydedildikten sonra, Veri Toplayıcı Grupları-Kullanıcı Tanımlı altındaki Durdur'u tıklatarak izlemeyi durdurabilirsiniz.