Elastic – send logs from Cisco IOS

By | 03/07/2023

Last Updated on 03/07/2023 by administrator

Elastic – send logs from Cisco IOS

Elastic – send logs from Cisco IOS

Prerekvizita:

Prerekvizita pro tento návod je Instalace Ubuntu Elasticsearch Kibana Logstash Filebeat (Elastic Stack)

Instalace Ubuntu Elasticsearch Kibana Logstash Filebeat (Elastic Stack)

Motivace:

Návod ukazuje, jak nastavit zasílání logů z Cisco zařízení běžící pod IOS na Elastic server, resp. na Filebeat.

OS:

Instalace byla prováděna na Ubuntu 22.04 LTS pro Elasticsearch 8.8.1. Vše konkrétně otestováno přes VirtualBox 7.0.8.

Implementace:

Filebeat obsahuje mnoho modulů, nicméně v tomto případě bude použitý jen modul cisco, který sbírá a zpracovává (parsuje) a to díky službě logování, která je běžnou součástí Linuxových distribucí. Pro povolení modulu cisco použít příkaz níže:

sudo filebeat modules enable cisco

Příkaz níže spustí příkaz pro nastavení Filebeat a –pipelines povolí vytvoření předdefinovaných konfiguračních pipelines pro zpracování logů, přepínač –module cisco inicializuje modul cisco:

sudo filebeat setup --pipelines --modules cisco

Výstup příkazu sudo filebeat setup –pipelines –modules cisco ukáže následujicí hlášku:

Exiting: module cisco is configured but has no enabled filesets

Seznam všech dostupných modulů lze vidět příkazem:

sudo filebeat modules list

Částečný výstup příkazu sudo filebeat modules list ukazuje, že byl povolený modul cisco:

Enabled:
cisco
system

Disabled:
activemq
apache
auditd
aws
awsfargate
azure
barracuda
...

Přejít do souboru cisco.yml v adresáři /etc/filebeat/modules.d/:

vi /etc/filebeat/modules.d/cisco.yml

a nastavit v souboru cisco.yml ty parametry, které jsou označené boldem:

 ios:
    enabled: true

    # Set which input to use between syslog (default) or file.
    #var.input: syslog

    # The interface to listen to syslog traffic. Defaults to
    # localhost. Set to 0.0.0.0 to bind to all available interfaces.
    #var.syslog_host: localhost
    var.syslog_host: 0.0.0.0

    # The port to listen on for syslog traffic. Defaults to 9002.
    #var.syslog_port: 9002

Provést restart služby Filebeat:

service filebeat restart

Po restartu služby filebeat by měl filebeat naslouchat na portu UDP/9002:

ss -tulnp | grep 9002

Výstup příkazu ss -tulnp | grep 9002 ukazuje, že filebeat naslouchá na portu UDP/9002

udp   UNCONN 0      0                         *:9002            *:*    users:(("filebeat",pid=2484,fd=27))

Cisco IOS konfigurace pro odesílání syslog zpráv na službu Filebeat:

Switch#conf t
Switch(config)#logging on
Switch(config)#logging host 192.168.0.163 transport udp port 9002
Switch(config)#do wr

V Ubuntu lze ověřet, zda syslog zpráva ze switche skutečně přichází na Elastic server. To se dá zachytit pomocí nástroje tcpdump, kde 192.168.0.30 je IP adresa switche je 9002 je cílový port:

tcpdump -n host 192.168.0.30 and port 9002

Testovací zpráva syslog z Cisco zařízení se dá vygenerovat následujicími příkazy na switchi níže. Boldem je/jsou označené syslog zprávy:

Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#end
Jun 24 14:11:01.792: %SYS-5-CONFIG_I: Configured from console by console

Alternativně lze vygenerovat syslog zprávy z Cisco zařízení shutnutim a unshutnutim rozhraní:

Switch(config)#int fa0/4
Switch(config-if)#shut
Jun 24 14:11:16.149: %LINK-5-CHANGED: Interface FastEthernet0/4, changed state t o administratively down
Jun 24 14:11:17.149: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEtherne t0/4, changed state to down
Switch(config-if)#no sh
Jun 24 14:11:25.865: %LINK-3-UPDOWN: Interface FastEthernet0/4, changed state to down

Výstup příkazu tcpdump -n host 192.168.0.30 and port 9002 ukazuje, že byly celkově přijaty 4 syslog zprávy z IP adresy 192.168.0.30:

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:11:02.791859 IP 192.168.0.30.56667 > 192.168.0.162.9002: UDP, length 81
14:11:17.148099 IP 192.168.0.30.56667 > 192.168.0.162.9002: UDP, length 112
14:11:17.149278 IP 192.168.0.30.56667 > 192.168.0.162.9002: UDP, length 116
14:11:26.863862 IP 192.168.0.30.56667 > 192.168.0.162.9002: UDP, length 94

Ve webovém prohlížeči v Rubrice Analytics > Discover byla vyfiltrovaná IP adresa 192.168.0.30 a jak lze vidět, syslog zprávy switche byly úspěšně přijaty:

Elastic - send logs Cisco IOS

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *