Pag-setup sa usa ka Sentral nga Log Server nga adunay Rsyslog sa CentOS/RHEL 8


Aron ang mga administrador sa sistema makaila o maka-analisar sa mga problema sa CentOS 8 o RHEL 8 server, importante nga mahibaloan ug tan-awon ang mga panghitabo nga nahitabo sa server sa usa ka partikular nga yugto sa panahon gikan sa mga file sa log nga makita sa /var /log ang direktoryo sa sistema.

Ang Syslog (System Logging Protocol) nga sistema sa server mahimong molihok isip sentral nga log monitoring point sa usa ka network diin ang tanan nga mga server, network device, switch, routers ug internal nga mga serbisyo nga nagmugna og mga log, nalambigit man sa partikular nga internal nga isyu o mga mensahe nga informative. makapadala sa ilang mga troso.

Sa usa ka CentOS/RHEL 8 server, ang Rsyslog daemon mao ang pinaka importante nga log server nga na-preinstall sa default, gisundan sa Systemd Journal Daemon (journald).

Ang Rsyslog usa ka bukas nga gigikanan nga gamit, naugmad ingon usa ka serbisyo sa arkitektura sa kliyente/server ug mahimo nga makab-ot ang duha nga mga tahas nga independente. Mahimo kining modagan isip server ug tigomon ang tanang log nga gipasa sa ubang mga device sa network o mahimo kining modagan isip kliyente pinaagi sa pagpadala sa tanang internal nga panghitabo sa sistema nga na-log ngadto sa hilit nga Syslog server.

  1. Pag-instalar sa \CentOS 8.0″ uban sa Mga Screenshot
  2. Pag-instalar sa RHEL 8 nga adunay mga Screenshot

Aron ma-set up ang usa ka sentralisadong log server sa CentOS/RHEL 8 server, kinahanglan nimo nga susihon ang pagkumpirma nga ang /var partition adunay igo nga espasyo (pipila ka GB nga minimum) aron matipigan ang tanan nga natala nga mga file sa log sa sistema nga gipadala sa ubang mga aparato sa network. Ginarekomendar ko ikaw nga adunay bulag nga drive (LVM o RAID) aron i-mount ang /var/log/ direktoryo.

Giunsa ang Pag-configure sa Rsyslog Server sa CentOS/RHEL 8

1. Sama sa akong giingon, ang serbisyo sa Rsyslog gi-install ug awtomatiko nga nagdagan sa CentOS/RHEL 8 server. Aron mapamatud-an nga ang daemon nagdagan sa sistema, pagdagan ang mosunud nga mando.

# systemctl status rsyslog.service

Kung ang serbisyo wala nagdagan pinaagi sa default, padagana ang mosunud nga mando aron masugdan ang rsyslog daemon.

# systemctl start rsyslog.service

2. Kung ang Rsyslog utility wala ma-install pinaagi sa default sa sistema nga imong giplano nga gamiton isip sentralisadong logging server, padagana ang mosunod nga dnf command aron i-install ang rsyslog package ug sugdi ang daemon.

# dnf install rsyslog
# systemctl start rsyslog.service

3. Sa higayon nga ma-install na ang Rsyslog utility, mahimo na nimong i-configure ang rsyslog isip sentralisadong logging server pinaagi sa pag-abli sa main configuration file /etc/rsyslog.conf, aron makadawat og log messages para sa external nga mga kliyente.

# vi /etc/rsyslog.conf

Sa /etc/rsyslog.conf configuration file, pangitaa ug uncomment ang mosunod nga mga linya aron mahatagan ang UDP transport reception sa Rsyslog server pinaagi sa 514 port. Ang Rsyslog naggamit sa standard UDP protocol alang sa pagpasa sa log.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

4. Ang UDP protocol walay TCP overhead, ug kini naghimo sa data transmission nga mas paspas kay sa TCP protocol. Sa laing bahin, ang UDP protocol dili garantiya sa pagkakasaligan sa gipasa nga datos.

Bisan pa, kung gusto nimong gamiton ang TCP protocol alang sa pagdawat sa log kinahanglan nimo pangitaon ug i-uncomment ang mga musunod nga linya sa /etc/rsyslog.conf ang file sa pag-configure aron ma-configure ang Rsyslog daemon aron mabugkos ug maminaw sa usa ka socket sa TCP sa 514 port.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Karon paghimo ug bag-ong template para sa pagdawat ug remote nga mga mensahe, kay kini nga template mogiya sa lokal nga Rsyslog server, diin i-save ang nadawat nga mga mensahe nga gipadala sa Syslog network clients.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs

Ang $template RemoteLogs nga direktiba naggiya sa Rsyslog daemon sa pagtigom ug pagsulat sa tanang gipasa nga mga mensahe sa log ngadto sa lahi nga mga file, base sa ngalan sa kliyente ug hilit nga aplikasyon sa kliyente nga nagmugna sa mga mensahe base sa gilatid nga mga kabtangan nga gidugang sa template configuration: %HOSTNAME% ug %PROGRAMNAME%.

Ang tanan nga nadawat nga mga file sa log isulat sa lokal nga filesystem sa usa ka gigahin nga file nga gingalan sa hostname sa makina sa kliyente ug gitago sa/var/log/direktoryo.

Ang & ~ redirect nga lagda nagmando sa lokal nga Rsyslog server nga hunongon ang pagproseso sa nadawat nga mensahe sa log ug tangtangon ang mga mensahe (dili isulat kini sa internal nga log files).

Ang RemoteLogs usa ka arbitraryong ngalan nga gihatag niining template nga direktiba. Mahimo nimong gamiton ang bisan unsang ngalan nga gusto nimo nga labing angay alang sa imong template.

Aron ma-configure ang mas komplikado nga Rsyslog templates, basaha ang Rsyslog configuration file manual pinaagi sa pagpadagan sa man rsyslog.conf command o konsultaha ang Rsyslog online nga dokumentasyon.

# man rsyslog.conf

6. Human sa paghimo sa mga pagbag-o sa configuration sa ibabaw, mahimo nimong i-restart ang Rsyslog daemon aron magamit ang bag-ong mga kausaban pinaagi sa pagpadagan sa mosunod nga sugo.

# service rsyslog restart

7. Sa higayon nga imong gi-restart ang Rsyslog server, kini kinahanglan nga molihok isip sentralisadong log server ug magrekord sa mga mensahe gikan sa mga kliyente sa Syslog. Aron makumpirma ang Rsyslog network sockets, pagdagan ang grep utility aron ma-filter ang rsyslog string.

# netstat -tulpn | grep rsyslog 

Kung ang netstat command dili intall sa CentOS 8, mahimo nimo kini i-install gamit ang mosunod nga command.

# dnf whatprovides netstat
# dnf install net-tools

8. Kung ikaw adunay SELinux nga aktibo sa CentOS/RHEL 8, padagana ang mosunod nga sugo aron tugotan ang rsyslog traffic depende sa network socket type.

# semanage port -a -t syslogd_port_t -p udp 514
# semanage port -a -t syslogd_port_t -p tcp 514

Kung ang semanage command dili ma-install sa CentOS 8, mahimo nimo kini i-install gamit ang mosunod nga sugo.

# dnf whatprovides semanage
# dnf install policycoreutils-python-utils

9. Kon ikaw adunay firewall nga aktibo sa sistema, padagana ang mosunod nga sugo aron sa pagdugang sa gikinahanglan nga mga lagda sa pagtugot sa rsyslog trapiko sa mga pantalan sa Firewalld.

# firewall-cmd --permanent --add-port=514/tcp
# firewall-cmd --permanent --add-port=514/udp
# firewall-cmd --reload

Mahimo usab nimo limitahan ang umaabot nga mga koneksyon sa port 514 gikan sa whitelisted IP ranges sama sa gipakita.

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
# firewall-cmd --reload

Kana lang! Ang Rsyslog karon gi-configure isip usa ka sentralisadong log server ug makakolekta og mga troso gikan sa hilit nga mga kliyente. Sa sunod nga artikulo, atong makita kung unsaon pag-configure ang Rsyslog client sa CentOS/RHEL 8 server.