ວິທີການຕັ້ງຄ່າລູກຄ້າ Rsyslog ເພື່ອສົ່ງທ່ອນໄປທີ່ Rsyslog Server ໃນ CentOS 7


ການຈັດການໄມ້ທ່ອນແມ່ນ ໜຶ່ງ ໃນສ່ວນປະກອບທີ່ ສຳ ຄັນທີ່ສຸດໃນໂຄງສ້າງພື້ນຖານເຄືອຂ່າຍ. ຂໍ້ຄວາມຂອງໄມ້ທ່ອນແມ່ນຖືກສ້າງຂື້ນເລື້ອຍໆໂດຍຊອບແວຂອງລະບົບຫລາຍຢ່າງ, ເຊັ່ນວ່າລະບົບສາທາລະນູປະໂພກ, ແອັບພລິເຄຊັນ, daemons, ບໍລິການທີ່ກ່ຽວຂ້ອງກັບເຄືອຂ່າຍ, ແກ່ນ, ອຸປະກອນທາງກາຍະພາບແລະອື່ນໆ.

ບັນທຶກແຟ້ມເອກະສານພິສູດໃຫ້ເປັນປະໂຫຍດໃນກໍລະນີແກ້ໄຂບັນຫາລະບົບ Linux, ຕິດຕາມກວດກາລະບົບແລະກວດກາຄວາມເຂັ້ມແຂງຂອງລະບົບແລະບັນຫາຕ່າງໆ.

Rsyslog ແມ່ນໂປແກຼມບັນທຶກການເຂົ້າສູ່ລະບົບ Open Source, ເຊິ່ງແມ່ນກົນໄກການຕັດໄມ້ທີ່ນິຍົມທີ່ສຸດໃນ ຈຳ ນວນການແຈກຈ່າຍ Linux ຢ່າງຫຼວງຫຼາຍ. ມັນຍັງເປັນການບໍລິການຕັດໄມ້ແບບເລີ່ມຕົ້ນໃນ CentOS 7 ຫຼື RHEL 7.

Rsyslog daemon ໃນ CentOS ສາມາດຕັ້ງຄ່າໃຫ້ໃຊ້ງານເປັນ server ເພື່ອເກັບຂໍ້ມູນບັນທຶກຈາກຫລາຍອຸປະກອນເຄືອຂ່າຍ. ອຸປະກອນເຫຼົ່ານີ້ເຮັດ ໜ້າ ທີ່ເປັນລູກຄ້າແລະມີການຕັ້ງຄ່າເພື່ອສົ່ງຂໍ້ມູນບັນທຶກຂອງພວກເຂົາໄປທີ່ server rsyslog.

ຢ່າງໃດກໍ່ຕາມ, ບໍລິການ Rsyslog ຍັງສາມາດຕັ້ງຄ່າໄດ້ແລະເລີ່ມຕົ້ນໃນຮູບແບບລູກຄ້າ. ການຕັ້ງຄ່ານີ້ແນະ ນຳ ໃຫ້ rsyslog daemon ສົ່ງຕໍ່ຂໍ້ຄວາມ log ໄປຍັງ server Rsyslog ຫ່າງໄກສອກຫຼີກໂດຍໃຊ້ TCP ຫຼື UDP protocols ການຂົນສົ່ງ. ບໍລິການ Rsyslog ຍັງສາມາດຕັ້ງຄ່າໃຫ້ໃຊ້ງານເປັນລູກຄ້າແລະເປັນ server ໃນເວລາດຽວກັນ.

ໃນບົດແນະ ນຳ ນີ້ພວກເຮົາຈະອະທິບາຍວິທີການຕັ້ງຄ່າ daemon CentOS/RHEL 7 Rsyslog ເພື່ອສົ່ງຂໍ້ຄວາມບັນທຶກໄປຍັງ server Rsyslog ຫ່າງໄກສອກຫຼີກ. ການຕິດຕັ້ງນີ້ຮັບປະກັນວ່າພື້ນທີ່ດິດຂອງເຄື່ອງຂອງທ່ານສາມາດຖືກເກັບຮັກສາໄວ້ເພື່ອເກັບຂໍ້ມູນອື່ນໆ.

ສະຖານທີ່ທີ່ເອກະສານບັນທຶກເກືອບທັງ ໝົດ ຖືກຂຽນໂດຍຄ່າເລີ່ມຕົ້ນໃນ CentOS ແມ່ນເສັ້ນທາງລະບົບ /var . ມັນຍັງແນະ ນຳ ໃຫ້ສ້າງພາທິຊັນແຍກຕ່າງຫາກ ສຳ ລັບໄດເລກະທໍລີ /var , ເຊິ່ງສາມາດຂະຫຍາຍໄດ້ແບບເຄື່ອນໄຫວ, ເພື່ອບໍ່ເຮັດໃຫ້ສ່ວນແບ່ງ /(ຮາກ) ໝົດ ໄປ.

ລູກຄ້າ Rsyslog ສະເຫມີສົ່ງຂໍ້ມູນບັນທຶກໃນຂໍ້ຄວາມ ທຳ ມະດາ, ຖ້າບໍ່ໄດ້ລະບຸຢ່າງອື່ນ. ທ່ານບໍ່ຄວນຕັ້ງຄ່າລູກຄ້າ Rsyslog ເພື່ອສົ່ງຂໍ້ຄວາມບັນທຶກຜ່ານອິນເຕີເນັດຫລືເຄືອຂ່າຍທີ່ບໍ່ຢູ່ພາຍໃຕ້ການຄວບຄຸມທີ່ສົມບູນຂອງທ່ານ.

<

  • CentOS 7.3 ຂັ້ນຕອນການຕິດຕັ້ງ
  • RHEL 7.3 ຂັ້ນຕອນການຕິດຕັ້ງ
  • ຕັ້ງຄ່າ Server Rsyslog ໃນ CentOS/RHEL 7
  • ຂັ້ນຕອນທີ 1: ກວດສອບການຕິດຕັ້ງ Rsyslog

    1. ໂດຍຄ່າເລີ່ມຕົ້ນ, Rsyslog daemon ຖືກຕິດຕັ້ງແລະແລ່ນຢູ່ໃນລະບົບ CentOS 7 ແລ້ວ. ເພື່ອກວດສອບວ່າການບໍລິການ rsyslog ມີຢູ່ໃນລະບົບ, ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # rpm -q | grep rsyslog
    # rsyslogd -v
    

    2. ຖ້າຊຸດ Rsyslog ບໍ່ໄດ້ຖືກຕິດຕັ້ງຢູ່ໃນ CentOS, ໃຫ້ປະຕິບັດ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອຕິດຕັ້ງບໍລິການ.

    # yum install rsyslog
    

    ຂັ້ນຕອນທີ 2: ຕັ້ງຄ່າການບໍລິການ Rsyslog ເປັນລູກຄ້າ

    3. ເພື່ອບັງຄັບໃຊ້ daemon Rsyslog ທີ່ຕິດຕັ້ງໃນລະບົບ CentOS 7 ເພື່ອເຮັດ ໜ້າ ທີ່ເປັນລູກຄ້າ log ແລະເສັ້ນທາງທັງ ໝົດ ຂອງຂໍ້ຄວາມບັນທຶກທີ່ຜະລິດຢູ່ໃນທ້ອງຖິ່ນໄປຍັງ server Rsyslog ຫ່າງໄກສອກຫຼີກ, ດັດແປງເອກະສານການຕັ້ງຄ່າ rsyslog ດັ່ງຕໍ່ໄປນີ້:

    ຫນ້າທໍາອິດເປີດເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍສໍາລັບການດັດແກ້.

    # vi /etc/rsyslog.conf
    

    ຫຼັງຈາກນັ້ນ, ໃຫ້ຕື່ມເສັ້ນຂ້າງລຸ່ມຢູ່ໃນຕອນທ້າຍຂອງເອກະສານດັ່ງທີ່ສະແດງຢູ່ໃນບົດຄັດຫຍໍ້ລຸ່ມນີ້.

    *. *  @192.168.10.254:514
    

    ຢູ່ໃນເສັ້ນຂ້າງເທິງນີ້ເຮັດໃຫ້ແນ່ໃຈວ່າທ່ານທົດແທນທີ່ຢູ່ IP ຂອງ FQDN ຂອງເຊີຟເວີ rsyslog ຫ່າງໄກສອກຫຼີກຕາມຄວາມ ເໝາະ ສົມ. ສາຍຂ້າງເທິງແນະ ນຳ ໃຫ້ Rsyslog daemon ສົ່ງຂໍ້ຄວາມບັນທຶກທັງ ໝົດ, ບໍ່ວ່າຈະເປັນສິ່ງ ອຳ ນວຍຄວາມສະດວກຫລືຄວາມຮ້າຍແຮງ, ໃຫ້ກັບເຈົ້າພາບທີ່ມີ IP 192.168.10.254 ຜ່ານ port 514/UDP.

    4. ຖ້າເຄື່ອງແມ່ຂ່າຍບັນທຶກຫ່າງໄກສອກຫຼີກຖືກຕັ້ງຄ່າໃຫ້ຟັງພຽງແຕ່ເຊື່ອມຕໍ່ TCP ຫຼືທ່ານຕ້ອງການໃຊ້ໂປແກຼມເຄືອຂ່າຍການຂົນສົ່ງທີ່ ໜ້າ ເຊື່ອຖື, ເຊັ່ນ TCP, ຕື່ມຕົວອັກສອນອື່ນ @ ຢູ່ທາງ ໜ້າ ຂອງໂຮດຫ່າງໄກສອກຫຼີກດັ່ງທີ່ສະແດງຢູ່ໃນ ຕົວຢ່າງລຸ່ມນີ້:

    *. *  @@logs.domain.lan:514
    

    Linux rsyslog ຍັງອະນຸຍາດໃຫ້ມີຕົວອັກສອນພິເສດບາງຢ່າງເຊັ່ນ: = ຫຼື ! , ເຊິ່ງສາມາດ ນຳ ໃຊ້ໃນລະດັບບຸລິມະສິດເພື່ອສະແດງ“ ບຸລິມະສິດນີ້” ເທົ່ານັ້ນ ສຳ ລັບເຄື່ອງ ໝາຍ ທີ່ເທົ່າທຽມກັນແລະ“ ບໍ່ແມ່ນ ບູລິມະສິດນີ້ຫຼືສູງກວ່ານີ້”.

    ບາງຕົວຢ່າງຂອງຄຸນວຸດທິໃນລະດັບບຸລິມະສິດຂອງ Rsyslog ໃນ CentOS 7:

    • kern.info = ບັນທຶກຂໍ້ມູນ kernel ທີ່ມີບູລິມະສິດຂໍ້ມູນແລະສູງກວ່າ.
    • ແກ່ນ. = ຂໍ້ມູນ = ມີພຽງແຕ່ຂໍ້ຄວາມແກ່ນແກ່ນທີ່ມີຄວາມ ສຳ ຄັນຕໍ່ຂໍ້ມູນ.
    • kern.info; kern.! err = ພຽງແຕ່ຂໍ້ຄວາມ kernel ທີ່ມີຂໍ້ມູນ, ແຈ້ງການແລະການເຕືອນໄພອັນດັບ ທຳ ອິດ.
    • kern.debug; kern.! = ຄຳ ສັ່ງ = ທຸກໆບຸລິມະສິດຂອງ kernel ຍົກເວັ້ນ ຄຳ ເຕືອນ.
    • ແກ່ນ. * = ທຸກໆຂໍ້ຄວາມ ສຳ ຄັນຂອງແກ່ນ.
    • kern.none = ຢ່າເຊັນເຂົ້າຂໍ້ຄວາມກ່ຽວກັບສິ່ງ ອຳ ນວຍຄວາມສະດວກໃດໆກ່ຽວຂ້ອງກັບ kernel ໂດຍບໍ່ສົນເລື່ອງບູລິມະສິດ.

    ຍົກຕົວຢ່າງ, ສົມມຸດວ່າທ່ານຕ້ອງການສົ່ງຂໍ້ຄວາມສະຖານທີ່ສະເພາະເຈາະຈົງໃຫ້ກັບເຊີບເວີບັນທຶກຫ່າງໄກສອກຫຼີກ, ເຊັ່ນວ່າຂໍ້ຄວາມທັງ ໝົດ ທີ່ກ່ຽວຂ້ອງໂດຍບໍ່ ຄຳ ນຶງເຖິງລະດັບບຸລິມະສິດ, ເພີ່ມເສັ້ນທາງລຸ່ມນີ້ໃສ່ແຟ້ມການຕັ້ງຄ່າ rsyslog:

    mail.* @192.168.10.254:514 
    

    5. ສຸດທ້າຍ, ເພື່ອ ນຳ ໃຊ້ການຕັ້ງຄ່າ ໃໝ່, ການບໍລິການ Rsyslog ຕ້ອງໄດ້ເລີ່ມຕົ້ນ ໃໝ່ ເພື່ອໃຫ້ daemon ສາມາດເລືອກເອົາການປ່ຽນແປງ, ໂດຍການ ດຳ ເນີນການ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:

    # systemctl restart rsyslog.service
    

    6. ຖ້າມີບາງເຫດຜົນ Rsyslog daemon ບໍ່ຖືກເປີດໃຊ້ໃນຊ່ວງເວລາໃສ່ເກີບ, ໃຫ້ອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອເຮັດໃຫ້ລະບົບການບໍລິການກວ້າງຂື້ນ:

    # systemctl enable rsyslog.service
    

    ຂັ້ນຕອນທີ 3: ສົ່ງ Apache ແລະ Nginx Logs ໄປທີ່ Server Log Log ຫ່າງໄກສອກຫຼີກ

    ເຄື່ອງແມ່ຂ່າຍຂອງ Apache HTTP ສາມາດໄດ້ຮັບການຕັ້ງຄ່າເພື່ອສົ່ງຂໍ້ຄວາມບັນທຶກໄປຍັງ server syslog ຫ່າງໄກສອກຫຼີກໂດຍການເພີ່ມເສັ້ນຕໍ່ໄປນີ້ໃນແຟ້ມການຕັ້ງຄ່າຕົ້ນຕໍຂອງມັນດັ່ງທີ່ສະແດງຢູ່ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້.

    # vi /etc/httpd/conf/httpd.conf
    

    ໃນແຟ້ມເອກະສານ Apache ຕົ້ນຕໍເພີ່ມເສັ້ນຂ້າງລຸ່ມນີ້.

    CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined
    

    ສາຍດັ່ງກ່າວຈະບັງຄັບໃຊ້ HTTP daemon ເພື່ອຂຽນຂໍ້ມູນບັນທຶກພາຍໃນເຂົ້າໄປໃນແຟ້ມ log file ຂອງລະບົບ, ແຕ່ຍັງ ດຳ ເນີນການສົ່ງຂໍ້ຄວາມຕື່ມອີກຜ່ານທໍ່ເພື່ອ ນຳ ໃຊ້ logger utility ເຊິ່ງຈະສົ່ງພວກມັນໄປທີ່ server syslog ຫ່າງໄກ, ໂດຍ ໝາຍ ວ່າມັນມາຈາກ local1 ສະຖານທີ່.

    8. ຖ້າທ່ານຕ້ອງການ ນຳ ໃຊ້ຂໍ້ມູນບັນທຶກຂໍ້ຜິດພາດຂອງ Apache ໂດຍກົງໃຫ້ກັບ server syslog ຫ່າງໄກສອກຫຼີກ, ໃຫ້ເພີ່ມກົດລະບຽບ ໃໝ່ ຕາມທີ່ໄດ້ ນຳ ສະ ເໜີ ໃນຕົວຢ່າງຂ້າງເທິງ, ແຕ່ໃຫ້ແນ່ໃຈວ່າຕ້ອງປ່ຽນຊື່ຂອງ httpd log file ແລະລະດັບຄວາມຮຸນແຮງຂອງ file log ໃສ່ ບູລິມະສິດຄວາມຜິດພາດ, ດັ່ງທີ່ສະແດງຢູ່ໃນຕົວຢ່າງຕໍ່ໄປນີ້:

    ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"
    

    9. ເມື່ອທ່ານໄດ້ເພີ່ມສາຍຂ້າງເທິງ, ທ່ານ ຈຳ ເປັນຕ້ອງເລີ່ມ daemon Apache ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ, ໂດຍອອກ ຄຳ ສັ່ງດັ່ງຕໍ່ໄປນີ້:

    # systemctl restart httpd.service                 
    

    10. ເປັນເວີຊັ່ນ 1.7.1, ເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Nginx ມີຄວາມສາມາດໃນການສ້າງຂໍ້ຄວາມຂອງມັນເຂົ້າໃນ server syslog ຫ່າງໄກສອກຫຼີກ, ໂດຍເພີ່ມລະຫັດສາຍຕໍ່ໄປນີ້ໃນແຟ້ມການຕັ້ງຄ່າ nginx.

    error_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx,severity=error;
    access_log syslog:server=192.168.10.254:514,facility=local7,tag=nginx,severity=info main;
    

    ສຳ ລັບເຊີຟເວີ IPv6, ໃຊ້ຮູບແບບ syntax ຕໍ່ໄປນີ້ເພື່ອໃສ່ທີ່ຢູ່ IPv6.

    access_log syslog:server=[7101:dc7::9]:514,facility=local7,tag=nginx,severity=info;
    

    11. ຢູ່ໃນ server ຫ່າງໄກສອກຫຼີກ Rsyslog ທ່ານ ຈຳ ເປັນຕ້ອງເຮັດການປ່ຽນແປງຕໍ່ໄປນີ້ກັບເອກະສານການຕັ້ງຄ່າ rsyslog, ເພື່ອຈະໄດ້ຮັບບັນທຶກທີ່ສົ່ງໂດຍ server web server.

    local1.* @Apache_IP_address:514
    

    ຫມົດເທົ່ານີ້! ທ່ານໄດ້ຕັ້ງຄ່າ ສຳ ເລັດການຕັ້ງຄ່າ Rsyslog daemon ເພື່ອເຮັດວຽກໃນຮູບແບບຂອງລູກຄ້າແລະ, ທ່ານຍັງໄດ້ແນະ ນຳ ໃຫ້ server HTTP ຫຼື Nginx ສົ່ງຕໍ່ຂໍ້ຄວາມບັນທຶກຂອງມັນໄປຍັງ server syslog ຫ່າງໄກສອກຫຼີກ.

    ໃນກໍລະນີທີ່ທ່ານລະບົບລົ້ມລະລາຍ, ທ່ານຄວນຈະສາມາດສືບສວນບັນຫາໄດ້ໂດຍການກວດສອບເນື້ອຫາໄຟລ໌ບັນທຶກທີ່ເກັບຢູ່ໃນ server syslog ຫ່າງໄກສອກຫຼີກ.