README.md in oxidized-0.16.3 vs README.md in oxidized-0.17.0

- old
+ new

@@ -25,117 +25,124 @@ 6. [Cookbook](#cookbook) * [Debugging](#debugging) * [Privileged mode](#privileged-mode) * [Disabling SSH exec channels](#disabling-ssh-exec-channels) * [Source: CSV](#source-csv) - * [Source: SQLite](#source-sqlite) + * [Source: SQL](#source-sql) + * [Source: SQLite](#source-sqlite) + * [Source: Mysql](#source-mysql) * [Source: HTTP](#source-http) * [Output: GIT](#output-git) * [Output: HTTP](#output-http) * [Output: File](#output-file) * [Output types](#output-types) * [Advanced Configuration](#advanced-configuration) + * [Advanced Group Configuration](#advanced-group-configuration) 7. [Ruby API](#ruby-api) * [Input](#input) * [Output](#output) * [Source](#source) * [Model](#model) # Supported OS types + * Vendor + * OS - model_name * A10 Networks - * ACOS + * ACOS - acos * Alcatel-Lucent - * AOS - * AOS7 - * ISAM + * AOS - aos + * AOS7 - aos7 + * ISAM - isam * Wireless + * Alvarion + * BreezeACCESS - alvarion * Arista - * EOS + * EOS - eos * Arris - * C4CMTS + * C4CMTS - c4cmts * Aruba - * AOSW + * AOSW - aosw * Brocade - * FabricOS - * Ironware - * NOS (Network Operating System) - * Vyatta - * 6910 + * FabricOS - fabricos + * Ironware - ironware + * NOS (Network Operating System) - nos + * Vyatta - vyatta + * 6910 - br6910 * Check Point - * GaiaOS + * GaiaOS - gaiaos * Ciena - * SOAS + * SOAS - saos * Cisco - * AireOS - * ASA - * CatOS - * IOS - * IOSXR - * NXOS - * SMB (Nikola series) + * AireOS - aireos + * ASA - asa + * CatOS - catos + * IOS - ios + * IOSXR - iosxr + * NXOS - nxos + * SMB (Nikola series) * Citrix - * NetScaler (Virtual Applicance) + * NetScaler (Virtual Applicance) - netscaler * Coriant (former Tellabs) - * TMOS (8800) - * 8600 + * TMOS (8800) - tmos + * 8600 - * Cumulus * Linux * DataCom * DmSwitch 3000 * DELL - * PowerConnect - * AOSW + * PowerConnect - powerconnect + * AOSW - aosw * Ericsson/Redback - * IPOS (former SEOS) + * IPOS (former SEOS) - ipos * Extreme Networks - * XOS + * XOS - xos * WM * F5 * TMOS * Force10 - * DNOS - * FTOS + * DNOS - dnos + * FTOS - ftos * FortiGate - * FortiOS + * FortiOS - fortios * HP - * Comware (HP A-series, H3C, 3Com) - * Procurve + * Comware (HP A-series, H3C, 3Com) - comware + * Procurve - procurve * Huawei * VRP * Juniper * JunOS * ScreenOS (Netscreen) * Mellanox - * MLNX-OS + * MLNX-OS - mlnxos * Mikrotik - * RouterOS + * RouterOS - routeros * Motorola * RFS * MRV - * MasterOS + * MasterOS - masteros * Netonix - * WISP Switch (As Netonix) + * WISP Switch (As Netonix) - netonix * Nokia (formerly TiMetra, Alcatel, Alcatel-Lucent) - * SR OS (TiMOS) + * SR OS (TiMOS) - timos * Opengear - * Opengear + * Opengear - opengear * Palo Alto - * PANOS - * pfSense + * PANOS - panos + * pfSense - pfsense * Quanta - * Quanta / VxWorks 6.6 (1.1.0.8) + * Quanta / VxWorks 6.6 (1.1.0.8) - quantaos * Supermicro - * Supermicro + * Supermicro - supermicro * Ubiquiti - * AirOS - * Edgeos - * EdgeSwitch + * AirOS - airos + * Edgeos - edgeos + * EdgeSwitch - edgeswitch * Watchguard - * Fireware OS + * Fireware OS - firewareos * Zyxel - * ZyNOS + * ZyNOS - zynos # Installation ## Debian Install all required packages and gems. @@ -145,11 +152,11 @@ gem install oxidized gem install oxidized-script oxidized-web # if you don't install oxidized-web, make sure you remove "rest" from your config ``` ## CentOS, Oracle Linux, Red Hat Linux -On CentOS 6 / RHEL 6, install Ruby 1.9.3 or greater (for Ruby 2.1.2 installation instructions see "Installing Ruby 2.1.2 using RVM"), then install Oxidized dependencies +On CentOS 6 / RHEL 6, install Ruby greater than 1.9.3 (for Ruby 2.1.2 installation instructions see "Installing Ruby 2.1.2 using RVM"), then install Oxidized dependencies ```shell yum install cmake sqlite-devel openssl-devel libssh2-devel ``` RHEL 7 / CentOS 7 will work out of the box with the following package list: @@ -252,50 +259,58 @@ rvm install 2.1.2 rvm use --default 2.1.2 ``` # Running with Docker -1. clone git repo: +clone git repo: + ``` - root@bla:~# git clone https://github.com/ytti/oxidized +git clone https://github.com/ytti/oxidized ``` -2. build container locally: + +build container locally: + ``` - root@bla:~# docker build -q -t oxidized/oxidized:latest oxidized/ +docker build -q -t oxidized/oxidized:latest oxidized/ ``` -3. create config directory in main system: + +create config directory in main system: + ``` - root@bla~:# mkdir /etc/oxidized +mkdir /etc/oxidized ``` -4. run container the first time: + +run container the first time: +_Note: this step in only needed for creating Oxidized's configuration file and can be skipped if you already have it + ``` - root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest oxidized +docker run --rm -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest oxidized ``` -5. add 'router.db' to /etc/oxidized: + +create the `/etc/oxidized/router.db` + ``` - root@bla:~# vim /etc/oxidized/router.db - [ ... ] - root@bla:~# +vim /etc/oxidized/router.db ``` -6. run container again: -``` - root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest - oxidized[1]: Oxidized starting, running as pid 1 - oxidized[1]: Loaded 1 nodes - Puma 2.13.4 starting... - * Min threads: 0, max threads: 16 - * Environment: development - * Listening on tcp://0.0.0.0:8888 - ^C - root@bla:~# +run container again: + ``` +docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest +oxidized[1]: Oxidized starting, running as pid 1 +oxidized[1]: Loaded 1 nodes +Puma 2.13.4 starting... +* Min threads: 0, max threads: 16 +* Environment: development +* Listening on tcp://0.0.0.0:8888 +``` If you want to have the config automatically reloaded (e.g. when using a http source that changes) + ``` - root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -e CONFIG_RELOAD_INTERVAL=3600 -t oxidized/oxidized:latest +docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -e CONFIG_RELOAD_INTERVAL=3600 -t oxidized/oxidized:latest ``` ## Cookbook ### Debugging In case a model plugin doesn't work correctly (ios, procurve, etc.), you can enable live debugging of SSH/Telnet sessions. Just add a ```debug``` option, specifying a log file destination to the ```input``` section. @@ -384,11 +399,36 @@ vars_map: enable: 2 ssh_proxy: 3 ... ``` +### Source: SQL + Oxidized uses the `sequel` ruby gem. You can use a variety of databases that aren't explicitly listed. For more information visit https://github.com/jeremyevans/sequel Make sure you have the correct adapter! +### Source: MYSQL +```sudo apt-get install libmysqlclient-dev``` + +The values correspond to your fields in the DB such that ip, model, etc are field names in the DB + +``` +source: + default: sql + sql: + adapter: mysql2 + database: oxidized + table: nodes + username: root + password: rootpass + map: + name: ip + model: model + username: username + password: password + vars_map: + enable: enable +``` + ### Source: SQLite One row per device, filtered by hostname. ``` @@ -570,11 +610,11 @@ rest: 10.0.0.1:8000/oxidized ``` ### Advanced Configuration -Below is an advanced example configuration. You will be able to (optinally) override options per device. The router.db format used is ```hostname:model:username:password:enable_password```. Hostname and model will be the only required options, all others override the global configuration sections. +Below is an advanced example configuration. You will be able to (optionally) override options per device. The router.db format used is ```hostname:model:username:password:enable_password```. Hostname and model will be the only required options, all others override the global configuration sections. ``` --- username: oxidized password: S3cr3tx @@ -615,12 +655,34 @@ vars_map: enable: 4 model_map: cisco: ios juniper: junos + ``` +### Advanced Group Configuration + +For group specific credentials + +``` +groups: + mikrotik: + username: admin + password: blank + ubiquiti: + username: ubnt + password: ubnt +``` +and add group mapping +``` +map: + model: 0 + name: 1 + group: 2 +``` + # Hooks You can define arbitrary number of hooks that subscribe different events. The hook system is modular and different kind of hook types can be enabled. ## Configuration Following configuration keys need to be defined for all hooks: @@ -714,10 +776,10 @@ The following objects exist in Oxidized. ## Input * gets config from nodes * must implement 'connect', 'get', 'cmd' - * 'ssh' and 'telnet' implemented + * 'ssh', 'telnet, ftp, and tftp' implemented ## Output * stores config * must implement 'store' (may implement 'fetch') * 'git' and 'file' (store as flat ascii) implemented