|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > Netsim System Agent Kurulum ve Yönetim Kılavuzu > 5. Servis yüzeyleri > 5.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. |
GET SYSTEMGUID | Makinenin sistem güvenlik numarası — lisans talebinde istenen değer. |
GET MANAGEDDATABASES | Yönetilen veritabanları. |
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 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 (yukarıda “Yeni sunucuya ürün veritabanı kurmak”). 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 düşürür; sonraki istek tabloyu yeniden okur, hizmet yeniden başlatılmaz. Yanıt kaç CRUD işlemcisinin 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. |
lines ve offsetGü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.
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.
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 “IVEDI oturum protokolü (/ivedi)” bölümündedir.
Yönetim arayüzünün SQL sayfası ikinci yolu kullanır: seçilen veritabanında bir oturum açar, betiği tek işlem olarak çalıştırır (hatasızsa COMMIT, bir deyim düşerse ROLLBACK). Satır sınırını aşan sonuçta Devamını getir kalan satırları getirir; bu sürede işlem açık kalır ve COMMIT, satırlar bitince ya da sonraki koşudan önce gönderilir. Sayfa ayrıca yalnız seçili metni çalıştırır (Ctrl+Shift+Enter), son 100 betiği tarayıcıda geçmiş olarak tutar (Ctrl+↑/↓), betiği dosyaya kaydedip yükler (Ctrl+S), SQL ile sonuçları bir oturum dosyasına yazar ve geri yükler, editörde arar / değiştirir (Ctrl+F, Ctrl+H) ve her sonuç kümesini CSV ya da JSON olarak indirir. Geçmiş ve dosyalar tarayıcıda kalır, sunucuya gitmez.
Elle işlem işaretliyken betikten sonra COMMIT / ROLLBACK gönderilmez: işlem açık kalır (bağlantı satırında “işlem açık”), hatalı bir deyimin etkisi olmaz ama öncekiler durur, işlemi COMMIT ve ROLLBACK düğmeleri bitirir. Açık işlem varken otomatik kipe geçilemez; veritabanını değiştirmek ya da bağlantıyı kesmek açık işlemi geri alacağı için onay ister. Bağlantı menüsü oturumu yeniden açar, keser ve veritabanı listesini yeniler.
Hata ayıkla düğmesi PSQL hata ayıklayıcısının panelini açar (ajanda debugMode açık ve login
DEBUGGER rolünde ya da SYSDBA; bkz. "IVEDI oturum protokolü" > "Hata ayıklama"). Durma noktaları kutuya
APP.P:5, :3 if a = 1 biçiminde yazılır (nesne satırı CREATE metnine göre 1 tabanlı, :SATIR
betik), Uygula ile gönderilir; betik koşarken bir durağa gelince durak bilgisi, çağrı yığını ve en içteki çerçevenin
değişkenleri görünür, Devam / Üstünden / İçine / Dışına / Sonlandır düğmeleri ve
ifade kutusu (Değerlendir) kullanılır. Durak boyunca işlem açık kalır; düğme kapatılınca durma noktaları silinir.
Editörün solundaki nesne paneli seçili veritabanının tablolarını, görünümlerini, prosedürlerini ve
fonksiyonlarını gruplar halinde listeler (araç çubuğundaki Nesneler açar / kapatır); arama kutusu ada ve şemaya göre
süzer, Sistem işareti motorun kendi nesnelerini de getirir, geçersiz nesneler üstü çizili görünür. Bir öğeye
tıklamak ŞEMA.ADı editördeki imlece ekler; sağ tık tablo ve görünümde SELECT deyimi ekle,
Verileri göster ve Tablo yapısı, prosedür ve fonksiyonda Kaynağı göster seçeneklerini sunar.
Liste veritabanı değişince, hatasız bir DDL koşusundan ve COMMIT düğmesinden sonra kendiliğinden yenilenir; ayrı bir
oturumdan okunduğu için açık işleme ve sonuç imleçlerine dokunmaz.
Araçlar menüsü: editördeki (ya da seçili) metni PostgreSQL'e veya Firebird'e çevirir — deyimler çalıştırılmaz, hedefin metni kopyalanabilir bir panelde görünür; istatistikle çalıştırır — her deyimin süresi ve eklenen / güncellenen / silinen satır sayısı ileti olarak gelir (motorda ayrı bir çalıştırma planı yoktur); seçili ya da sorulan tablonun / görünümün yapısını (kolon, tip, uzunluk, boş geçilebilirlik, öndeğer, açıklama) gösterir — şemasız ad katalogdan bulunur; veritabanı bilgisini (oturum ve veritabanı kartı) ve sistem tablolarını listeler.
Bir sonuç kümesi tek bir tablodan geliyor ve o tablonun birincil anahtarının bütün kolonlarını içeriyorsa
Düzenle onu tabloda düzenlenebilir yapar: satır değiştirme, ekleme ve silme birikir, Uygula
birincil anahtarla UPDATE / INSERT / DELETE deyimlerini gösterip onay ister. Tabloya kaydet sonucu bir tabloya
yazar (tablo yoksa sonucun kolonlarıyla kurulur), Araçlar menüsündeki CSV'den tabloya yükle bir CSV dosyasını
(ayırıcı ;, , ya da sekme; ilk satır başlık) bir tabloya ekler — başlıklar kolonlara adla
eşlenir, tablo yoksa metin kolonlarıyla kurulur. Yazan her işlem deyimlerini önce gösterir; otomatik işlem kipinde
hepsi tek işlemdir (biri düşerse hiçbiri kalmaz), elle kipte işlem açık kalır.