Configurez rsyslog într-un mediu multi-tenant pentru a-l transmite către un server central. Deoarece este multilocat, aș dori să prefix numele de gazdă de pe primul server rsyslog cu un prefix specific clientului înainte de a fi transmis la serverul central. Am plănuit să setez manual prefixul, totuși, prefixul este configurat într-un alt fișier de pe server și dacă acest lucru ar putea fi adunat din acel fișier, ar fi și mai bine.
Deoarece primul server va fi retransmis de la mai multe gazde, antecedentele trebuie să fie o rescrie dinamică care să includă numele de gazdă original, mai degrabă decât o suprascriere hard-coded a aceluiași nume de gazdă pentru toate intrările, ceea ce am văzut în unele exemple.
În mod ideal, ceea ce încerc să fac este rezumat prin următorul pseudocod:
set de reguli(nume="myrule"){
set $hostname = "<prefix>-%HOSTNAME%"
action(type="omfwd" target="remote-ip")
}
Voi fi responsabil atât de releul intermediar, cât și de serverul central, dar fiecare releu poate găzdui mai mulți clienți, așa că nu cred că rescrierea se poate face pe serverul central, dar am control total asupra ambelor straturi. Fiecare client este conectat printr-o interfață dedicată și plănuiam un set de reguli separat atașat la o intrare configurată pentru fiecare interfață și setul de reguli să includă prefixul specific clientului. Din acest motiv, cred că configurația trebuie să fie pe releu, dar dacă există o modalitate diferită, atunci sunt dispus să încerc orice care îndeplinește obiectivul final de a face evenimentele identificabile de către client.
Motivul pentru care doriți să utilizați rescrierea numelui de gazdă este că aceasta este în concordanță cu modul în care sunt configurate alte instrumente în mediu și este foarte de dorit să păstrați o configurație omogenă. Cu toate acestea, dacă acest lucru nu este posibil, poate fi luată în considerare o altă metodă dacă prima nu este fezabilă din punct de vedere tehnic.
De exemplu, fiecare releu este conectat la mai mulți clienți prin tabele de rutare separate, iar clientul final are un nume de gazdă diferit, de ex. site1-sw1 sau site2-rtr2. Cu toate acestea, atunci problema este că prefixul clientului nu este în nume, deoarece acesta este referința noastră pentru a ști la ce client se referă dispozitivul. În alte sisteme redenumim aceste nume ca cust1-site1-sw1 și cust1-site2-rtr2, mai ales că poate exista un cust2-site2-rtr2, de exemplu. Vrem comportamentul echivalent în syslog.
Care este modul corect de a face asta?