forked from grafana/kentik-app
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f6e6e50
commit eaa8298
Showing
29 changed files
with
3,329 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# Change Log | ||
|
||
All notable changes to this project will be documented in this file. | ||
|
||
## [1.4.2] - 2021-05-21 | ||
|
||
### Fixed | ||
|
||
- Filter field "inet_dst_addr" does not support the operator "=" error [#36](https://github.com/kentik/kentik-grafana-app/pull/36) | ||
|
||
### Changed | ||
- Remove old unsupported filters | ||
|
||
## [1.4.1] - 2020-09-25 | ||
|
||
### Fixed | ||
|
||
- 403 error when using non-admin Kentik user [#31](https://github.com/kentik/kentik-grafana-app/issues/31) | ||
|
||
## [1.4.0] - 2019-12-26 | ||
|
||
### Breaking changes | ||
|
||
Fixed "Permission denied" error for Viewers and Editors [#28](https://github.com/kentik/kentik-grafana-app/pull/28). | ||
|
||
Because of [#28](https://github.com/kentik/kentik-grafana-app/pull/28) it's required to do after update: | ||
- restart Grafana | ||
- go to the plugin config (e.g. http://localhost:3000/plugins/kentik-app/) and click "Update" | ||
|
||
## [1.3.6] - 2019-10-02 | ||
|
||
### New Features | ||
|
||
- Resolve IPs in a given view [#5](https://github.com/kentik/kentik-grafana-app/issues/5) | ||
|
||
## [1.3.5] - 2019-09-23 | ||
|
||
Autocomplete for plugin #4 | ||
|
||
## [1.3.4] - 2019-05-24 | ||
|
||
- Added support for custom api endpoints, [#71](https://github.com/grafana/kentik-app/issues/71) | ||
|
||
|
||
## [1.3.3] - 2019-02-01 | ||
|
||
### New Features | ||
- Added support for EU api endpoint, [#64](https://github.com/grafana/kentik-app/issues/64) | ||
|
||
### Fixed | ||
- click-through to device-details page now works correctly | ||
|
||
### Changed | ||
- Updated device-details page to show more data | ||
- device-details page now displays more informative messages when updating fails | ||
|
||
## [1.3.2] - 2018-12-18 | ||
|
||
### New Features | ||
- Added better error messaging for API issues, [#61](https://github.com/grafana/kentik-app/issues/61) | ||
|
||
## [1.3.1] - 2018-11-13 | ||
|
||
### Fixed | ||
|
||
- Filter operators do not match Group By operators, [#37](https://github.com/grafana/kentik-app/issues/37) | ||
|
||
## [1.3.0] - 2018-10-22 | ||
|
||
### New Features | ||
|
||
- Custom dimensions support [#46](https://github.com/grafana/kentik-app/issues/46) | ||
- Direct filter import (using saved filters in Grafana) [#45](https://github.com/grafana/kentik-app/issues/45) | ||
|
||
## [1.2.4] - 2017-05-22 | ||
|
||
### New Features | ||
|
||
- Test for Kentik query builder | ||
|
||
### Changed | ||
|
||
- Enable stacking by default in Kentik top talkers dashboard | ||
|
||
### Fixed | ||
|
||
- Unique Src/Dst IPs metrics (after Kentik API update) | ||
- Table data columns for Unique Src/Dst IPs metrics (now is Avg, p95th, Max, p95th mbps, p95th pps) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
[![CircleCI](https://circleci.com/gh/grafana/kentik-app.svg?style=svg)](https://circleci.com/gh/grafana/kentik-app) | ||
[![David Dependancy Status](https://david-dm.org/grafana/kentik-app.svg)](https://david-dm.org/grafana/kentik-app) | ||
[![David Dev Dependency Status](https://david-dm.org/grafana/kentik-app/dev-status.svg)](https://david-dm.org/grafana/kentik-app/?type=dev) | ||
|
||
|
||
|
||
Kentik Connect for Grafana allows you to quickly and easily enhance your visibility into your network traffic. Kentik Connect leverages the power of Kentik Detect, which provides real-time, Internet-scale ingest and querying of network data including flow records (NetFlow, IPFIX, sFlow), BGP, GeoIP, and SNMP. Stored in the Kentik Data Engine (KDE), Kentik Detect’s distributed post-Hadoop Big Data backend, this information is a rich source of actionable insights into network traffic, including anomalies that can affect application or service performance. Kentik Connect provides Grafana with instant access to KDE, enabling you to seamlessly integrate network activity metrics into your Grafana dashboard. | ||
|
||
## Features | ||
|
||
Kentik Connect for Grafana ships with an official Kentik Data Source, the database connector that allows you to read and visualize data directly from KDE. Within the Grafana environment, you can specify the parameters of the traffic that you want Kentik Connect to display: | ||
|
||
- Timespan: set the time range for which you want to see traffic data. | ||
- Devices: view traffic from all devices or individual routers, switches, or hosts. | ||
- Dimensions: group by over 30 source and destination dimensions representing NetFlow, BGP, or GeoIP data. | ||
- Metrics: display data in metrics including bits, packets, or unique IPs. | ||
- Sort: visualizations are accompanied by a sortable table showing Max, 95th percentile, and Average values. | ||
|
||
Kentik Connect also allows you to edit the configuration of devices (which must already be registered with Kentik Detect). And, as with any Grafana dashboard, current settings can be managed (Manage dashboard menu) and dashboards can be saved, shared, and starred. | ||
|
||
## External Dependencies | ||
|
||
- A Kentik account and API key is required to Enable the Kentik app. If you don’t have a Kentik account, [sign up for your Free Trial Now](https://portal.kentik.com/signup.html?ref=signup_2nd&utm_source=grafana&utm_medium=landingpage&utm_term=portal&utm_campaign=grafana-signup). | ||
- To appear in the Kentik Connect device list, devices must first be registered with Kentik Detect. | ||
|
||
## Plugin installation | ||
|
||
The easiest way to install plugins is by using the `grafana-cli` tool which is bundled with Grafana. See [Using grafana-cli](#using-grafana-cli) paragraph. | ||
|
||
If there is no `grafana-cli` tool in your system, plugins can be installed [manually](#manual-installation). | ||
|
||
### Table of contents | ||
- [Using grafana-cli](#using-grafana-cli) | ||
- [Install plugin](#install-plugin) | ||
- [Update plugin](#update-plugin) | ||
- [Manual installation](#manual-installation) | ||
- [Docker installation](#docker-installation) | ||
|
||
### Using grafana-cli | ||
|
||
Grafana docs about plugin installation: https://grafana.com/docs/plugins/installation/#installing-plugins. | ||
|
||
#### Install / update plugin | ||
```bash | ||
grafana-cli --pluginUrl "https://github.com/kentik/kentik-grafana-app/releases/download/v1.4.2/kentik-app-1.4.2.zip" plugins install kentik-app | ||
sudo systemctl restart grafana-server | ||
``` | ||
|
||
### Manual installation | ||
|
||
- Navigate to Grafana plugins directory: | ||
- For Grafana installed from `.deb`/`.rpm` package: | ||
- `/var/lib/grafana/plugins` | ||
- For Grafana installed using Standalone Linux Binaries or source: | ||
- `<GRAFANA_PATH>/data/plugins` | ||
|
||
- Download kentik-app | ||
```bash | ||
wget https://github.com/kentik/kentik-grafana-app/releases/download/v1.4.2/kentik-app-1.4.2.tar.gz | ||
``` | ||
|
||
- Remove old kentik-app (if it exists) | ||
```bash | ||
rm -rf kentik-app | ||
``` | ||
|
||
- Unpack downloaded files | ||
```bash | ||
tar -zxvf kentik-app-1.4.2.tar.gz | ||
``` | ||
|
||
- Restart Grafana | ||
- For Grafana installed from `.deb`/`.rpm` package: | ||
- `systemctl restart grafana-server` | ||
- For Grafana installed using Standalone Linux Binaries or source: | ||
- Stop any running instances of grafana-server | ||
- Start grafana-server: `cd <GRAFANA_PATH> && ./bin/grafana-server` | ||
|
||
### Docker installation | ||
|
||
You can install Kentik App to Grafana in Docker passing it as the environment variable. | ||
|
||
```bash | ||
docker run \ | ||
-p 3000:3000 \ | ||
-e "GF_INSTALL_PLUGINS=https://github.com/kentik/kentik-grafana-app/releases/download/v1.4.2/kentik-app-1.4.2.zip;kentik-grafana-app" \ | ||
grafana/grafana | ||
``` | ||
|
||
#### Useful links | ||
- Grafana docs about Docker installation: https://docs.grafana.org/installation/docker/#installing-plugins-from-other-sources |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
<div class="page-header"> | ||
<h1>Add a New Device</h1> | ||
</div> | ||
<div class="row"> | ||
<div class="col-md-10"> | ||
<p>Devices in Kentik are sources of network flow data - commonly a network component such as a switch or router, or | ||
a flow generation agent on a host/server. Once configured, Kentik will automatically begin tracking and returning | ||
direct insights from that source viewpoint into exactly which applications and endpoints are actively driving | ||
network traffic.</p> | ||
</div> | ||
</div> | ||
|
||
<form name="addDeviceForm"> | ||
<div class="gf-form-group"> | ||
<div class="gf-form"> | ||
<label class="gf-form-label width-11">Device Name</label> | ||
<input class="gf-form-input max-width-21" type="text" ng-model="ctrl.device.device_name" pattern="^[A-Za-z0-9_]{1,15}$" | ||
required> | ||
</div> | ||
<div class="gf-form"> | ||
<label class="gf-form-label width-11">Device Type</label> | ||
<div class="gf-form-select-wrapper"> | ||
<select class="gf-form-input gf-size-auto" ng-model="ctrl.device.device_type"> | ||
<option value="router">Router</option> | ||
<option value="host-nprobe-basic">Host</option> | ||
</select> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div class="gf-form-group"> | ||
<div class="gf-form"> | ||
<label class="gf-form-label width-11">Description</label> | ||
<input class="gf-form-input max-width-21" type="text" ng-model="ctrl.device.device_description"> | ||
</div> | ||
<div class="gf-form" ng-if="ctrl.device.device_type == 'router'"> | ||
<label class="gf-form-label width-11">Flow Type</label> | ||
<div class="gf-form-select-wrapper"> | ||
<select class="gf-form-input gf-size-auto" ng-model="ctrl.device.device_flow_type"> | ||
<option value="sflow">sFlow</option> | ||
<option value="netflow.v5">NetFlow v5</option> | ||
<option value="netflow.v9">NetFlow v9</option> | ||
<option value="ipfix">IPFIX</option> | ||
</select> | ||
</div> | ||
</div> | ||
<div class="gf-form" ng-if="ctrl.device.device_type == 'host-nprobe-basic'"> | ||
<label class="gf-form-label width-11">Flow Type</label> | ||
<div class="gf-form-select-wrapper"> | ||
<select class="gf-form-input gf-size-auto" ng-model="ctrl.device.device_flow_type"> | ||
<option value=hiresflow>HiresFlow</option> | ||
</select> | ||
</div> | ||
</div> | ||
<div class="gf-form"> | ||
<label class="gf-form-label width-11">Sample Rate</label> | ||
<input class="gf-form-input max-width-5" type="number" required ng-model="ctrl.device.device_sample_rate"> | ||
</div> | ||
<div class="gf-form" ng-repeat="ip in ctrl.sending_ips"> | ||
<label class="gf-form-label width-11">Source Address</label> | ||
<input class="gf-form-input max-width-15" type="text" ng-model="ip.ip" required> | ||
<a class="btn btn-inverse btn-small" ng-click="ctrl.addIP()" ng-if="$first"><i class="fa fa-plus"></i></a> | ||
<a class="btn btn-inverse btn-small" ng-click="ctrl.removeIP($index)" ng-if="!$first"><i class="fa fa-minus"></i></a> | ||
</div> | ||
</div> | ||
<div class="gf-form-group"> | ||
<div class="gf-form" ng-if="ctrl.device.device_type == 'router'"> | ||
<label class="gf-form-label width-11">SNMP Polling</label> | ||
<div class="gf-form-select-wrapper"> | ||
<select class="gf-form-input gf-size-auto" ng-model="ctrl.device.minimize_snmp" ng-options="i.v as i.l for i in [{v: true, l: 'Minimum'}, {v: false, l: 'Standard'}]"> | ||
</select> | ||
</div> | ||
</div> | ||
<div class="gf-form" ng-if="ctrl.device.device_type == 'router'"> | ||
<label class="gf-form-label width-11">SNMP Community</label> | ||
<input class="gf-form-input max-width-15" type="text" ng-model="ctrl.device.device_snmp_community"> | ||
</div> | ||
<div class="gf-form" ng-if="ctrl.device.device_type == 'router'"> | ||
<label class="gf-form-label width-11">Device IP</label> | ||
<input class="gf-form-input max-width-15" type="text" ng-model="ctrl.device.device_snmp_ip"> | ||
</div> | ||
</div> | ||
<div class="gf-form-group"> | ||
<div class="gf-form"> | ||
<label class="gf-form-label width-11">BGP</label> | ||
<div class="gf-form-select-wrapper"> | ||
<select class="gf-form-input max-width-15" disabled> | ||
<option>Available with paid acounts</option> | ||
</select> | ||
</div> | ||
</div> | ||
</div> | ||
<button type="submit" class="btn btn-success" ng-click="ctrl.addDevice()">Add Device</button> | ||
<a class="btn btn-link" ng-click="ctrl.cancel();">Cancel</a> | ||
</form> |
Oops, something went wrong.