Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Monitor Agent installeert een uitvoerconfiguratie voor de Syslog-daemon van het systeem tijdens de installatie. Deze configuratie definieert hoe gebeurtenissen worden doorgestuurd van de daemon naar De Azure Monitor-agent en zich bevinden op:
-
/etc/rsyslog.d/10-azuremonitoragent-omfwd.confvoor rsyslog (de meeste Linux-distributies) -
/etc/syslog-ng/conf.d/azuremonitoragent-tcp.confvoor syslog-ng
De Azure Monitor-agent luistert op een TCP-poort (aangemeld bij /etc/opt/microsoft/azuremonitoragent/config-cache/syslog.port) om gebeurtenissen te ontvangen van rsyslog of syslog-ng. Deze gebeurtenissen worden gefilterd op basis van faciliteits- of ernstwaarden die zijn gedefinieerd in de gegevensverzamelingsregel (DCR) die zich in /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks/ bevindt. Gebeurtenissen die niet overeenkomen met de DCR-configuratie, worden verwijderd.
Notitie
Vóór versie 1.28 heeft Azure Monitor Agent een Unix-domeinsocket gebruikt in plaats van een TCP-poort om gebeurtenissen van rsyslog te ontvangen. De omfwd uitvoermodule in rsyslog biedt mechanismen voor spooling en opnieuw proberen voor verbeterde betrouwbaarheid.
De Azure Monitor-agent parseert binnenkomende Syslog-berichten op basis van RFC3164 en RFC5424 en ondersteunt ook andere indelingen. Het bepaalt het doeleindpunt voor elke gebeurtenis uit de DCR en probeert ze dienovereenkomstig te uploaden.
Notitie
Als de Azure Monitor-agent onbereikbaar is of vertragingen ondervindt, buffert de Syslog-daemon gebeurtenissen met behulp van de interne wachtrijen.
Als de Azure Monitor-agent geen gebeurtenissen uploadt die zijn ontvangen van rsyslog of syslog-ng, wordt deze in de wachtrij geplaatst met
/var/opt/microsoft/azuremonitoragent/eventsbehulp van het lokale persistentiemechanisme.
Problemen
U kunt de volgende problemen ondervinden:
Rsyslog-gegevens worden niet geüpload vanwege een probleem met volledige schijfruimte in Azure Monitor Agent voor Linux
Symptoom
Syslog-gegevens worden niet geüpload: wanneer u de foutenlogboeken /var/opt/microsoft/azuremonitoragent/log/mdsd.errinspecteert, ziet u vermeldingen over fout tijdens het invoegen van item in lokale permanente opslag ... Er is geen ruimte meer over op het apparaat... vergelijkbaar met het volgende fragment:
2021-11-23T18:15:10.9712760Z: Error while inserting item to Local persistent store syslog.error: IO error: No space left on device: While appending to file: /var/opt/microsoft/azuremonitoragent/events/syslog.error/000555.log: No space left on device
Oorzaak
Azure Monitor Agent voor Linux buffert gebeurtenissen vóór /var/opt/microsoft/azuremonitoragent/events opname. Bij een standaardinstallatie van Azure Monitor Agent voor Linux neemt deze map ~650 MB schijfruimte inactief. De grootte op de schijf neemt toe wanneer deze wordt belast met langdurige logboekregistratie. Het wordt ongeveer elke 60 seconden opgeschoond en vermindert terug naar ~650 MB wanneer de belasting weer inactief wordt.
Bevestig het probleem van een volle schijf.
De df opdracht toont bijna geen ruimte beschikbaar op /dev/sda1, zoals wordt weergegeven in de volgende uitvoer. U moet het regelitem onderzoeken dat overeenkomt met de logboekmap (bijvoorbeeld /var/log of /var/).
df -h
Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 720K 13G 1% /run
/dev/sda1 29G 29G 481M 99% /
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda15 105M 4.4M 100M 5% /boot/efi
/dev/sdb1 251G 61M 239G 1% /mnt
tmpfs 13G 0 13G 0% /run/user/1000
U kunt de du opdracht gebruiken om de schijf te controleren om te bepalen welke bestanden ervoor zorgen dat de schijf vol is. Voorbeeld:
cd /var/log
du -h syslog*
6.7G syslog
18G syslog.1
In sommige gevallen rapporteert du mogelijk geen grote bestanden of mappen. Het is mogelijk dat een bestand dat is gemarkeerd als (verwijderd) de ruimte inneemt. Dit kan gebeuren wanneer een proces probeert een bestand te verwijderen, maar een ander proces nog steeds het bestand heeft geopend.
U kunt de lsof opdracht gebruiken om te controleren op dergelijke bestanden. In het volgende voorbeeld zien we dat /var/log/syslog deze is gemarkeerd als verwijderd, maar dat neemt 3,6 GB schijfruimte in beslag. Het is niet verwijderd omdat er nog steeds een proces met PID 1484 is geopend.
sudo lsof +L1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NLINK NODE NAME
none 849 root txt REG 0,1 8632 0 16764 / (deleted)
rsyslogd 1484 syslog 14w REG 8,1 3601566564 0 35280 /var/log/syslog (deleted)
Standaardconfiguratie Rsyslog registreert alle faciliteiten in /var/log/
Op sommige populaire distributies (bijvoorbeeld Ubuntu 18.04 LTS) wordt rsyslog geleverd met een standaardconfiguratiebestand (/etc/rsyslog.d/50-default.conf), waarmee gebeurtenissen van bijna alle faciliteiten naar schijf worden geregistreerd./var/log/syslog Syslog-gebeurtenissen van de RedHat-familie worden opgeslagen onder /var/log/ maar in een ander bestand: /var/log/messages.
Azure Monitor-agent is niet afhankelijk van Syslog-gebeurtenissen die worden geregistreerd bij /var/log/. In plaats daarvan configureert het de rsyslog-service om gebeurtenissen rechtstreeks via een TCP-poort door te sturen naar het azuremonitoragent serviceproces (mdsd).
Oplossing: Hoge volumefaciliteiten verwijderen uit /etc/rsyslog.d/50-default.conf
Als u een groot logboekvolume verzendt via rsyslog en uw systeem is ingesteld om gebeurtenissen voor deze faciliteiten te registreren, kunt u overwegen de standaardconfiguratie rsyslog te wijzigen om logboekregistratie te voorkomen en op te slaan onder /var/log/. De gebeurtenissen voor deze faciliteit worden nog steeds doorgestuurd naar De Azure Monitor-agent omdat rsyslog een andere configuratie gebruikt voor het doorsturen in /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf.
Als u bijvoorbeeld gebeurtenissen van het loggen bij
local4of/var/log/syslogof/var/log/messageswilt verwijderen, wijzigt u deze regel in/etc/rsyslog.d/50-default.confuit dit fragment:*.*;auth,authpriv.none -/var/log/syslogAan dit fragment: voeg
local4.none;toe.*.*;local4.none;auth,authpriv.none -/var/log/syslogsudo systemctl restart rsyslog