Share via


Azure İzleyici Aracısı ile Syslog olaylarını toplama

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı ve buna uygun planlamayı göz önünde bulundurun. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Syslog, Linux için ortak olan bir olay günlüğü protokolüdür. Belirttiğiniz türlerdeki yerel olayları toplamak için Linux cihazlarında ve gereçlerinde yerleşik olarak bulunan Syslog daemon'unu kullanabilirsiniz. Ardından bu olayları bir Log Analytics çalışma alanına göndermesini sağlayabilirsiniz. Uygulamalar yerel makinede depolanabilecek veya bir Syslog toplayıcısına teslim edilebilecek iletiler gönderir.

Linux için Azure İzleyici aracısı yüklendiğinde, syslog koleksiyonu veri toplama kurallarında (DCR) etkinleştirildiğinde yerel Syslog daemon'ını aracıya iletilecek şekilde yapılandırılır. Azure İzleyici Aracısı daha sonra iletileri, syslog tablosunda karşılık gelen bir Syslog kaydının oluşturulduğu bir Azure İzleyici veya Log Analytics çalışma alanına gönderir.

Syslog koleksiyonunu gösteren diyagram.

Syslog daemon ve Azure İzleyici Aracısı iletişimini gösteren diyagram.

Not

Azure İzleyici Aracısı rsyslog veya syslog-ng tarafından gönderilen iletileri almak için bir TCP bağlantı noktası kullanır, ancak SELinux'un etkinleştirilmesi ve TCP bağlantı noktası kuralları eklemek için semanage kullanamama durumunda Unix yuvalarını kullanacağız.

Syslog toplayıcısı ile aşağıdaki özellikler desteklenir:

  • Hiçbiri
  • Kaya
  • kullanıcı
  • posta
  • Daemon
  • kimlik doğrulaması
  • syslog
  • Lpr
  • Haber
  • Uucp
  • ftp
  • Ntp
  • denetim
  • uyarı
  • işaretle
  • yerel0
  • yerel1
  • yerel2
  • yerel3
  • yerel4
  • yerel5
  • yerel6
  • yerel7

Azure İzleyici Aracısı'nın yerel olarak yüklenmesine izin verlenmeyen bazı cihaz türleri için aracı, ayrılmış Linux tabanlı bir günlük ileticisi yerine yüklenebilir. Kaynak cihaz, yerel daemon yerine bu ileticideki Syslog daemon'larına Syslog olayları gönderecek şekilde yapılandırılmalıdır. Daha fazla bilgi için bkz. Sentinel öğreticisi.

Syslog'ı yapılandırma

Linux için Azure İzleyici Aracısı yalnızca yapılandırmasında belirtilen özelliklere ve önem derecelerine sahip olayları toplar. Syslog'ı Azure portalı üzerinden veya Linux aracılarınızdaki yapılandırma dosyalarını yöneterek yapılandırabilirsiniz.

Azure portalında Syslog'ı yapılandırma

Azure İzleyici'nin Veri Toplama Kuralları menüsünden Syslog'ı yapılandırın. Bu yapılandırma, her Linux aracısının yapılandırma dosyasına teslim edilir.

  1. Veri Kaynağı ekle'yi seçin.
  2. Veri kaynağı türü için Linux syslog öğesini seçin.

Her tesis için farklı bir günlük düzeyine sahip Syslog olaylarını toplayabilirsiniz. Varsayılan olarak, tüm Syslog tesis türleri toplanır. Örneğin türdeki olayları auth toplamak istemiyorsanız, tesis için auth En düşük günlük düzeyi liste kutusunda YOK'atıklayın ve değişiklikleri kaydedin. Syslog olayları için varsayılan günlük düzeyini değiştirmeniz ve yalnızca BİlDİrİm veya daha yüksek önceliğe sahip günlük düzeyine sahip olayları toplamanız gerekiyorsa, En düşük günlük düzeyi liste kutusunda LOG_NOTICE seçin.

Varsayılan olarak, tüm yapılandırma değişiklikleri otomatik olarak DCR'de yapılandırılan tüm aracılara gönderilir.

Veri toplama kuralı oluşturma

Log Analytics çalışma alanınızla aynı bölgede bir veri toplama kuralı oluşturun. DCR, verilerin çalışma alanına alınırken nasıl işleneceğini tanımlamanızı sağlayan bir Azure kaynağıdır.

  1. Azure Portal’ında oturum açın.

  2. İzleyici'de arama yapıp açın.

  3. Ayarlar altında Veri Toplama Kuralları'yı seçin.

  4. Oluştur'u belirleyin.

    Oluştur seçeneğinin seçili olduğu Veri Toplama Kuralları bölmesini gösteren ekran görüntüsü.

Kaynak ekleme

  1. Kaynak ekle'yi seçin.

  2. Günlükleri toplamak için kullanmak istediğiniz sanal makineyi bulmak için filtreleri kullanın.

    Veri toplama kuralının kapsamını seçme sayfasını gösteren ekran görüntüsü.

  3. Sanal makineyi seçin.

  4. Uygula’yı seçin.

  5. İleri: Topla ve teslim'i seçin.

Veri kaynağı ekleme

  1. Veri Kaynağı ekle'yi seçin.

  2. Veri kaynağı türü için Linux syslog öğesini seçin.

    Veri kaynağı türünü ve en düşük günlük düzeyini seçme sayfasını gösteren ekran görüntüsü.

  3. En düşük günlük düzeyi için varsayılan değerleri LOG_DEBUG bırakın.

  4. İleri: Hedef'i seçin.

Hedef ekleme

  1. Hedef ekle'yi seçin.

    Hedef ekle seçeneğinin seçili olduğu Hedef sekmesini gösteren ekran görüntüsü.

  2. Aşağıdaki değerleri girin:

    Alan Değer
    Hedef türü Azure İzleyici Günlükleri
    Abonelik Uygun aboneliği seçin
    Hesap veya ad alanı Uygun Log Analytics çalışma alanını seçin
  3. Veri Kaynağı ekle'yi seçin.

  4. Sonraki: Gözden geçirme ve oluşturma’yı seçin.

Kural oluşturun

  1. Oluştur'u belirleyin.
  2. Sonraki bölüme geçmeden önce 20 dakika bekleyin.

VM'nizde Azure İzleyici Aracısı yüklü değilse, DCR dağıtımı aracının VM'ye yüklenmesini tetikler.

Linux aracısının Syslog'unu yapılandırma

Azure İzleyici Aracısı bir Linux makinesine yüklendiğinde, Syslog bir DCR'de etkinleştirilirse toplanan iletilerin özelliğini ve önem derecesini tanımlayan varsayılan bir Syslog yapılandırma dosyası yükler. Yapılandırma dosyası, istemcinin yüklediği Syslog daemon'a bağlı olarak farklıdır.

Rsyslog

Birçok Linux dağıtımında rsyslogd daemon, Linux Syslog API'sini kullanarak gönderilen günlük iletilerinin kullanılmasından, depolanmasından ve yönlendirilmesinden sorumludur. Azure İzleyici Aracısı, günlük iletilerini Azure İzleyici Aracısı'na iletmek için rsyslog'daki TCP iletme çıkış modülünü (omfwd) kullanır.

Azure İzleyici Aracısı yüklemesi, aşağıdaki dizine yerleştirilen varsayılan yapılandırma dosyalarını içerir: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/

Syslog bir DCR'ye eklendiğinde, bu yapılandırma dosyaları sistem dizini altına etc/rsyslog.d yüklenir ve değişikliklerin etkili olması için rsyslog otomatik olarak yeniden başlatılır. Bu dosyalar rsyslog tarafından çıkış modülünü yüklemek ve tanımlı kurallar kullanılarak olayları Azure İzleyici Aracısı daemon'a iletmek için kullanılır.

Varsayılan içeriği aşağıdaki örnekte gösterilmiştir. Bu örnek, tüm günlük düzeylerine sahip tüm tesisler için yerel aracıdan gönderilen Syslog iletilerini toplar.

$ cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# queue.workerThreads sets the maximum worker threads, it will scale back to 0 if there is no activity
# Forwarding all events through TCP port
*.* action(type="omfwd"
template="AMA_RSYSLOG_TraditionalForwardFormat"
queue.type="LinkedList"
queue.filename="omfwd-azuremonitoragent"
queue.maxFileSize="32m"
action.resumeRetryCount="-1"
action.resumeInterval="5"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
queue.size="25000"
queue.workerThreads="100"
queue.dequeueBatchSize="2048"
queue.saveonshutdown="on"
target="127.0.0.1" Port="28330" Protocol="tcp")

SELinux kullandığınızda ve Unix yuvalarını kullanmaya karar verdiklerinde aşağıdaki yapılandırma kullanılır.

$ cat /etc/rsyslog.d/10-azuremonitoragent.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
$OMUxSockSocket /run/azuremonitoragent/default_syslog.socket
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%") 
$OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat
# Forwarding all events through Unix Domain Socket
*.* :omuxsock: 
$ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf
# Azure Monitor Agent configuration: load rsyslog forwarding module. 
$ModLoad omuxsock

CentOS 7.3 gibi bazı eski sistemlerde Syslog olaylarını Azure İzleyici Aracısı'na göndermek için geleneksel bir iletme biçimi kullanıldığında rsyslog günlüğü biçimlendirme sorunlarını gördük. Bu sistemler için Azure İzleyici Aracısı bunun yerine otomatik olarak eski bir iletici şablonu yerleştirir:

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog-ng

syslog-ng yapılandırma dosyası konumunda /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.confyüklüdür. Syslog koleksiyonu bir DCR'ye eklendiğinde, bu yapılandırma dosyası sistem dizini altına /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf yerleştirilir ve değişikliklerin etkili olması için syslog-ng otomatik olarak yeniden başlatılır.

Varsayılan içerik aşağıdaki örnekte gösterilmiştir. Bu örnek, tüm tesisler ve tüm önem dereceleri için yerel aracıdan gönderilen Syslog iletilerini toplar.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent
options {};

# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using tcp
destination d_azure_mdsd {
	network("127.0.0.1" 
	port(28330)
	log-fifo-size(25000));			
};

log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
	destination(d_azure_mdsd);
	flags(flow-control);
};

SELinux kullandığınızda ve Unix yuvalarını kullanmaya karar verdiklerinde aşağıdaki yapılandırma kullanılır.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent options {}; 
# during install time, we detect if s_src exist, if it does then we 
# replace it by appropriate source name like in redhat 's_sys' 
# Forwrding using unix domain socket 
destination d_azure_mdsd { 
	unix-dgram("/run/azuremonitoragent/default_syslog.socket" 
	flags(no_multi_line) ); 
};
 
log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf 
	destination(d_azure_mdsd);
}; 

Not

Azure İzleyici rsyslog veya syslog-ng tarafından gönderilen iletilerin toplanmasını destekler; burada rsyslog varsayılan daemon'dur. Red Hat Enterprise Linux, CentOS ve Oracle Linux sürümünün (sysklog) 5. sürümündeki varsayılan Syslog daemon'ı Syslog olay koleksiyonu için desteklenmez. Bu dağıtımların bu sürümünden Syslog verilerini toplamak için rsyslog daemon'ının yüklenmesi ve sysklog'un yerini alacak şekilde yapılandırılması gerekir.

Syslog yapılandırmasını düzenlerseniz değişikliklerin etkili olması için Syslog daemon'unu yeniden başlatmanız gerekir.

Önkoşullar

Şunlara sahip olmanız gerekir:

Syslog kayıt özellikleri

Syslog kayıtları bir Syslog türüne sahiptir ve aşağıdaki tabloda gösterilen özelliklere sahiptir.

Özellik Açıklama
Bilgisayar Olayın toplandığı bilgisayar.
Tesis Sistemin iletiyi oluşturan bölümünü tanımlar.
HostIP İletiyi gönderen sistemin IP adresi.
HostName İletiyi gönderen sistemin adı.
SeverityLevel Olayın önem derecesi.
SyslogMessage İletinin metni.
ProcessID İletiyi oluşturan işlemin kimliği.
EventTime Olayın oluşturulduğu tarih ve saat.

Syslog kayıtlarıyla günlük sorguları

Aşağıdaki tabloda Syslog kayıtlarını alan günlük sorgularının farklı örnekleri verilmiştir.

Sorgu Açıklama
Syslog Tüm Syslog'lar
Syslog | where SeverityLevel == "error" Hata önem derecesine sahip tüm Syslog kayıtları
Syslog | where Facility == "auth" Kimlik doğrulama özelliği türüne sahip tüm Syslog kayıtları
Syslog | Summarize AggregatedValue = count() by Facility Tesise göre Syslog kayıtlarının sayısı

Sonraki adımlar

Aşağıdakiler hakkında daha fazla bilgi edinin: