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