Difference between revisions of "Netdisco"

From HackerNet
Jump to: navigation, search
(Created page with "Netdisco hämtar MAC-tabeller, ARP-tabeller, VLAN-databaser, LLDP/CDP-grannskap, firmwareversioner, m.m från routrar och switchar med hjälp av SNMP. Man schemalägger när d...")
 
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Netdisco hämtar MAC-tabeller, ARP-tabeller, VLAN-databaser, LLDP/CDP-grannskap, firmwareversioner, m.m från routrar och switchar med hjälp av SNMP. Man schemalägger när data ska samlas in.
+
[[Category:Guider]]
 +
Netdisco hämtar MAC-tabeller, ARP-tabeller, VLAN-databaser, LLDP/CDP-grannskap, firmwareversioner, m.m från routrar och switchar med hjälp av SNMP. Man schemalägger när data ska samlas in, dvs det är inte realtidsövervakning.
  
 +
Denna guide är minimalistiskt utformad, för kommandoförklaringar se referensguide alternativt google. Referens:
 +
https://metacpan.org/pod/App::Netdisco
  
 
+
==Installation==
==Installation ''Ubuntu 14.04.1 LTS Server x64''==
+
''Ubuntu 14.04.1 LTS Server x64''<br/>
 
 
===Förberedelser===
 
 
 
 
Denna guide är till stor del hämtad från: http://blog.asiantuntijakaveri.fi/2014/08/netdisco2-on-ubuntu-1404.html
 
Denna guide är till stor del hämtad från: http://blog.asiantuntijakaveri.fi/2014/08/netdisco2-on-ubuntu-1404.html
 
 
  sudo su -
 
  sudo su -
  apt-get update && apt-get -y dist-upgrade && apt-get -y install open-vm-tools build-essential wget lftp mtr-tiny zip ntp
+
  apt-get update && apt-get -y dist-upgrade && apt-get -y install open-vm-tools build-essential wget lftp mtr-tiny zip ntp fail2ban curl
 
+
echo "net.ipv6.conf.all.disable_ipv6=1" >>/etc/sysctl.conf
===Netdisco===
 
  
 +
===Databas===
 
  apt-get -y install libdbd-pg-perl libsnmp-perl postgresql pgtune  
 
  apt-get -y install libdbd-pg-perl libsnmp-perl postgresql pgtune  
 
  mv /etc/postgresql/9.3/main/postgresql.conf /etc/postgresql/9.3/main/postgresql.conf.old
 
  mv /etc/postgresql/9.3/main/postgresql.conf /etc/postgresql/9.3/main/postgresql.conf.old
Line 21: Line 20:
 
  su - postgres
 
  su - postgres
 
  createuser -DRSP netdisco
 
  createuser -DRSP netdisco
  Enter some password here
+
  (Enter some DB password here)
  createdb -O netdisco netdisco
+
  createdb --owner netdisco netdisco
  
 
Switch back to root
 
Switch back to root
 
  exit
 
  exit
  
 +
===Netdisco===
 
  adduser netdisco --shell /bin/bash --disabled-password --gecos netdisco && su - netdisco
 
  adduser netdisco --shell /bin/bash --disabled-password --gecos netdisco && su - netdisco
 
  curl -L http://cpanmin.us/ | perl - --notest --local-lib ~/perl5 App::Netdisco
 
  curl -L http://cpanmin.us/ | perl - --notest --local-lib ~/perl5 App::Netdisco
  
  mkdir ~/bin
+
==Konfiguration==
mkdir ~/environments
+
  mkdir ~/bin && mkdir ~/environments && ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
 
 
  ~/bin/netdisco-daemon status
 
  ~/bin/netdisco-daemon status
  
Här är grunden för deploymenten, lägg till de SNMP-communitys som ska användas. Schemaläggningen är i cron-format. T.ex. discoverall görs 10 över varje timme.  
+
Här är grunden för deploymenten, lägg till de SNMP-communitys som ska användas. Schemaläggningen är i cron-format. I exemplet görs discoverall 10 över varje timme. <br/>
 +
OBS Om detta görs i en virtuell maskin tas förslagsvis en snapshot här.
 
  cat <<'__EOF__'>~/environments/deployment.yml
 
  cat <<'__EOF__'>~/environments/deployment.yml
 
  database:
 
  database:
 
   name: 'netdisco'
 
   name: 'netdisco'
 
   user: 'netdisco'
 
   user: 'netdisco'
   pass: 'netdisco'
+
   pass: '(PW som sattes tidigare)'
 
  safe_password_store: true
 
  safe_password_store: true
 
  snmp_auth:
 
  snmp_auth:
Line 51: Line 51:
 
     read: true
 
     read: true
 
     write: false
 
     write: false
 +
  - tag: 'v3example'
 +
    user: netdisco
 +
    auth:
 +
      pass: netdiscokey
 +
      proto: SHA
 +
    priv:
 +
      pass: netdiscokey2
 +
      proto: AES
 
  schedule:
 
  schedule:
 
   discoverall:
 
   discoverall:
Line 69: Line 77:
  
 
  ~/bin/netdisco-deploy
 
  ~/bin/netdisco-deploy
 +
Svara ja på allt och sätt credentials för web gui:t.
  
Create script to start Netdisco
+
Skapa script för att starta Netdisco med listener port 5000
  cat <<'__EOF__' >~/run-netdisco.sh
+
  cat <<'__EOF__'>~/run-netdisco.sh
 
  #!/bin/bash
 
  #!/bin/bash
  ~/bin/netdisco-web start
+
  ~/bin/netdisco-web start --port=5000
 
  sleep 5
 
  sleep 5
 
  ~/bin/netdisco-daemon start
 
  ~/bin/netdisco-daemon start
Line 82: Line 91:
  
 
Switch back to root
 
Switch back to root
  exit  
+
  exit
 
  echo "( sudo su - netdisco -c '/home/netdisco/run-netdisco.sh' ) &" >/etc/rc.local
 
  echo "( sudo su - netdisco -c '/home/netdisco/run-netdisco.sh' ) &" >/etc/rc.local
 
  reboot
 
  reboot
 +
 +
=== WEBGUI ===
 +
Logga in på http://[IP]:5000
 +
 +
Börja med att mata in IP-adress på en switch eller router som ska övervakas på förstasidan. Vänta och se hur mycket som upptäcks. Är allt rätt konfigurerat kommer väldigt mycket att upptäckas.
 +
 +
===Enheter som ska övervakas===
 +
Logga in på diverse enhet som ska övervakas och lägg till community samt IP för Netdiscomaskinen.
 +
 +
===Underhåll===
 +
upgrade Netdisco
 +
~/bin/localenv cpanm --notest App::Netdisco
 +
 +
apply database schema updates
 +
~/bin/netdisco-deploy
 +
 +
restart web service
 +
~/bin/netdisco-web restart
 +
 +
restart job daemon
 +
~/bin/netdisco-daemon restart

Latest revision as of 13:57, 5 November 2015

Netdisco hämtar MAC-tabeller, ARP-tabeller, VLAN-databaser, LLDP/CDP-grannskap, firmwareversioner, m.m från routrar och switchar med hjälp av SNMP. Man schemalägger när data ska samlas in, dvs det är inte realtidsövervakning.

Denna guide är minimalistiskt utformad, för kommandoförklaringar se referensguide alternativt google. Referens:

https://metacpan.org/pod/App::Netdisco

Installation

Ubuntu 14.04.1 LTS Server x64
Denna guide är till stor del hämtad från: http://blog.asiantuntijakaveri.fi/2014/08/netdisco2-on-ubuntu-1404.html

sudo su -
apt-get update && apt-get -y dist-upgrade && apt-get -y install open-vm-tools build-essential wget lftp mtr-tiny zip ntp fail2ban curl
echo "net.ipv6.conf.all.disable_ipv6=1" >>/etc/sysctl.conf

Databas

apt-get -y install libdbd-pg-perl libsnmp-perl postgresql pgtune 
mv /etc/postgresql/9.3/main/postgresql.conf /etc/postgresql/9.3/main/postgresql.conf.old
pgtune -i /etc/postgresql/9.3/main/postgresql.conf.old -o /etc/postgresql/9.3/main/postgresql.conf

Switch to postgres user and create new SQL user

su - postgres
createuser -DRSP netdisco
(Enter some DB password here)
createdb --owner netdisco netdisco

Switch back to root

exit

Netdisco

adduser netdisco --shell /bin/bash --disabled-password --gecos netdisco && su - netdisco
curl -L http://cpanmin.us/ | perl - --notest --local-lib ~/perl5 App::Netdisco

Konfiguration

mkdir ~/bin && mkdir ~/environments && ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
~/bin/netdisco-daemon status

Här är grunden för deploymenten, lägg till de SNMP-communitys som ska användas. Schemaläggningen är i cron-format. I exemplet görs discoverall 10 över varje timme.
OBS Om detta görs i en virtuell maskin tas förslagsvis en snapshot här.

cat <<'__EOF__'>~/environments/deployment.yml
database:
 name: 'netdisco'
 user: 'netdisco'
 pass: '(PW som sattes tidigare)'
safe_password_store: true
snmp_auth:
 - tag: 'default_1'
   community: 'puplic'
   read: true
   write: false
 - tag: 'default_2'
   community: 'public'
   read: true
   write: false
 - tag: 'v3example'
    user: netdisco
    auth:
      pass: netdiscokey
      proto: SHA
    priv:
      pass: netdiscokey2
      proto: AES
schedule:
 discoverall:
    when: '10 * * * *'
 macwalk:
    when: '35 * * * *'
 arpwalk:
    when: '45 * * * *'
 nbtwalk:
    when: '55 * * * *'
 expire:
    when: '15 23 * * *'
dns:
 max_outstanding: 50
workers:
 tasks: 'AUTO * 5'
__EOF__
~/bin/netdisco-deploy

Svara ja på allt och sätt credentials för web gui:t.

Skapa script för att starta Netdisco med listener port 5000

cat <<'__EOF__'>~/run-netdisco.sh
#!/bin/bash
~/bin/netdisco-web start --port=5000
sleep 5
~/bin/netdisco-daemon start
__EOF__
chmod a+x ~/run-netdisco.sh
~/run-netdisco.sh

Switch back to root

exit
echo "( sudo su - netdisco -c '/home/netdisco/run-netdisco.sh' ) &" >/etc/rc.local
reboot

WEBGUI

Logga in på http://[IP]:5000

Börja med att mata in IP-adress på en switch eller router som ska övervakas på förstasidan. Vänta och se hur mycket som upptäcks. Är allt rätt konfigurerat kommer väldigt mycket att upptäckas.

Enheter som ska övervakas

Logga in på diverse enhet som ska övervakas och lägg till community samt IP för Netdiscomaskinen.

Underhåll

upgrade Netdisco

~/bin/localenv cpanm --notest App::Netdisco

apply database schema updates

~/bin/netdisco-deploy

restart web service

~/bin/netdisco-web restart

restart job daemon

~/bin/netdisco-daemon restart