LoongCollector kullanarak bir ECS örneğinden Nginx günlüklerini Simple Log Service (SLS) hizmetine toplayın. 30 dakika içinde günlük toplamayı yapılandırabilir, verileri SQL ile analiz edebilir, bir panoyu görüntüleyebilir, uyarıları ayarlayabilir ve ücretlerden kaçınmak için kaynakları temizleyebilirsiniz.
Ön koşullar
SLS hizmetini etkinleştirin ve bir hesap hazırlayın
SLS hizmetini etkinleştirin: İlk kez kullanıyorsanız, Simple Log Service konsolu üzerinde oturum açın ve ekrandaki talimatları izleyerek hizmeti etkinleştirin.
-
Bir hesap hazırlayın:
Alibaba Cloud hesabı: Varsayılan olarak tam izinlere sahiptir.
-
RAM kullanıcısı: Bir RAM kullanıcısı kullanıyorsanız, gerekli izin ilkelerini vermeniz gerekir:
AliyunLogFullAccess: Projeler ve logstore'lar gibi SLS kaynaklarını oluşturma ve yönetme izinleri verir.AliyunECSFullAccess: Bir ECS örneğine toplama aracısını yüklemek için izinler verir.AliyunOOSFullAccess: Operation Orchestration Service (OOS) aracılığıyla bir ECS örneğine toplama aracısını otomatik olarak yüklemek için izinler verir.
Üretim ortamında, RAM kullanıcısı izinleri üzerinde daha ayrıntılı kontrol sağlamak için özel izin ilkeleri oluşturabilirsiniz .
Bir ECS örneği hazırlayın
ECS örneği güvenlik grubunun 80 numaralı bağlantı noktasındaki (HTTP) ve 443 numaralı bağlantı noktasındaki (HTTPS) giden trafiğe izin verdiğinden emin olun.
Sahte günlükler oluşturun
-
generate_nginx_logs.shadlı bir betik dosyası oluşturun ve aşağıdaki içeriği yapıştırın. Bu betik, her 5 saniyede bir standart bir Nginx erişim günlüğü girdisini/var/log/nginx/access.logdosyasına yazar. Çalıştırma izinleri verin:
chmod +x generate_nginx_logs.sh.Betik arka planda çalıştırın:
nohup ./generate_nginx_logs.sh &.
Proje ve logstore oluşturun
Bir proje, SLS içindeki verileri izole eder ve yönetir. Bir logstore, bir proje içindeki günlük verilerini tutar.
Simple Log Service konsolunda oturum açın.
-
Create Project seçeneğini tıklayın:
Region: Günlükleri iç ağ üzerinden toplamak için ECS örneğinizle aynı bölgeyi seçin.
Project Name: Genel olarak benzersiz bir ad girin, örneğin
nginx-quickstart-abc.
Diğer yapılandırmalar için varsayılan ayarları koruyun ve Create seçeneğini tıklayın.
Proje oluşturulduktan sonra, Create Logstore seçeneğini tıklayın.
-
Bir Logstore Name girin (örneğin,
nginx-access-log), diğer yapılandırmalar için varsayılan ayarları koruyun ve OK seçeneğini tıklayın.Varsayılan olarak, Standard bir logstore oluşturulur ve bu logstore yazılan veri hacmine göre faturalandırılır .
LoongCollector yükleyin
Logstore oluşturulduktan sonra, onay iletişim kutusunda OK seçeneğini tıklayarak Quick Data Import panelini açın.
Nginx - Text Logs kartında, Integrate Now seçeneğini tıklayın.
-
Machine Group Configurations:
Scenario: Servers
Installation Environment: ECS
Create Machine Group seçeneğini tıklayın. Açılan panelde hedef ECS örneğini seçin.
-
Install and Create Machine Group seçeneğini tıklayın. Yükleme başarılı olduktan sonra, makine grubu için bir Name girin, örneğin
my-nginx-serverve ardından OK seçeneğini tıklayın.NotYükleme başarısız olursa veya beklemede kalırsa, ECS bölgesinin proje bölgesiyle aynı olduğundan emin olun.
-
Heartbeat durumu kontrolüne devam etmek için Next seçeneğini tıklayın.
İlk kez bir makine grubu oluşturduğunuzda, heartbeat durumu FAIL ise Automatic Retry seçeneğini tıklayın. Durum yaklaşık iki dakika içinde OK olarak değişir.
Toplama yapılandırması oluşturun
-
Heartbeat durumu OK olduktan sonra, Next seçeneğini tıklayarak Logtail Configurations sayfasına gidin:
: Yapılandırma için bir ad girin, örneğin
nginx-access-log-config.: İlk kutuya
/var/log/nginxve ikinci kutuyaaccess.loggirin.-
Processor Configurations:
-
Log Sample: Add Sample Log seçeneğini tıklayın ve bir örnek günlük girdisi yapıştırın:
192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36" -
Processing Method: Data Parsing (NGINX Mode) seçeneğini tıklayın. NGINX Log Configuration bölümünde, aşağıdaki içeriği kopyalayıp yapıştırarak log_format yapılandırmasını yapın. Ardından, Confirm seçeneğini tıklayın.
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $request_time $request_length';Üretim ortamında, burada belirtilen
log_formatdeğeri Nginx yapılandırma dosyanızdaki (genellikle/etc/nginx/nginx.confiçinde) tanımla eşleşmelidir.Günlük ayrıştırma örneği:
Ham günlük
Yapılandırılmış günlük
192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36"body_bytes_sent: 368 http_referer: - http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.x.x Safari/537.36 remote_addr:192.168.*.* remote_user: - request_length: 514 request_method: GET request_time: 0.000 request_uri: /nginx-logo.png status: 200 time_local: 15/Apr/2025:16:40:00
-
Next seçeneğini tıklayarak Query and Analysis Configurations sayfasına gidin. Toplama yapılandırmasının etkili olması yaklaşık 1 dakika sürer. Automatic Refresh seçeneğini tıklayın. Önizleme verileri, yapılandırmanın etkili olduğunu gösterir.
Günlükleri sorgulayın ve analiz edin
End seçeneğini tıklayarak End sayfasına gidin ve ardından Query Log seçeneğini tıklayın. Hedef logstore'un sorgu ve analiz sayfasına yönlendirilirsiniz. Yapılandırılmış günlüklerden temel ölçümleri çıkarmak için SQL kullanın. Zaman aralığını Last 15 Minutes olarak ayarlayın:
Bir hata açılır penceresi görünürse, dizin henüz yapılandırılmamış demektir. Kapatın ve access.log dosyasından günlük içeriğini görüntüleyebilene kadar yaklaşık 1 dakika bekleyin.
-
Örnek 1: Toplam sayfa görüntülemesi (PV)
Belirtilen zaman aralığındaki toplam günlük girdisi sayısını hesaplayın.
* | SELECT count(*) AS pv -
Örnek 2: Dakika başına istekler ve hata oranı
Dakika başına toplam istekleri, hata isteklerini (HTTP durum kodu ≥ 400) ve hata oranını hesaplayın.
* | SELECT date_trunc('minute', __time__) as time, count(1) as total_requests, count_if(status >= 400) as error_requests, round(count_if(status >= 400) * 100.0 / count(1), 2) as error_rate GROUP BY time ORDER BY time DESC LIMIT 100 -
Örnek 3: İstek yöntemine göre PV'ler (GET, POST vb.)
Sayfa görüntülemelerini dakikaya ve istek yöntemine (GET, POST vb.) göre gruplayın ve sayın.
* | SELECT date_format(minute, '%m-%d %H:%i') AS time, request_method, pv FROM ( SELECT date_trunc('minute', __time__) AS minute, request_method, count(*) AS pv FROM log GROUP BY minute, request_method ) ORDER BY minute ASC LIMIT 10000
Verileri bir panoda görselleştirin
Nginx ayrıştırma işlemcisini yapılandırdıktan sonra, SLS otomatik olarak nginx-access-log_Nginx Access Log adlı önceden ayarlanmış bir pano oluşturur.
Sol gezinme bölmesinde,
seçeneğini belirleyin.Temel ölçümler için grafikleri görüntülemek üzere pano adına tıklayın: PV'ler, UV'ler, hata oranı ve istek yöntemi dağılımı.
İş ihtiyaçlarınıza göre grafikleri özelleştirin.

İzleme ve uyarıları yapılandırın
Hatalarda ani artış gibi anormal davranışlar gerçekleştiğinde bildirim almak için bir uyarı kuralı oluşturun.
Sol gezinme bölmesinde,
Alerts seçeneğini tıklayın.-
Bir eylem ilkesi oluşturun:
sekmesinde, Create seçeneğini tıklayın.
ID ve Name değerlerini yapılandırın (örneğin,
send-notification-to-admin).Primary Action Policy alanında,
Action Group seçeneğini tıklayın.Bir Notification Method seçin (örneğin, SMS), Recipient değerini yapılandırın ve bir Alert Template seçin.
Confirm seçeneğini tıklayın.
-
Bir uyarı kuralı oluşturun:
Alert Monitoring Rule sekmesine geçiş yapın ve Create Alert seçeneğini tıklayın.
Kural adı: Açıklayıcı bir ad girin, örneğin
Too many server 5xx errors.-
Query Statistics: Add seçeneğini tıklayın ve sorgu koşullarını yapılandırın.
Logstore:
nginx-access-logseçeneğini belirleyin.Query Time Range: 15 minutes (Relative).
:
status >= 500 | SELECT *girin.Verileri sorgulayabildiğinizi onaylamak için Preview seçeneğini tıklayın ve ardından OK seçeneğini tıklayın.
-
Trigger Condition: Specific number of entries değeri >100 olduğunda bir Critical uyarısı tetiklenecek şekilde koşulu ayarlayın.
Bu yapılandırma, 15 dakika içinde 100'den fazla 5xx hatası oluşursa bir uyarı tetikler.
-
: SLS Notification seçeneğini belirleyin ve Enable edin.
Action Policy: Önceki adımda oluşturduğunuz eylem ilkesini seçin.
Repeat Interval: Tekrarlanan bildirimleri önlemek için 15 dakika olarak ayarlayın.
Uyarı kuralını kaydetmek için OK seçeneğini tıklayın.
Doğrulama: Tetikleme koşulu karşılandığında, yapılandırılmış bildirim kanalı bir uyarı alır. Tetiklenen tüm uyarıları Alert History sayfasında görüntüleyebilirsiniz.
Kaynak temizleme
Devam eden ücretlerden kaçınmak için bu eğitimde oluşturulan tüm kaynakları temizleyin.
-
Günlük oluşturma betiğini durdurun
ECS örneğinde oturum açın ve arka plan betiğini durdurmak için aşağıdaki komutu çalıştırın.
kill $(ps aux | grep '[g]enerate_nginx_logs.sh' | awk '{print $2}') -
LoongCollector kaldırın (isteğe bağlı)
-
${region_id}değerinicn-hangzhouile değiştirin veya en iyi performans için${region_id}değerini ECS örneğinizin bölge kimliği ile değiştirin.wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh; -
Kaldırma komutunu çalıştırın.
chmod +x loongcollector.sh; sudo ./loongcollector.sh uninstall;
-
-
Projeyi silin
Simple Log Service konsolunun proje listesi sayfasında, oluşturduğunuz projeyi bulun, örneğin
nginx-quickstart-xxx.Actions sütununda, Delete seçeneğini tıklayın.
Açılan panelde, proje adını girin ve silme nedenini seçin.
OK seçeneğini tıklayın. Bir projenin silinmesi, logstore'lar, toplama yapılandırmaları, panolar ve uyarı kuralları dahil olmak üzere ilişkili tüm kaynakları kaldırır.
UyarıBir projenin silinmesi, tüm günlük verilerini ve yapılandırmalarını kalıcı olarak kaldırır. Bu işlem geri alınamaz.
Sonraki adımlar
Artık günlükleri topladığınız, sorguladığınız, görselleştirdiğiniz ve izlediğiniz için daha fazla bilgi edinmek amacıyla aşağıdaki kaynakları keşfedin:
Projeler ve logstore'lar: temel kaynak kavramları.
Veri toplama yöntemleri: senaryonuz için doğru yöntemi seçin.
Depolama kaynak hiyerarşisi: kaynak yaşam döngüsünü ve parça tahsisini planlayın.
SSS
Toplamadan sonra tutarsız günlük zamanı
Varsayılan olarak, __time__ alanı sunucu varış zamanını kullanır. Orijinal günlükten zaman damgasını kullanmak için toplama yapılandırmasına bir zaman ayrıştırma eklentisi ekleyin.
Proje ve logstore oluşturma ücretleri
Bir logstore oluşturmak varsayılan olarak parça kaynaklarını ayırır ve bu da aktif parça kira ücretlerine yol açabilir. Neden aktif parça kira ücretlerinden ücretlendiriliyorum?
Günlük toplama hatalarının giderilmesi
Logtail ile günlük toplama, anormal Logtail heartbeats, toplama hataları veya yanlış Logtail yapılandırmaları nedeniyle başarısız olabilir. Logtail günlük toplama hatalarının giderilmesi.
Günlükleri analiz etme hatası
Günlük analizi, istatistik özelliği etkinleştirilmiş alan dizinleri gerektirir. Logstore'unuzun dizin yapılandırmasını doğrulayın.
Faturalandırmayı durdurma
Simple Log Service etkinleştirildikten sonra devre dışı bırakılamaz. Hizmeti artık kullanmak istemiyorsanız, hesabınız altındaki tüm projeleri silerek faturalandırmayı durdurabilirsiniz.