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.
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.
- Veri Kaynağı ekle'yi seçin.
- 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.
Azure Portal’ında oturum açın.
İzleyici'de arama yapıp açın.
Ayarlar altında Veri Toplama Kuralları'yı seçin.
Oluştur'u belirleyin.
Kaynak ekleme
Kaynak ekle'yi seçin.
Günlükleri toplamak için kullanmak istediğiniz sanal makineyi bulmak için filtreleri kullanın.
Sanal makineyi seçin.
Uygula’yı seçin.
İleri: Topla ve teslim'i seçin.
Veri kaynağı ekleme
Veri Kaynağı ekle'yi seçin.
Veri kaynağı türü için Linux syslog öğesini seçin.
En düşük günlük düzeyi için varsayılan değerleri LOG_DEBUG bırakın.
İleri: Hedef'i seçin.
Hedef ekleme
Hedef ekle'yi seçin.
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 Veri Kaynağı ekle'yi seçin.
Sonraki: Gözden geçirme ve oluşturma’yı seçin.
Kural oluşturun
- Oluştur'u belirleyin.
- 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.conf
yü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:
- En az katkıda bulunan haklarına sahip olduğunuz bir Log Analytics çalışma alanı.
- Veri toplama uç noktası.
- Çalışma alanında DCR nesneleri oluşturma izinleri.
- Syslog iletileri RFC standartlarına (RFC5424 veya RFC3164) uygun olmalıdır
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: