Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Client Pc Sistem Bilgileri Loglama
#1
Merhaba

İşlem yapan client bilgisayarların bazı bilgilerini veritabanında loglamak istiyorum. (IP, user, işletim sistemi versiyonu vb.)
Bu bilgiler ve çok daha fazlasını  Jedi komponentleri içindeki TjvComputerInfoEx gösterebiliyor.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kullanmayı düşündüğüm yöntem, jedi ile seçtiğim sistem parametrelerini log tablosuna eklemek.  (Bu kısım ile ilgili problem yok)

Jedi haricinde sistem bilgilerini elde etmek için kullandığınız daha farklı yöntemler varmı?
Cevapla
#2
Hangi veritabanını kullanıyorsunuz?
Cevapla
#3
Jedi'nin çözümü kadar hızlı olacağını zannetmem ama alternatif:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol (Windows Management Instrumentation)
There's no place like 127.0.0.1
WWW
Cevapla
#4
(16-08-2017, Saat: 14:47)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlHangi veritabanını kullanıyorsunuz?

Bu projede MSSQL 2016 kullanıyorum.

Jedi 15 yıldan fazladır favorimlerim arasında Smile

Ekleme:
Aşağıdaki linklerden güncel jcl ve jvcl leri indirebilirsiniz.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#5
(16-08-2017, Saat: 14:36)frmman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba

İşlem yapan client bilgisayarların bazı bilgilerini veritabanında loglamak istiyorum. (IP, user, işletim sistemi versiyonu vb.)
Bu bilgiler ve çok daha fazlasını  Jedi komponentleri içindeki TjvComputerInfoEx gösterebiliyor.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kullanmayı düşündüğüm yöntem, jedi ile seçtiğim sistem parametrelerini log tablosuna eklemek.  (Bu kısım ile ilgili problem yok)

Jedi haricinde sistem bilgilerini elde etmek için kullandığınız daha farklı yöntemler varmı?

Merhaba hocam,
Log kaydı için yukarıda da belirttiğiniz gibi sistem bazında bazı bilgiler alınması gerekiyor(IP, user, işletim sistemi versiyonu vb.). Bunların dışında kalan Log türü,yapılan işlem açıklama gibi bilgiler ekleniyor sanırım. Bileşen yardımı ile log kaydı esnasında bu bilgileri tekrar tekrar mı elde ediyorsunuz.  Ben de buna benzer log kaydı alıyorum fakat uygulamanın ilk açılış anında bu bilgileri alarak ortak bir alanda tutuyorum ve log kaydına da buradaki verileri alarak ekliyorum. Her defasında tekrar alıyorsanız, makinelerin farklı bir ip alması senaryosu üzerine mi bu yöntemi uyguluyorsunuz. Açıkçası bu kısmı merak ettim Huh
Cevapla
#6
Jedi'nin hızını geçebilecek yoktur. Aslında muhafaza etmek istediğiniz verilerden biraz daha bahsederseniz belki alternatif çözümler sunulabilir. Şuanda User-Agent bilgileri olarak algıladım. Bunun dışında muhafaza edilecek bir bilgi var mıdır?
{ talk is cheap show me the code. }
Cevapla
#7
(17-08-2017, Saat: 16:55)Cyber Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(16-08-2017, Saat: 14:36)frmman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba

İşlem yapan client bilgisayarların bazı bilgilerini veritabanında loglamak istiyorum. (IP, user, işletim sistemi versiyonu vb.)
Bu bilgiler ve çok daha fazlasını  Jedi komponentleri içindeki TjvComputerInfoEx gösterebiliyor.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kullanmayı düşündüğüm yöntem, jedi ile seçtiğim sistem parametrelerini log tablosuna eklemek.  (Bu kısım ile ilgili problem yok)

Jedi haricinde sistem bilgilerini elde etmek için kullandığınız daha farklı yöntemler varmı?

Merhaba hocam,
Log kaydı için yukarıda da belirttiğiniz gibi sistem bazında bazı bilgiler alınması gerekiyor(IP, user, işletim sistemi versiyonu vb.). Bunların dışında kalan Log türü,yapılan işlem açıklama gibi bilgiler ekleniyor sanırım. Bileşen yardımı ile log kaydı esnasında bu bilgileri tekrar tekrar mı elde ediyorsunuz.  Ben de buna benzer log kaydı alıyorum fakat uygulamanın ilk açılış anında bu bilgileri alarak ortak bir alanda tutuyorum ve log kaydına da buradaki verileri alarak ekliyorum. Her defasında tekrar alıyorsanız, makinelerin farklı bir ip alması senaryosu üzerine mi bu yöntemi uyguluyorsunuz. Açıkçası bu kısmı merak ettim Huh


Log tutma uygulamanın veya yapılan projenin kapsamına göre değişir.  Haliyle Log kaydı tetikleme mekanizmaları ve kayıt tipleride farklı olabilir.
Aynı uygulama için birden fazla log tablosuda tutulabilir. Login ve kullanıcı ile ilgili işlem logları, finansal değişiklik yapılan işlem logları vb.

Log kaydı tutulan verilerin hedeflediğiniz amaca uygun, işe yarar, anlaşılır veriler içermesi önemlidir. Bu veriler daha sonra sistem işlerliğini gözlemlemek, oluşabilecek hataları düzeltmek, bilinçli veya bilinçsiz yapılan bazı işlemlerde sorumlu kişinin tespit edilmesi vb işlemlerde kullanılabilir.

Ayrıca log kayıtları veritabanında tutulacaksa sorgulama işlemlerini kolaylaştıracak ve hızlandıracak şekilde db/tablo ayarları/tasarımı yapılmalıdır.

Yukarıdaki açıklamalarım şimdiye kadarki tecrübelerime dayanarak, loglama ile ilgili işlemlere genel bakış açımı ifade etmektedir.   Sizin sorunuzda geçen "ip değişikliği ile log oluşturma" konusu şu an uğraştığım proje için çok kritik bir durum teşkil etmiyor. Yapılabilirmi ihtiyacımız varsa tabiki.

Yukarıdaki açıklamlarım çok genel bir çerçevede oldu.

Belki konuya katkı sağlayacak daha tecrübeli arkadaşların ilave edecekleri/düzeltecekleri noktalar vardır.



(18-08-2017, Saat: 14:35)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlJedi'nin hızını geçebilecek yoktur. Aslında muhafaza etmek istediğiniz verilerden biraz daha bahsederseniz belki alternatif çözümler sunulabilir. Şuanda User-Agent bilgileri olarak algıladım. Bunun dışında muhafaza edilecek bir bilgi var mıdır?

Aslında bende hangi verileri tutmam mantıklı olur, bu verileri daha kolay elde etmenin başka yolları varmı onları araştırıyordum. Bu noktada jedi sadece bir adet network kartının local ip sini verebiliyor. Veya ben öyle biliyorum.  Bu ip de herzaman fiziksel bağlantının olduğu eth kartına ait olmayabiliyor. Sanal makinaların ethernet kart iplerde olabiliyor. Haliyle bir makinada birden fazla ethernet kartı olması durumunda var olan tüm iplerin tespit edilmesi  durumu konuyu buralara kadar taşıdı.

Problemimi Jedi + Indy ikilisi ile çözmeye karar verdim.
Jedi sistem ile ilgili temel bilgiler
Indy eth ile ilgili bilgiler.

Yeri gelmişken indy ile tüm local ip leri aşağıdaki fonksiyon ile elde edilebiliyor.


{-------------------------------------------------------------------------------
INDY10 İLE Local IP ler listeleniyor

uses IdStack; kullanır

10.70.48.181
172.16.179.1
172.16.6.1
-------------------------------------------------------------------------------}
function LocalIPler(): string;
var sonuc:TStringList;
begin
 sonuc := TStringList.Create;
 TIdStack.IncUsage;
 try
     GStack.AddLocalAddressesToList(sonuc);
     Result := sonuc.Text;

 finally
   TIdStack.DecUsage;
   sonuc.Free;
 end;
end;
Cevapla
#8
(18-08-2017, Saat: 16:00)frmman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(18-08-2017, Saat: 14:35)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlJedi'nin hızını geçebilecek yoktur. Aslında muhafaza etmek istediğiniz verilerden biraz daha bahsederseniz belki alternatif çözümler sunulabilir. Şuanda User-Agent bilgileri olarak algıladım. Bunun dışında muhafaza edilecek bir bilgi var mıdır?

Aslında bende hangi verileri tutmam mantıklı olur, bu verileri daha kolay elde etmenin başka yolları varmı onları araştırıyordum. Bu noktada jedi sadece bir adet network kartının local ip sini verebiliyor. Veya ben öyle biliyorum.  Bu ip de herzaman fiziksel bağlantının olduğu eth kartına ait olmayabiliyor. Sanal makinaların ethernet kart iplerde olabiliyor. Haliyle bir makinada birden fazla ethernet kartı olması durumunda var olan tüm iplerin tespit edilmesi  durumu konuyu buralara kadar taşıdı.

Problemimi Jedi + Indy ikilisi ile çözmeye karar verdim.
Jedi sistem ile ilgili temel bilgiler
Indy eth ile ilgili bilgiler.

Yeri gelmişken indy ile tüm local ip leri aşağıdaki fonksiyon ile elde edilebiliyor.


{-------------------------------------------------------------------------------
INDY10 İLE Local IP ler listeleniyor

uses IdStack; kullanır

10.70.48.181
172.16.179.1
172.16.6.1
-------------------------------------------------------------------------------}
function LocalIPler(): string;
var sonuc:TStringList;
begin
 sonuc := TStringList.Create;
 TIdStack.IncUsage;
 try
     GStack.AddLocalAddressesToList(sonuc);
     Result := sonuc.Text;

 finally
   TIdStack.DecUsage;
   sonuc.Free;
 end;
end;

Eğer donanım bilgilerini muhafaza ederek client ile bağdaştırıp kaydetmek isterseniz daha önce kullandığım bir yöntem var. Vb tabanında yazdığımız user-agent + harddisk, cpu, ram, anakart, ethernet kart gibi donanımların alakalı benzersiz anahtarlarını toplayan hazır bir fonksiyon vardı. Bunu dll haline getirip Delphi projelerinde kullanmıştık. İhtiyacınız böyle bir şey midir? Yoksa hangi cihaz olduğundan ziyade, kullandığı cihazın ip adresi ile sistemde uçan kuşu mu bilmek mi istiyorsunuz?

Save
{ talk is cheap show me the code. }
Cevapla
#9
Abdullah hocam okunabilirlik adına alıntı yapmadan cevap yazayım.

Loglamayı düşündüğüm bilgiler sistemi tanımlayan temel seviyedeki bilgiler aslında. Donanım konfirasyonu veya çok daha kişisel bilgi seyiyesine inmemi gerektirecek bir loglama seviyesine ihtiyacım bulunmuyor. Programımı kullanan pc lerin genel özelliklerini log tutmam yeterli olacaktır.
Cevapla
#10
Hocam genel cevabınız için teşekkürler. Nasıl log tutulmalı konusuna, tecrübeleriniz doğrultusunda bir açıklama getirmişsiniz. Ben sorumu net soramadım sanırım. 

Log kaydını alıp işlerken her defasında jedi ile IP, user, işletim sistemi versiyonu vb. bilgileri sıfırdan alıp mı işliyorsunuz?

Sizin de bahsettiğiniz gibi projeye göre değişiklik gösterebilecek bir durum. Eğer Proje kapsamında uygulama çalışırken bu bilgilerin değiştirilme olasılığı yok ise, uygulama ilk açıldığında ortak bir alanda tutarak, bilgilere buradan erişim sağlasak daha hızlı bir çözüm olmaz mı? Her defasında kaynak tüketimi yapmamış oluruz diye düşünüyorum.

Logkaydi(ortak.IP,ortak.user,ortak.PCname,'Açıklama',vs.vs.)

Öğrenme aşamasındayım ve merak ettiğim, yanlışlarım varsa düzeltmek için soruyorum.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  rest client Kamuran Alpkaya 9 348 07-12-2017, Saat: 20:36
Son Yorum: Kamuran Alpkaya



Konuyu Okuyanlar: 1 Ziyaretçi