Giunsa Paghimo ang usa ka Sentral nga Log Server nga adunay Rsyslog sa CentOS/RHEL 7


Aron ang administrador sa sistema makaila o makasulbad sa problema sa CentOS 7 o RHEL 7 nga sistema sa server, kinahanglan nga mahibal-an ug tan-awon niini ang mga panghitabo nga nahitabo sa sistema sa usa ka piho nga yugto sa panahon gikan sa mga file sa log nga gitipigan sa sistema sa/var /log nga direktoryo.

Ang syslog server sa usa ka makina sa Linux mahimong molihok nga usa ka sentro nga monitoring point sa usa ka network diin ang tanan nga mga server, network device, router, switch ug kadaghanan sa ilang mga internal nga serbisyo nga nagpatunghag mga troso, bisan kung adunay kalabotan sa piho nga internal nga isyu o mga mensahe nga informative lang ang makapadala sa ilang mga log. .

Sa CentOS/RHEL 7 nga sistema, Rsyslog daemon mao ang nag-unang log server nga na-preinstall, gisundan sa Systemd Journal Daemon (journald).

Ang Rsyslog server sa pagtukod ingon usa ka serbisyo sa arkitektura sa kliyente/server ug mahimo’g makab-ot ang duha nga mga tahas nga dungan. Mahimo kining modagan isip server ug kolektahon 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 sa usa ka remote endpoint syslog server.

Kung ang rsyslog gi-configure ingon usa ka kliyente, ang mga log mahimong tipigan sa lokal sa mga file sa lokal nga filesystem o mahimong ipadala sa layo kaysa isulat kini sa mga file nga gitipigan sa makina o isulat ang mga log file sa mga panghitabo sa lokal ug ipadala kini sa usa ka hilit nga syslog server sa sa samang higayon.

Ang Syslog server naglihok sa bisan unsang mensahe sa log gamit ang mosunod nga laraw:

type (facility).priority (severity)  destination(where to send the log)

A. Ang pasilidad o tipo nga datos girepresentahan sa internal nga proseso sa sistema nga nagmugna sa mga mensahe. Sa Linux internal nga mga proseso (mga pasilidad) nga makamugna og mga log gi-standardize sama sa mosunod:

  • auth = mga mensahe nga namugna pinaagi sa mga proseso sa pag-authenticate (login).
  • cron= mga mensahe nga namugna pinaagi sa naka-iskedyul nga mga proseso (crontab).
  • daemon = mga mensahe nga gihimo sa mga daemon (internal nga serbisyo).
  • kernel = mga mensahe nga gihimo sa Linux Kernel mismo.
  • mail = mga mensahe nga gihimo sa usa ka mail server.
  • syslog = mga mensahe nga gihimo sa rsyslog daemon mismo.
  • lpr = mga mensahe nga gihimo sa mga lokal nga tig-imprenta o usa ka tig-imprinta nga server.
  • local0 – local7 = custom nga mga mensahe nga gipasabot sa usa ka administrador (local7 kasagaran gi-assign para sa Cisco o Windows).

B. Ang mga lebel sa prayoridad (kagrabe) gi-standardize usab. Ang matag prayoridad gi-assign nga adunay standard abbreviation ug numero sama sa gihulagway sa ubos. Ang ika-7 nga prayoridad mao ang mas taas nga lebel sa tanan.

  • emerg = Emergency – 0
  • alerto = Alerto – 1
  • err = Errors – 3
  • pahimangno = Pahimangno – 4
  • pahibalo = Pahibalo – 5
  • impormasyon = Impormasyon – 6
  • debug = Pag-debug – 7

Espesyal nga mga keyword sa Rsyslog:

  • * = tanang pasilidad o prayoridad
  • wala = ang mga pasilidad walay gihatag nga prayoridad Eg: mail.wala

C. Ang ikatulo nga bahin alang sa syslog schema girepresentahan sa direktiba nga destinasyon. Ang Rsyslog daemon mahimong magpadala sa mga mensahe sa log nga isulat sa usa ka file sa lokal nga filesystem (kasagaran sa usa ka file sa/var/log/direktoryo) o ipa-pipe sa laing lokal nga proseso o ipadala sa usa ka lokal nga user console (sa stdout) , o ipadala ang mensahe sa usa ka hilit nga syslog server pinaagi sa TCP/UDP protocol, o bisan isalikway ang mensahe sa /dev/null.

Aron ma-configure ang CentOS/RHEL 7 isip sentral nga Log Server, kinahanglan una natong susihon ug sigurohon nga ang /var partition diin ang tanang log file girekord igo nga dako (pipila ka GB nga minimum) aron ma-store ang tanang log files nga ipadala sa ubang mga device. Maayo nga desisyon ang paggamit ug bulag nga drive (LVM, RAID) aron i-mount ang /var/log/ directory.

  1. CentOS 7.3 Pamaagi sa Pag-instalar
  2. RHEL 7.3 Pamaagi sa Pag-instalar

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

1. Sa default, ang serbisyo sa Rsyslog awtomatik nga na-install ug kinahanglan nga modagan sa CentOS/RHEL 7. Aron masusi kung ang daemon nagsugod sa sistema, i-isyu ang mosunod nga sugo nga adunay mga pribilehiyo sa gamut.

# systemctl status rsyslog.service

Kung ang serbisyo dili nagdagan pinaagi sa default, ipatuman ang ubos nga mando aron masugdan ang rsyslog daemon.

# systemctl start rsyslog.service

2. Kung ang pakete sa rsyslog wala ma-install sa sistema nga gusto nimong gamiton ingon usa ka sentralisado nga server sa pag-log, i-isyu ang mosunod nga mando aron ma-install ang pakete sa rsyslog.

# yum install rsyslog

3. Ang unang lakang nga kinahanglan natong buhaton sa sistema aron ma-configure ang rsyslog daemon isip usa ka sentralisadong log server, aron kini makadawat og mga mensahe sa log alang sa mga eksternal nga kliyente, mao ang pag-abli ug pag-edit, gamit ang imong paborito nga text editor, ang nag-unang configuration file gikan sa /etc/rsyslog.conf, ingon nga gipresentar sa ubos nga kinutlo.

# vi /etc/rsyslog.conf

Sa rsyslog main configuration file, pangitaa ug uncomment ang mosunod nga mga linya (kuhaa ang hashtag # sign sa sinugdanan sa linya) aron mahatagan og UDP transport reception sa Rsyslog server pinaagi sa 514 port. Ang UDP mao ang sumbanan nga protocol nga gigamit alang sa pagpasa sa log sa Rsyslog.

$ModLoad imudp 
$UDPServerRun 514

4. Ang UDP protocol walay TCP overhead, nga naghimo niini nga mas paspas alang sa pagpadala sa datos kay sa TCP protocol. Sa laing bahin, ang UDP protocol wala magpasalig sa kasaligan sa gipasa nga datos.

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

$ModLoad imtcp 
$InputTCPServerRun 514 

5. Sa sunod nga lakang, ayaw pagsira sa file pa, paghimo og bag-ong template nga gamiton alang sa pagdawat sa hilit nga mga mensahe. Kini nga template magtudlo sa lokal nga Rsyslog server kung asa i-save ang nadawat nga mga mensahe nga ipadala sa mga kliyente sa syslog network. Ang template kinahanglang idugang sa dili pa magsugod ang GLOBAL DIRECTIVES block sama sa gihulagway sa ubos nga kinutlo.

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

Ang ibabaw sa $template RemoteLogs direktiba nagsugo sa Rsyslog daemon sa pagkolekta ug pagsulat sa tanang nadawat nga mga mensahe sa log ngadto sa lahi nga mga file, base sa ngalan sa makina sa kliyente ug sa hilit nga pasilidad sa kliyente (aplikasyon) nga nagmugna sa mga mensahe base sa gihubit nga mga kabtangan nga gipresentar sa configuration sa template : %HOSTNAME% ug %PROGRAMNAME%.

Ang tanan nga kini nga mga file sa log isulat sa lokal nga filesystem sa usa ka gipahinungod nga file nga gingalan sa hostname sa makina sa kliyente ug gitipigan 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 isalikway ang mga mensahe (dili isulat kini sa internal nga mga file sa log).

Ang RemoteLogs nga ngalan kay usa ka arbitraryong ngalan nga gihatag niining template nga direktiba. Mahimo nimong gamiton ang bisan unsang ngalan nga imong makit-an nga labing angay alang sa imong template.

Aron masulat ang tanang nadawat nga mga mensahe gikan sa mga kliyente sa usa ka log file nga ginganlan sunod sa IP Address sa hilit nga kliyente, nga walay pagsala sa pasilidad nga nagmugna sa mensahe, gamita ang ubos nga kinutlo.

$template FromIp,"/var/log/%FROMHOST-IP%.log" 
. ?FromIp & ~ 

Laing pananglitan sa usa ka template diin ang tanan nga mga mensahe nga adunay bandila sa pasilidad sa auth ma-log sa usa ka template nga ginganlag TmplAuth.

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

Sa ubos usa ka kinutlo nga porma sa usa ka kahulugan sa template gikan sa Rsyslog 7 server:

template(name="TmplMsg" type="string"
         string="/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log"
        )

Ang kinutlo sa template sa ibabaw mahimo usab nga isulat ingon:

template(name="TmplMsg" type="list") {
    constant(value="/var/log/remote/msg/")
    property(name="hostname")
    constant(value="/")
    property(name="programname" SecurePath="replace")
    constant(value=".log")
    }

Para magsulat ug komplikadong Rsyslog templates, basaha ang Rsyslog configuration file manual pinaagi sa pag-isyu sa man rsyslog.conf command o konsultaha ang Rsyslog online nga dokumentasyon.

6. Human nimo ma-edit ang Rsyslog configuration file gamit ang imong kaugalingon nga mga setting sama sa gipatin-aw sa ibabaw, i-restart ang Rsyslog daemon aron magamit ang mga pagbag-o pinaagi sa pag-isyu sa mosunod nga sugo:

# service rsyslog restart

7. Sa pagkakaron, ang Rsyslog server kinahanglan nga ma-configure aron molihok nga usa ka sentralisadong log server ug magrekord sa mga mensahe gikan sa mga kliyente sa syslog. Aron ma-verify ang mga socket sa network sa Rsyslog, padagana ang netstat command nga adunay mga pribilehiyo sa gamut ug gamita ang grep aron masala ang rsyslog string.

# netstat -tulpn | grep rsyslog 

8. Kung imong gipa-enable ang SELinux sa CentOS/RHEL 7, i-issue ang mosunod nga command para i-configure ang SELinux para tugotan ang rsyslog traffic depende sa network socket type.

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

9. Kung ang firewall gipaandar ug aktibo, padagana ang ubos nga sugo aron madugangan ang gikinahanglang mga lagda sa pag-abli sa rsyslog port sa Firewalld.

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

Kana lang! Ang Rsyslog karon gi-configure sa server mode ug mahimo nga magsentro sa mga troso gikan sa hilit nga mga kliyente. Sa sunod nga artikulo, atong tan-awon kon unsaon pag-configure ang Rsyslog client sa CentOS/RHEL 7 server.

Gamit ang Rsyslog server isip sentro sa pagmonitor sa mga remote log messages mahimo nimong inspeksyon ang mga log files ug maobserbahan ang kahimtang sa kahimsog sa mga kliyente o mas dali nga ma-debug ang mga isyu sa kliyente kung ang mga sistema nahagsa o naa sa ilawom sa usa ka matang sa pag-atake.