8.2 /AdminREST

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > Netsim System Agent İstemci Protokolü Referansı > 8. Yönetim uçları (/AdminREST) ve ortak yardımcı uçlar >

8.2 /AdminREST

Yönetim yüzeyi. Anonim erişime kapalıdır (yalnız GET SITE açıktır) ve her istek için kimliği doğrulanmış ve yönetici (SYSADMIN rolünün üyesi ya da SYSDBA) bir oturum ister; aksi hâlde 401 döner. Kimlik Basic auth ile verilir.

Uç Ne verir / ne yapar
GET SITE Kimlik istemez. Yönetim arayüzünün kurulumu: product (ajanda agent); arayüz giriş sayfasını ve menüsünü buna göre kurar.
GET LICENSES Yüklü lisanslar. Lisans geçersizse result: false + neden, ayrıca valid: false, SystemId, OwnerUserName, OwnerName, OrgUnit.
GET LICENSESERVER?what=<liste> Lisans sunucusundan: bayilist (bayiler), sektorlist (sektörler), validatemember&user=<e-posta> (üye var mı: result, Active). Sunucunun yanıtı olduğu gibi döner.
GET SYSTEMGUID Makinenin sistem güvenlik numarası — lisans talebinde istenen değer.
GET MANAGEDDATABASES Yönetilen veritabanları. Her satırda storageUser (depo kimliği) ve engineUser (servis kullanıcısıysa true) bulunur; yanıtta ayrıca engineUserDefault (yapılandırmadaki engineUser) vardır.
GET SESSIONS Açık oturumlar; her oturumda clientType (web / webadmin / desktop / other), mesaj kuyruğu olan oturumda abone olunan konular (mqTopics) ve kuyrukta bekleyen ileti sayısı (mqMessages), sonda counts.
GET PROCESSES Ana süreç ve alt süreçler.
GET THREADS İş parçacıkları, üç bölüm hâlinde. sharedWorkers hizmetin kendisini anlatır: görev zamanlayıcı ve her dinleyici (durum, iş parçacığı kimliği, canlı bağlantı sayısı). processThreads her sürecin iş parçacığı özetidir (süreç kimliği, açıklaması, sonlanmış mı, "N thread(s): Sınıf [açıklama], …" metni ve özetin yazıldığı an); her süreç kendi özetini paylaşılan süreç kaydına yazar, böylece yanıtlayan işçi ötekileri de gösterebilir. localThreads ise yalnızca isteği yanıtlayan sürecin iş parçacıklarıdır ve processId ile etiketlidir — multiProcess işçi modelinde her isteği ayrı bir alt süreç işlediği için bu liste çoğu zaman boştur. Bağlantı başına yaratılan işçiler kendi süreçlerinde yaşadığından burada görünmez; yanıt bunu note alanında söyler.
GET TASKS Zamanlanmış görevler.
GET STATUS Genel durum özeti.
GET MONITORDATA Tek bir ölçüm anının izleme sayıları — aşağıda ayrıntısı.
GET GETLOG Günlüğün sonu. Parametresiz çağrıda son 1 MB, lines/offset verilirse satır bazlı — aşağıda ayrıntısı.
GET FILES?path=<klasör> Sunucudaki bir klasörün girdileri (önce klasörler, sonra dosyalar; ad, yol, boyut, değiştirilme zamanı). path boşsa Windows'ta sürücüler, Linux'ta /. Yönetim arayüzünün sunucu dosya seçicisi bunu kullanır.
GET DOWNLOADFILE?path=<dosya> Sunucudaki dosyayı indirir (örneğin dışa aktarılan seviye paketi).
POST UPLOADFILE?name=<ad> İstek gövdesini sunucunun geçici klasörüne (${TEMP}/NetsimUploads) yazar ve dosyanın sunucu yolunu döner. Gövde sınırı dinleyicinin maxContentSize ayarıdır.
POST LICENSEFILE Lisans dosyasını yükler.
POST LICENSEREGISTER Lisans kaydı: {mode: add\|update, userName, licenseKey, orgUnit, partner, siteFirmCode?, systemId?}. Yanıt: sunucunun NeedSiteFirmCode / NeedOrganizasyonBirimi istekleri olduğu gibi; kurulduysa installed: true; başka bir makinenin systemId'siyle installed: false + LicenseFile (base64). Hata 202 + {result: false, message}.
POST LICENSEMEMBER Netsim üye kaydı: KULLANICI_ADI, SIFRE, ADI, YETKILIADI, YETKILISOYADI, YETKILICEP, SEKTOR, TELEFON, FAKS, ADRES1–ADRES3, ILCE, SEHIR, ULKE.
POST EXECCOMMAND Aşağıdaki komutları çalıştırır.
EXECCOMMAND komutu Etkisi
LOADCONFIG Yapılandırmayı yeniden okur.
DUMPMEMORY Bellek havuzu istatistiklerini döker (ayrıntı düzeyi günlük seviyesine bağlıdır).
DUMPPROCESS Sürecin küçük dökümünü (mini dump) alır.
KILLPROCESS params.processId ile verilen alt süreci sonlandırılmış olarak işaretler.
CLOSESESSION params.sessionKey ile verilen istemci oturumunu sonlandırır — yalnız SYSDBA login'i (SYSADMIN üyesi başka bir login 403 alır). Oturum kapandı durumuna alınır ve listeden düşer; WebSocket istemcisi Session terminated kapanış çerçevesi alır. O anda bir işçi süreç o oturumun uzun bir isteğini işliyorsa yanıttaki busyProcessId onu söyler; bağlantı istek bitene kadar açık kalır (KILLPROCESS ile düşürülebilir). Yönetim arayüzünde Bağlı Kullanıcılar sayfasının Zorla sonlandır düğmesi (yalnız SYSDBA ile girildiğinde görünür).
TERMINATE_APPLICATION params.sessionKey ile verilen istemciye kapanma isteği gönderir — yalnız SYSDBA login'i. Oturumun kuyruğuna messageClass adminRequest, subject TERMINATE_APPLICATION iletisi konur, params.message (isteğe bağlı) iletinin metnidir. NetsimApp bu notu kullanıcıya gösterir ve 30 saniye sonra kendini kapatır; ajan oturuma dokunmaz, istemci yanıt vermezse oturum açık kalır (o zaman CLOSESESSION). Yönetim arayüzünde Bağlı Kullanıcılar sayfasının Kapanma isteği gönder düğmesi.
DBSETUP Yeni bir PostgreSQL / Firebird sunucusuna dağıtım setinden ürün veritabanı kurar (Yönetim Arayüzü Kullanma Kılavuzu, “Veritabanı kurulumu”). params: engine (POSTGRESQL | FIREBIRD), server, port, user, password (deponun süper kullanıcısı), database (PostgreSQL: yeni veritabanının adı; Firebird: hedef .fdb yolu), source (sunucudaki yedek / veritabanı dosyası), isteğe bağlı library, sysdbaPassword (PostgreSQL), checkOnly. Yanıt {"result", "message", "engine", "database", "checkOnly", "steps": [{"step", "status", "detail"}]}; status OK / INFO / WARNING / ERROR / PLANNED, ayrıntılar Accept-Language dilinde. Başarıda 200, hatada 202. Kaydı yapmaz.
RESTART Hizmeti yeniden başlatır. Hizmet olarak koşmuyorsa (örn. -A kipinde) hizmet adı bulunamaz ve 400 döner.
RESCHEDULETASKS Görev zamanlayıcıya görevleri yeniden planlatır.
RELOADENDPOINTS WEBSENDP değiştiğinde /crud/fastapi uç nokta önbelleğini ve REST işlemcilerinin ENDPOINT listesini düşürür; sonraki istek kataloğu yeniden okur, hizmet yeniden başlatılmaz. Yanıt kaç işlemcinin yenilendiğini söyler. MCP sürecinin karşılığı reload_tools aracıdır.
IMPORTDOC params.collection koleksiyonunu params.path kaynak havuz dosyasından params.database veritabanının belge havuzuna (ALTER DATABASE … SET DOCUMENTS) alır: yalnız o koleksiyonun satırları silinip yeniden yazılır, hata olursa hiçbir şey değişmez. Koleksiyon adı küçük harf, rakam ve tire içerir. Yanıt konu ve parça sayısını verir.

8.2.1 GETLOG — lines ve offset

Günlük dosyası bir defada değil, sonundan geriye doğru bir pencere hâlinde döner. İki kip vardır ve kipi parametrenin varlığı seçer:

Çağrı Ne döner
GETLOG Bayt kipi: dosyanın son 1 MB'ı; pencerenin başındaki yarım kayıt kırpılır. Paketteki yönetim arayüzü (wwwroot/pages/Logs.html) uç noktayı böyle çağırır ve “indir” düğmesi de bu içeriği kaydeder.
GETLOG?lines=N Satır kipi: dosyanın sonundan N satır. Geçerli aralık 1 – 100.000; aralık dışı bir değer aralığa çekilir.
GETLOG?lines=N&offset=K Sondan K satır atlanır, ardından N satır alınır — yani geçmişe doğru sayfalama. offset tek başına verilirse satır sayısı 1000 öndeğerini alır.

Yanıt her iki kipte de aynı alanları taşır: content (metin), size (dosyanın tamamı, bayt), readSize (dönen bölüm, bayt), startPos (dönen bölümün dosya içindeki başlangıcı, bayt), lines (dönen satır sayısı), offset (uygulanan atlama) ve lineMode (satır kipinde mi). startPos'un sıfırdan büyük olması, daha eski kayıtların bulunduğunu söyler.

Satır kipinde taranan pencere 16 MB ile sınırlıdır: istenen satırlar bu pencerenin içinden seçilir. Sınır bilinçlidir — bu bir yönetim uç noktasıdır ve gigabaytlık bir günlüğü belleğe almamalıdır. Sayısal olmayan bir lines/offset değeri (?lines=abc) yok sayılır ve çağrı bayt kipinde işlenir.

8.2.2 MONITORDATA — izleme sayıları

Tek bir ölçüm anının sayılarını verir; periyodik olarak (saniyeler mertebesinde) çağrılmak üzere ucuz tutulmuştur. Ayrıntılı listeler kendi uçlarında kalır (SESSIONS, PROCESSES, THREADS, TASKS, STATUS) ve bellek havuzlarının nesne dökümü EXECCOMMAND DUMPMEMORY'nin işidir — bu uç onları tekrarlamaz.

Bölüm İçerik
currentTime, startTime, uptimeSeconds Ölçüm anı, hizmetin başlama zamanı ve çalışma süresi (saniye).
system Makine adı, işletim sistemi sürümü, mantıksal çekirdek sayısı, fiziksel belleğin toplamı/kullanılabilir/kullanılan miktarı (bayt) ve kullanım yüzdesi (0–100 arası sayı, metin değil). available, işletim sisteminden ölçüm alınabildiğini söyler.
process Usta sürecin, yani hizmetin kendisinin süreç numarası, yerleşik kümesi ve tepe değeri, sanal alanı (bayt) ve CPU süreleri (milisaniye: çekirdek, kullanıcı, toplam). Ölçüm bilerek usta sürece yöneltiliyor: multiProcess modelinde isteği bir --forkNetWorker alt süreci karşılar, dolayısıyla “bu süreç” o istek için doğmuş geçici bir işçi olur.
counts Süreç, oturum ve zamanlanmış görev sayıları. Hepsi paylaşılan bellekten okunur, yani hangi süreç yanıtlarsa yanıtlasın aynı değeri verir. İş parçacığı sayısı bilerek yoktur: iş parçacığı yöneticisi süreç-yereldir ve alt süreçten okunan sayı işçinin kendi parçacıklarını anlatırdı; o bilgi GET THREADS'in işidir.
connectionPool İstemci bağlantı havuzu, bütün süreçler (kayıt paylaşılan bellekte): entries, idle, busy, opening, acquired, reused, opened, discarded, orphaned, refused sayaçları ve byProcess / byDatabase dağılımı.
listeners Her dinleyici için ad, işçi modeli, çalışma durumu, o an işlenen bağlantı sayısı ile maxConnections/maxConnectionsPerClient sınırları, sıra bekleyen bağlantı sayısı, dinlenen IP ve port. Sınıra ne kadar yaklaşıldığını görmek için bakılacak yer burasıdır.
log Günlük dosyasının yolu ve boyutu (bayt) — büyüme hızı bir uyarı eşiğidir. İçerik GETLOG'un işidir.
license Lisansın geçerli olup olmadığı (valid) ve lisansı makinede başka bir ajanın tutup tutmadığı (secondary: bu ajan koltuksuz). Sahip/birim bilgileri STATUS ve LICENSES uçlarındadır.

Bir alt bilgi kaynağı okunamazsa o bölüm eksik ya da sıfır kalır, ama çağrı başarılı döner: bir izleme ucunun tek bir eksik sayı yüzünden hiçbir şey döndürmemesi yanlış olurdu.

Tanınmayan bir uç 400 verir.

8.2.3 SQL/MQL çalıştırma

Yönetim REST'inin SQL çalıştıran bir ucu yoktur. Bir betik çalıştırmak isteyen istemci — paketteki yönetim arayüzü dahil — motorun kendi yüzeyini kullanır: durumsuz POST /ivedi/execute (betik kipi script: true, hatasız betik commit edilir, bir deyim bile düşerse bütün betik geri alınır) ya da bir /ivedi WebSocket oturumunun script komutu (koşan betik POST /ivedi/cancel ile iptal edilebilir). Kimlik, kapı ve sonuç biçimi §7'dedir.