Data Collection Agent¶
Configuration¶
data/hosts.yaml In data/hosts.yaml you need to provide the list of devices you want to pull information from For each device, you need to indicate the name ane one or multiple tags (at least one). Tags will be used later to know which credentials should be used for this device and which commands need to be executed
<hostA>: <tag1> <tag4>
<hostB>: <tag1> <tag4>
<hostC>: <tag2> <tag4> <tag5>
<hostD>: <tag1> <tag4> <--- Those tags relate the Hosts with the credentials and the commands to use with
Example
mx-edge011: edge mx madrid bgp mpls
mx-agg011: agg mx madrid bgp isis
qfx-agg022: agg qfx munich bgp
qfx5100-02: tor qfx madrid isis
Note
The default configuration assume that hosts defined in hosts.yaml can be resolved with DNS if your hosts doesn’t have DNS entry, it’s possible to indicate the IP address in the hosts.yaml file instead of the name
192.168.0.1: edge mx madrid bgp mpls
To avoid using Ip addresses in the dashboard, you can use the device hostname defined in the configuration instead of the value define in hosts.yaml by setting the parameter use_hostname to true in open-nti.variables.yaml use_hostname: True
data/credentials.yaml
You need to provide at least one credential profile for your devices
jdi_lab:
username: '*login*' (Single quote is to force to be imported as string)
password: '*password*' (Single quote is to force to be imported as string)
method: password (other supported methods 'key' and 'enc_key' for ssh Key-Based Authentication)
key_file: /opt/open-nti/data/*key_file* (optional: only appies if method key or enc_key is used, it must be located at data directory)
tags: tag1 tag2
data/commands.yaml
generic_commands: <--- You can name the group as best fits you
commands: |
show version | display xml <--- There is no limit on how many commands can be added into a group
show isis statistics | display xml <-- Before adding a command, confirm that there is a related parser
show system buffers
show system statistics icmp | display xml
show route summary | display xml
tags: tag1 tag2
Execution periodic¶
To collect data periodically with the Data Collection Agent, you need to setup a cron job inside the container. As part of the project, open-nti is providing some scripts to easily add/remove cron jobs inside the container from the host.
- Scripts provided:
- make cron-add: Create a new cron job inside the container
- make cron-show: Show all cron jobs configured inside the container
- make cron-delete: Delete a cron job inside the container for a specific tag
To start cron job to execute commands specified above for specific tag every minute:
make cron-add TAG=lab
To start cron job for more than one tag at the same time:
make cron-add TAG='lab prod'
To start cron job to execute commands specified above for specific tag every 5 minutes:
make cron-add TAG=tag1 TIME=5m
To start cron job to execute commands specified above for specific tag every hour:
make cron-add TAG=tag1 TIME=1h
To stop cron job for specific tag:
make cron-show TAG=tag1
Note
If you want to configure the cron job yourself, open-nti use this command:
/usr/bin/python /opt/open-nti/open-nti.py -s --tag <tag>
Junos Parsers¶
Parser | Description |
---|---|
show-services-l2tp-summary.parser.yaml | None |
show-route-summary.table.l2circuit.0.parser.yaml | None |
show-bgp-summary.parser.yaml | None |
show-pppoe-statistics.parser.yaml | None |
rtsockmon.parser.yaml | None |
show-chassis-fpc.parser.yaml | None |
show-network-access-aaa-radius-servers-detail.parser.yaml | None |
show-task-memory.parser.yaml | None |
show-isis-statistics.parser.yaml | None |
show-security-ipsec-statistics.parser.yaml | None |
show-subscribers-summary.parser.yaml | None |
show-bfd-session-summary.parser.yaml | None |
show-services-nat-pool-detail.parser.yaml | None |
show-chassis-routing-engine.parser.yaml | None |
show-firewall.parser.yaml | None |
show-interfaces-media.parser.yaml | None |
show-task-accounting.parser.yaml | None |
show-subscribers-summary-port.parser.yaml | None |
show-task-io.parser.yaml | None |
show-services-stateful-firewall-flow-analysis.parser.yaml | None |
show-bgp-neighbor-10.255.0.206.parser.yaml | None |
show-network-access-aaa-statistics-address-assignment-pool.parser.yaml | None |
show-route-summary.table.bgp.l3vpn.0.parser.yaml | None |
show-system-resource-monitor-summary.parser.yaml | None |
show-pfe-statistics-traffic.parser.yaml | None |
show-lwaftr-statistics.parser.yaml | None |
show-ddos-protection-protocols-statistics-terse.parser.yaml | None |
show-snmp-get-jnxOperatingCPU-RE.yaml | None |
show-route-summary.table.inet.0.parser.yaml | None |
show-system-statistics-icmp.parser.yaml | None |
show-system-processes-extensive.parser.yaml | None |
show-mpls-lsp.parser.yaml | None |
show-system-virtual-memory.parser.yaml | None |
show-igmp-snooping-statistics.parser.yaml | None |
show-services-stateful-firewall-subscriber-analysis.parser.yaml | None |
show-services-video-monitoring-mdi-flow-fpc-slot-1.parser.yaml | None |
show-ldp-traffic-statistics.parser.yaml | None |
show-system-storage.parser.yaml | None |
show-system-core-dumps.parser.yaml | None |
show-version.parser.yaml | None |
show-route-summary.parser.yaml | None |
show-services-rpm-probe-results.parser.yaml | None |
show-lwaftr-state.parser.yaml | None |
show-snmp-statistics.parser.yaml | None |
show-route-summary.table.inet6.0.parser.yaml | None |
show-system-buffers.parser.yaml | None |
file-list-detail-var-rundb-juniper.eph_iceaaa.parser.yaml | None |
show-krt-state.parser.yaml | None |
show-route-summary.table.inet.3.parser.yaml | None |
show-snmp-get-jnxOperatingCPU-FPC.yaml | None |
show-system-configuration-database-usage.parser.yaml | None |