From 7707eb58656ffcedb697f90596fe4650b4c5a1c9 Mon Sep 17 00:00:00 2001 From: Charlie Root Date: Tue, 26 May 2020 21:15:31 -0700 Subject: [PATCH] next set of updates --- configs/etc/sysctl.conf | 5 + configs/usr/local/etc/rc.d/cam_tag | 38 + configs/usr/local/etc/rc.d/gstat_exporter | 6 +- iocage/Makefile | 24 - .../calibre/Find Duplicates-beta-py3.zip | Bin 0 -> 59846 bytes jails/config/cloud/httpd.conf | 2 +- jails/config/common/snip-sendmail.sh | 4 + jails/config/hub/httpd.conf | 2 +- jails/config/ibm/create_tuns.sh | 15 + jails/config/ibm/ibm.sh | 17 + jails/config/ibm/ipfw.rules | 140 + jails/config/ibm/natd.conf | 2 + jails/config/ibm/setup_jail.sh | 4 + jails/config/ibm/startemu.sh | 31 + jails/config/mail/postfix/main.cf | 17 +- jails/config/mail/postfix/main.cf.default | 9 +- jails/config/mail/postfix/master.cf | 4 +- jails/config/mail/postfix/master.cf.sample | 6 +- jails/config/maps/maps | 6 +- jails/config/matrix/config.json | 58 + jails/config/matrix/nginx.conf | 161 + jails/config/meet/hosts.txt | 9 + jails/config/meet/jicofo.conf | 9 + jails/config/meet/jitsi-meet/config.js | 542 + .../meet/jitsi-meet/interface_config.js | 258 + jails/config/meet/nginx.conf | 190 + jails/config/meet/prosody.cfg.lua | 234 + .../meet/videobridge/jitsi-videobridge.conf | 7 + .../videobridge/sip-communicator.properties | 7 + jails/config/monitor/httpd.conf | 2 +- .../json/blackbox-exporter-overview_rev1.json | 938 + .../json/freebsd-gstat-exporter_rev1.json | 1374 + .../json/pfsense-firewall-dashboard_rev1.json | 2711 ++ jails/config/monitor/json/pfsense_rev1.json | 2846 ++ .../monitor/json/router-stats_rev1.json | 2941 ++ .../monitor/json/switch-overview_rev1.json | 26544 ++++++++++++++++ jails/config/monitor/start_logstash.sh | 1 + jails/config/nivi/httpd.conf | 2 +- jails/config/pkgp/nginx.conf | 6 +- jails/config/proxy/haproxy.conf | 50 +- jails/config/rachna/020_mod_ssl.conf | 11 + jails/config/rachna/httpd.conf | 610 + jails/config/rachna/php.ini | 1918 ++ jails/config/rachna/www.conf | 423 + jails/config/rishabh/httpd.conf | 2 +- jails/config/sharad/httpd.conf | 2 +- jails/config/{test => vpngw}/devfs_rules | 0 jails/config/{test => vpngw}/devfs_rules.raw | 0 jails/config/{test => vpngw}/devfs_rules.txt | 0 jails/config/vpngw/ipfw.rules | 131 + jails/config/vpngw/natd.conf | 1 + jails/config/web-diyit/httpd.conf | 2 +- jails/config/web/httpd.conf | 2 +- jails/create.sh | 6 +- jails/jails-restore-httpd.sh | 11 +- jails/jails-update-cert.sh | 8 +- jails/jails-update-pkgs.sh | 85 +- jails/update.sh | 8 +- patches/D24250.patch | 804 + patches/bridge.patch | 811 + scripts/cam_tag.sh | 7 + 61 files changed, 43942 insertions(+), 122 deletions(-) create mode 100755 configs/usr/local/etc/rc.d/cam_tag delete mode 100644 iocage/Makefile create mode 100644 jails/config/calibre/Find Duplicates-beta-py3.zip create mode 100755 jails/config/ibm/create_tuns.sh create mode 100755 jails/config/ibm/ibm.sh create mode 100755 jails/config/ibm/ipfw.rules create mode 100644 jails/config/ibm/natd.conf create mode 100755 jails/config/ibm/setup_jail.sh create mode 100755 jails/config/ibm/startemu.sh create mode 100644 jails/config/matrix/config.json create mode 100644 jails/config/matrix/nginx.conf create mode 100644 jails/config/meet/hosts.txt create mode 100644 jails/config/meet/jicofo.conf create mode 100644 jails/config/meet/jitsi-meet/config.js create mode 100644 jails/config/meet/jitsi-meet/interface_config.js create mode 100644 jails/config/meet/nginx.conf create mode 100644 jails/config/meet/prosody.cfg.lua create mode 100644 jails/config/meet/videobridge/jitsi-videobridge.conf create mode 100644 jails/config/meet/videobridge/sip-communicator.properties create mode 100644 jails/config/monitor/json/blackbox-exporter-overview_rev1.json create mode 100644 jails/config/monitor/json/freebsd-gstat-exporter_rev1.json create mode 100644 jails/config/monitor/json/pfsense-firewall-dashboard_rev1.json create mode 100644 jails/config/monitor/json/pfsense_rev1.json create mode 100644 jails/config/monitor/json/router-stats_rev1.json create mode 100644 jails/config/monitor/json/switch-overview_rev1.json create mode 100644 jails/config/rachna/020_mod_ssl.conf create mode 100644 jails/config/rachna/httpd.conf create mode 100644 jails/config/rachna/php.ini create mode 100644 jails/config/rachna/www.conf rename jails/config/{test => vpngw}/devfs_rules (100%) rename jails/config/{test => vpngw}/devfs_rules.raw (100%) rename jails/config/{test => vpngw}/devfs_rules.txt (100%) create mode 100755 jails/config/vpngw/ipfw.rules create mode 100644 jails/config/vpngw/natd.conf create mode 100644 patches/D24250.patch create mode 100644 patches/bridge.patch create mode 100755 scripts/cam_tag.sh diff --git a/configs/etc/sysctl.conf b/configs/etc/sysctl.conf index 3a91917..4a4dd8d 100644 --- a/configs/etc/sysctl.conf +++ b/configs/etc/sysctl.conf @@ -20,6 +20,7 @@ vfs.read_max=128 vfs.timestamp_precision=3 net.link.tap.up_on_open=1 #net.link.lagg.lacp.default_strict_mode=0 +net.link.ether.inet.log_arp_movements=0 net.inet.ip.fw.verbose_limit=5 dev.igb.0.fc=0 @@ -111,3 +112,7 @@ net.inet.tcp.rack.data_after_close=0 # Verify RACK # sysctl net.inet.tcp.functions_available # sysctl net.inet.tcp.rack. + +#Cheap Disk Issues +kern.cam.ada.default_timeout=60 +kern.cam.da.default_timeout=90 diff --git a/configs/usr/local/etc/rc.d/cam_tag b/configs/usr/local/etc/rc.d/cam_tag new file mode 100755 index 0000000..f6e4f53 --- /dev/null +++ b/configs/usr/local/etc/rc.d/cam_tag @@ -0,0 +1,38 @@ +#!/bin/sh + +# Copyright (c) 2018-2020, diyIT.org +# All rights reserved. +# +# BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License") +# https://diyit.org/license/ +# +# + +# the two lines below are not just comments but required by rcorder; service -e +# PROVIDE: cam_tag +# REQUIRE: DAEMON + +. /etc/rc.subr + +: ${cam_tag_enable="NO"} + +name=cam_tag +rcvar=${name}_enable + +COMMAND="/root/FreeBSD/scripts/cam_tag.sh" + +start_cmd="${name}_start" +restart_cmd="${name}_restart" + +cam_tag_start() +{ + $COMMAND +} + +cam_tag_restart() +{ + $COMMAND +} + +load_rc_config ${name} +run_rc_command "$1" diff --git a/configs/usr/local/etc/rc.d/gstat_exporter b/configs/usr/local/etc/rc.d/gstat_exporter index a5dd63c..5988d3b 100755 --- a/configs/usr/local/etc/rc.d/gstat_exporter +++ b/configs/usr/local/etc/rc.d/gstat_exporter @@ -1,3 +1,5 @@ +#!/bin/sh + # Copyright (c) 2018-2020, diyIT.org # All rights reserved. # @@ -6,8 +8,6 @@ # # -#!/bin/sh - # the two lines below are not just comments but required by rcorder; service -e # PROVIDE: gstat_exporter # REQUIRE: NETWORKING DAEMON @@ -19,7 +19,7 @@ name=gstat_exporter rcvar=${name}_enable -GSTATEXPORTER="nohup /usr/local/bin/python3.6 /root/FreeBSD/scripts/gstat_exporter.py" +GSTATEXPORTER="nohup /usr/local/bin/python3.7 /root/FreeBSD/scripts/gstat_exporter.py" start_cmd="${name}_start" stop_cmd="${name}_stop" diff --git a/iocage/Makefile b/iocage/Makefile deleted file mode 100644 index 1195075..0000000 --- a/iocage/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -ZPOOL="" -SERVER="" -PYTHON?=/usr/local/bin/python3.7 - -depends: - @(pkg -vv | grep -e "url.*/latest") > /dev/null 2>&1 || (echo "It is advised pkg url is using \"latest\" instead of \"quarterly\" in /etc/pkg/FreeBSD.conf.";) - @test -s ${PYTHON} || (echo "Python binary ${PYTHON} not found, iocage will install python37"; pkg install -q -y python37) - pkg install -q -y py37-libzfs - ${PYTHON} -m ensurepip - ${PYTHON} -m pip install -Ur requirements.txt - -install: depends - ${PYTHON} -m pip install -U . -uninstall: - ${PYTHON} -m pip uninstall -y iocage-lib iocage-cli -test: - pytest --zpool $(ZPOOL) --server $(SERVER) -help: - @echo " install" - @echo " Installs iocage" - @echo " uninstall" - @echo " Removes iocage" - @echo " test" - @echo " Run unit tests with pytest" diff --git a/jails/config/calibre/Find Duplicates-beta-py3.zip b/jails/config/calibre/Find Duplicates-beta-py3.zip new file mode 100644 index 0000000000000000000000000000000000000000..d86c6af4d313a6d671c3e72f88eb912bdef59d23 GIT binary patch literal 59846 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 - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/common/snip-sendmail.sh b/jails/config/common/snip-sendmail.sh index a6939ff..9faa859 100755 --- a/jails/config/common/snip-sendmail.sh +++ b/jails/config/common/snip-sendmail.sh @@ -8,8 +8,12 @@ #! /usr/local/bin/bash # smart_host - mail - is the mail server's dns name +# TO_IDENT sets O Timeout.ident=0s - to stop sendmail from making ident connections echo "define(\`SMART_HOST', \`mail')" >> /etc/mail/$HOSTNAME.mc echo "define(\`confDOMAIN_NAME', \`$HOSTNAME')" >> /etc/mail/$HOSTNAME.mc IP6=`ifconfig -f inet6:cidr | grep "2603:3024:3f6:e1::" | cut -d" " -f 2 | cut -d "/" -f 1` echo "CLIENT_OPTIONS(\`Family=inet6, Address=$IP6')" >> /etc/mail/$HOSTNAME.mc echo "define(\`confDH_PARAMETERS', \`/mnt/certs/dhparam2048.pem')" >> /etc/mail/$HOSTNAME.mc +echo "define(\`confTO_CONNECT', \`1m')" >> /etc/mail/$HOSTNAME.mc +echo "define(\`confTO_IDENT', \`0')" >> /etc/mail/$HOSTNAME.mc +echo "define(\`confTO_COMMAND', \`2m')" >> /etc/mail/$HOSTNAME.mc diff --git a/jails/config/hub/httpd.conf b/jails/config/hub/httpd.conf index f7ed6d0..19fbe56 100644 --- a/jails/config/hub/httpd.conf +++ b/jails/config/hub/httpd.conf @@ -579,7 +579,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/ibm/create_tuns.sh b/jails/config/ibm/create_tuns.sh new file mode 100755 index 0000000..338ce63 --- /dev/null +++ b/jails/config/ibm/create_tuns.sh @@ -0,0 +1,15 @@ +# Copyright (c) 2018-2020, diyIT.org +# All rights reserved. +# +# BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License") +# https://diyit.org/license/ +# +# + +#!/bin/sh +# + +ifconfig tun181 create +#ifconfig bridge1 addm tap181 up +#ifconfig tap181 up +#ifconfig tap181 inet6 auto_linklocal diff --git a/jails/config/ibm/ibm.sh b/jails/config/ibm/ibm.sh new file mode 100755 index 0000000..327966d --- /dev/null +++ b/jails/config/ibm/ibm.sh @@ -0,0 +1,17 @@ +# Copyright (c) 2018-2020, diyIT.org +# All rights reserved. +# +# BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License") +# https://diyit.org/license/ +# +# + +#!/usr/local/bin/bash +# ./ibm.sh under tmux + +ifconfig tun186 create +ifconfig tun186 inet 172.16.0.186 172.16.0.100 +chmod 666 /dev/tun186 + +cd /data/Z110/CONF +# hercules diff --git a/jails/config/ibm/ipfw.rules b/jails/config/ibm/ipfw.rules new file mode 100755 index 0000000..1a2c1c5 --- /dev/null +++ b/jails/config/ibm/ipfw.rules @@ -0,0 +1,140 @@ +#!/bin/sh + +# https://www.freebsd.org/doc/handbook/firewalls-ipfw.html +# ipfw -vated list + +# IPFW configuration +#sysrc firewall_enable="YES" +#sysrc firewall_logif="YES" +#sysrc firewall_script="/mnt/config/ipfw.rules" + +# NATd configuration +#sysrc gateway_enable="YES" +#sysrc natd_enable="YES" +#sysrc natd_interface="epair0b" +#sysrc natd_flags="-f /mnt/config/natd.conf" +#natd.conf: +#redirect_port tcp 172.16.0.100:21-23 21-23 + +# Set rules command prefix +cmd="ipfw -q add" +lif="tun186" # interface name of tunnel attached to Local network +rif="epair0b" # interface name of vnet attached to Remote/external network +skip="skipto 12000" + +# Flush out the list before we begin. +ipfw -q -f flush + +# gateway_enable already set in rc.conf +# sysctl net.inet.ip.forwarding=1 + +# Packets passing the stateful NAT may be re-injected into the firewall +# sysctl net.inet.ip.fw.one_pass=0 +ipfw disable one_pass + +# functionality is included in the divert action +#ipfw -q nat 1 config if $rif same_ports unreg_only reset + +$cmd 00050 allow ip from any to any via $lif + +$cmd 00100 allow ip from any to any via lo0 + +$cmd 00200 deny ip from any to 127.0.0.0/8 +$cmd 00300 deny ip from 127.0.0.0/8 to any +$cmd 00400 deny ip from any to ::1 +$cmd 00500 deny ip from ::1 to any + +$cmd 00600 allow ipv6-icmp from :: to ff02::/16 +$cmd 00700 allow ipv6-icmp from fe80::/10 to fe80::/10 +$cmd 00800 allow ipv6-icmp from fe80::/10 to ff02::/16 +$cmd 00900 allow ipv6-icmp from any to any icmp6types 1 +$cmd 01000 allow ipv6-icmp from any to any icmp6types 2,135,136 + +# The reassemble rule is not needed with userland natd(8) +# because the internal workings of the IPFW divert action +# takes care of reassembling packets before delivery to the socket +#$cmd 01100 reass all from any to any in + +$cmd 01200 divert natd ip from any to any in via $rif # NAT any inbound packets + +# Allow the packet through if it has an existing entry in the dynamic rules table +$cmd 01300 check-state + +# Allow access to DNS +$cmd 02110 $skip tcp from any to 192.168.0.5 53 out via $rif setup keep-state +$cmd 02111 $skip udp from any to 192.168.0.5 53 out via $rif keep-state +$cmd 02112 $skip tcp from any to 2603:3024:3f6:e1::5 53 out via $rif setup keep-state +$cmd 02113 $skip udp from any to 2603:3024:3f6:e1::5 53 out via $rif keep-state + +# Allow access to ISP's DHCP server for cable/DSL configurations. +# Use the first rule and check log for IP address. +# Then, uncomment the second rule, input the IP address, and delete the first rule +#$cmd 02120 $skip log udp from any to any 67 out via $rif keep-state +#$cmd 02120 $skip udp from any to x.x.x.x 67 out via $rif keep-state + +# Allow outbound ping +$cmd 02210 $skip icmp from any to any out via $rif keep-state + +# Allow outbound NTP +$cmd 02220 $skip udp from any to any 123 out via $rif keep-state + +# Allow outbound TCP traffic +$cmd 02500 $skip tcp from any to any 20,22,25,80,443 out via $rif setup keep-state +# 03720 pasv ftp + +# deny and log all other outbound connections +$cmd 02999 deny log all from any to any out via $rif + +#### Lockdown incoming traffic +# Deny all inbound traffic from non-routable reserved address spaces +#$cmd 03110 deny all from 192.168.0.0/16 to any in via $rif #RFC 1918 private IP +#$cmd 03111 deny all from 172.16.0.0/12 to any in via $rif #RFC 1918 private IP +#$cmd 03112 deny all from 10.0.0.0/8 to any in via $rif #RFC 1918 private IP +$cmd 03113 deny all from 127.0.0.0/8 to any in via $rif #loopback +$cmd 03114 deny all from 0.0.0.0/8 to any in via $rif #loopback +$cmd 03115 deny all from 169.254.0.0/16 to any in via $rif #DHCP auto-config +$cmd 03116 deny all from 192.0.2.0/24 to any in via $rif #reserved for docs +$cmd 03117 deny all from 204.152.64.0/23 to any in via $rif #Sun cluster interconnect +$cmd 03118 deny all from 224.0.0.0/3 to any in via $rif #Class D & E multicast + +# Allow traffic from ISP's DHCP server. +# Replace x.x.x.x with the same IP address used in rule 02120. +#$cmd 03120 allow udp from any to x.x.x.x 67 in via $rif keep-state + +# Allow public pings +$cmd 03210 allow icmp from any to any in via $rif + +# Deny ident +$cmd 03230 deny tcp from any to any 113 in via $rif + +# Deny all Netbios services. +$cmd 03240 deny { tcp or udp } from any to any 81,137-139,445,1026,1027,1433,1434 in via $rif + +# Deny fragments +$cmd 03250 deny all from any to any frag in via $rif + +# Deny ACK packets that did not match the dynamic rule table +$cmd 03500 deny tcp from any to any established in via $rif + +# Allow inbound SSH host connections +$cmd 03610 allow tcp from any to me 22 in via $rif setup limit src-addr 2 + +# Allow HTTP host connections to host web server +$cmd 03620 allow tcp from any to me 80 in via $rif setup limit src-addr 2 + +# Allow inbound Telnet connections to NAT +$cmd 03710 allow tcp from any to me 23,3270 in via $rif setup limit src-addr 2 + +# Allow inbound FTP connections to NAT +$cmd 03720 allow tcp from any to me 20,21 in via $rif setup limit src-addr 2 +# 02500 pasv ftp + +# Reject and log all other incoming connections +$cmd 03999 deny log all from any to any in via $rif +#### lockdown in + +$cmd 12000 divert natd ip from any to any out via $rif # skipto location for outbound stateful rules + +$cmd 65000 allow ip from any to any + +#$cmd 65535 deny ip from any to any diff --git a/jails/config/ibm/natd.conf b/jails/config/ibm/natd.conf new file mode 100644 index 0000000..0322417 --- /dev/null +++ b/jails/config/ibm/natd.conf @@ -0,0 +1,2 @@ +redirect_port tcp 172.16.0.100:20-21 20-21 +redirect_port tcp 172.16.0.100:23 23 diff --git a/jails/config/ibm/setup_jail.sh b/jails/config/ibm/setup_jail.sh new file mode 100755 index 0000000..07a40e3 --- /dev/null +++ b/jails/config/ibm/setup_jail.sh @@ -0,0 +1,4 @@ +# requrired to run other configured scripts +/bin/sh /etc/rc +# launch tmux with emu +#/mnt/config/startemu.sh diff --git a/jails/config/ibm/startemu.sh b/jails/config/ibm/startemu.sh new file mode 100755 index 0000000..846138e --- /dev/null +++ b/jails/config/ibm/startemu.sh @@ -0,0 +1,31 @@ +# Copyright (c) 2018-2020, diyIT.org +# All rights reserved. +# +# BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License") +# https://diyit.org/license/ +# +# + +#!/bin/sh +# +session="emu_tmux" + +# set up tmux +tmux start-server + +# create a new tmux session, naming the window hercules +tmux new-session -d -s $session -n hercules +tmux selectp -t 1 +tmux send-keys "cd /mnt/config;./ibm.sh" C-m + +# create a new window empty +tmux new-window -t $session:1 -n empty +tmux selectp -t 1 +tmux send-keys "cd /mnt/config;clear" C-m + +# return to main window +tmux select-window -t $session:0 +tmux selectp -t 1 + +# Finished setup, attach to the tmux session! +#tmux attach-session -t $session diff --git a/jails/config/mail/postfix/main.cf b/jails/config/mail/postfix/main.cf index 0a0a964..90c9569 100644 --- a/jails/config/mail/postfix/main.cf +++ b/jails/config/mail/postfix/main.cf @@ -282,7 +282,8 @@ unknown_local_recipient_reject_code = 550 #mynetworks = $config_directory/mynetworks #mynetworks = hash:$config_directory/network_table -mynetworks = 127.0.0.1/32 192.168.0.0/16 [::1]/128 [fe80::]/10 [2603:3024:3f6::]/56 +#mynetworks = 127.0.0.1/32 192.168.0.0/16 [::1]/128 [fe80::]/10 [2603:3024:3f6::]/56 +mynetworks = 127.0.0.1/32 192.168.0.0/24 [::1]/128 [fe80::]/10 [2603:3024:3f6:e1::]/64 smtp_bind_address = 192.168.0.100 smtp_bind_address6 = 2603:3024:3f6:e1::100 @@ -680,6 +681,10 @@ sample_directory = /usr/local/etc/postfix # readme_directory = /usr/local/share/doc/postfix inet_protocols = ipv4, ipv6 + +# sometimes comcast's IPv6 reverse DNS lookup stops working so you need to enable the line below (default: any) +smtp_address_preference = ipv4 + meta_directory = /usr/local/libexec/postfix shlib_directory = /usr/local/lib/postfix @@ -776,21 +781,21 @@ smtpd_helo_required = yes # entry and present a valid, FQDN HELO hostname. In addition, they can only # send mail to valid mailboxes on the server, and the sender's domain must # actually exist. -smtpd_client_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unknown_reverse_client_hostname,reject_unauth_pipelining +smtpd_client_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_pipelining,reject_unknown_reverse_client_hostname # you might want to consider: # reject_unknown_client_hostname, # here. This will reject all incoming connections without a reverse DNS # entry that resolves back to the client's IP address. This is a very # restrictive check and may reject legitimate mail. -smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_helo_hostname,reject_non_fqdn_helo_hostname,reject_unauth_pipelining +smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_helo_hostname,reject_unauth_pipelining,reject_non_fqdn_helo_hostname # you might want to consider: # reject_unknown_helo_hostname, # here. This will reject all incoming mail without a HELO hostname that # properly resolves in DNS. This is a somewhat restrictive check and may # reject legitimate mail. smtpd_sender_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender,reject_unknown_sender_domain,reject_unauth_pipelining -smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination -# !!! THIS SETTING PREVENTS YOU FROM BEING AN OPEN RELAY !!! +smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination +# !!! THE LAST SETTING PREVENTS YOU FROM BEING AN OPEN RELAY !!! # !!! DO NOT REMOVE IT UNDER ANY CIRCUMSTANCES !!! smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unverified_recipient smtpd_data_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_multi_recipient_bounce,reject_unauth_pipelining @@ -806,7 +811,7 @@ virtual_mailbox_maps = ldap:/usr/local/etc/postfix/ldap-virtual-mailbox-maps.cf # LDAP query to find a user's email aliases virtual_alias_maps = ldap:/usr/local/etc/postfix/ldap-virtual-mailbox-alias-maps.cf, hash:/usr/local/etc/postfix/virtual-maillist-alias-maps -# We'll uncomment these when we set up rspamd later: +# rspamd specific milter_protocol = 6 # if rspamd is down, don't reject mail milter_default_action = accept diff --git a/jails/config/mail/postfix/main.cf.default b/jails/config/mail/postfix/main.cf.default index a876872..3ba39f6 100644 --- a/jails/config/mail/postfix/main.cf.default +++ b/jails/config/mail/postfix/main.cf.default @@ -177,6 +177,7 @@ import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LA in_flow_delay = 1s inet_interfaces = all inet_protocols = all +info_log_address_format = external initial_destination_concurrency = 5 internal_mail_filter_classes = invalid_hostname_reject_code = 501 @@ -327,9 +328,9 @@ local_transport_rate_delay = $default_transport_rate_delay luser_relay = mail_name = Postfix mail_owner = postfix -mail_release_date = 20190921 +mail_release_date = 20200316 mail_spool_directory = /var/mail -mail_version = 3.4.7 +mail_version = 3.5.0 mailbox_command = mailbox_command_maps = mailbox_delivery_lock = flock, dotlock @@ -358,7 +359,7 @@ message_size_limit = 10240000 message_strip_characters = meta_directory = /usr/local/libexec/postfix milter_command_timeout = 30s -milter_connect_macros = j {daemon_name} {daemon_addr} v +milter_connect_macros = j {daemon_name} {daemon_addr} v _ milter_connect_timeout = 30s milter_content_timeout = 300s milter_data_macros = i @@ -733,7 +734,7 @@ smtpd_sasl_response_limit = 12288 smtpd_sasl_security_options = noanonymous smtpd_sasl_service = smtp smtpd_sasl_tls_security_options = $smtpd_sasl_security_options -smtpd_sasl_type = dovecot +smtpd_sasl_type = cyrus smtpd_sender_login_maps = smtpd_sender_restrictions = smtpd_service_name = smtpd diff --git a/jails/config/mail/postfix/master.cf b/jails/config/mail/postfix/master.cf index 5c70d65..cab72c6 100644 --- a/jails/config/mail/postfix/master.cf +++ b/jails/config/mail/postfix/master.cf @@ -16,9 +16,9 @@ smtp inet n - n - - smtpd #dnsblog unix - - n - 0 dnsblog #tlsproxy unix - - n - 0 tlsproxy submission inet n - n - - smtpd -# -o syslog_name=postfix/submission - -o smtpd_tls_security_level=encrypt + -o smtpd_tls_security_level=encrypt -o tls_preempt_cipherlist=yes +# -o syslog_name=postfix/submission # -o smtpd_sasl_auth_enable=yes # -o smtpd_tls_auth_only=yes # -o smtpd_reject_unlisted_recipient=no diff --git a/jails/config/mail/postfix/master.cf.sample b/jails/config/mail/postfix/master.cf.sample index c0f2508..30c3458 100644 --- a/jails/config/mail/postfix/master.cf.sample +++ b/jails/config/mail/postfix/master.cf.sample @@ -79,7 +79,7 @@ postlog unix-dgram n - n - 1 postlogd # Also specify in main.cf: maildrop_destination_recipient_limit=1 # #maildrop unix - n n - - pipe -# flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} +# flags=DRXhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} # # ==================================================================== # @@ -98,7 +98,7 @@ postlog unix-dgram n - n - 1 postlogd # Also specify in main.cf: cyrus_destination_recipient_limit=1 # #cyrus unix - n n - - pipe -# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} +# flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} # # ==================================================================== # @@ -129,5 +129,5 @@ postlog unix-dgram n - n - 1 postlogd # ${nexthop} ${user} ${extension} # #mailman unix - n n - - pipe -# flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py +# flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py # ${nexthop} ${user} diff --git a/jails/config/maps/maps b/jails/config/maps/maps index 2a2a639..d53f5c1 100755 --- a/jails/config/maps/maps +++ b/jails/config/maps/maps @@ -1,4 +1,6 @@ -# Copyright (c) 2018-2020, diyIT.org +#!/bin/sh + +# Copyright (c) 2018-2019, diyIT.org # All rights reserved. # # BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License") @@ -6,8 +8,6 @@ # # -#!/bin/sh - # the two lines below are not just comments but required by rcorder; service -e # PROVIDE: mapsserver # REQUIRE: NETWORKING DAEMON diff --git a/jails/config/matrix/config.json b/jails/config/matrix/config.json new file mode 100644 index 0000000..ae7c351 --- /dev/null +++ b/jails/config/matrix/config.json @@ -0,0 +1,58 @@ +{ + "default_server_config": { + "m.homeserver": { + "base_url": "https://matrix.ahlawat.com", + "server_name": "matrix.ahlawat.com" + }, + "m.identity_server": { + "base_url": "https://vector.im" + } + }, + "disable_custom_urls": false, + "disable_guests": false, + "disable_login_language_selector": false, + "disable_3pid_login": false, + "brand": "Riot", + "integrations_ui_url": "https://scalar.vector.im/", + "integrations_rest_url": "https://scalar.vector.im/api", + "integrations_widgets_urls": [ + "https://scalar.vector.im/_matrix/integrations/v1", + "https://scalar.vector.im/api", + "https://scalar-staging.vector.im/_matrix/integrations/v1", + "https://scalar-staging.vector.im/api", + "https://scalar-staging.riot.im/scalar/api" + ], + "bug_report_endpoint_url": "https://riot.im/bugreports/submit", + "defaultCountryCode": "US", + "showLabsSettings": false, + "features": { + "feature_pinning": "labs", + "feature_custom_status": "labs", + "feature_custom_tags": "labs", + "feature_state_counters": "labs" + }, + "default_federate": true, + "default_theme": "light", + "roomDirectory": { + "servers": [ + "matrix.org" + ] + }, + "welcomeUserId": "@riot-bot:matrix.org", + "piwik": { + "url": "https://piwik.riot.im/", + "whitelistedHSUrls": ["https://matrix.org"], + "whitelistedISUrls": ["https://vector.im", "https://matrix.org"], + "siteId": 1 + }, + "enable_presence_by_hs_url": { + "https://matrix.org": false, + "https://matrix-client.matrix.org": false + }, + "settingDefaults": { + "breadcrumbs": true + }, + "jitsi": { + "preferredDomain": "meet.ahlawat.com" + } +} diff --git a/jails/config/matrix/nginx.conf b/jails/config/matrix/nginx.conf new file mode 100644 index 0000000..91c9604 --- /dev/null +++ b/jails/config/matrix/nginx.conf @@ -0,0 +1,161 @@ + +#user nobody; +worker_processes 1; + +# This default error log path is compiled-in to make sure configuration parsing +# errors are logged somewhere, especially during unattended boot when stderr +# isn't normally logged anywhere. This path will be touched on every nginx +# start regardless of error log location configured here. See +# https://trac.nginx.org/nginx/ticket/147 for more info. +# +#error_log /var/log/nginx/error.log; +# + +#pid logs/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' + # '"$http_user_agent" "$http_x_forwarded_for"'; + + #access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #gzip on; + +# server { +# listen 80; +# server_name localhost; + + #charset koi8-r; + + #access_log logs/host.access.log main; + +# location / { +# root /usr/local/www/nginx; +# index index.html index.htm; +# } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # +# error_page 500 502 503 504 /50x.html; +# location = /50x.html { +# root /usr/local/www/nginx-dist; +# } + + # proxy the PHP scripts to Apache listening on 127.0.0.1:80 + # + #location ~ \.php$ { + # proxy_pass http://127.0.0.1; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + #location ~ \.php$ { + # root html; + # fastcgi_pass 127.0.0.1:9000; + # fastcgi_index index.php; + # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; + # include fastcgi_params; + #} + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} +# } + + + # another virtual host using mix of IP-, name-, and port-based configuration + # + #server { + # listen 8000; + # listen somename:8080; + # server_name somename alias another.alias; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + + # HTTPS server + # + #server { + # listen 443 ssl; + # server_name localhost; + + # ssl_certificate cert.pem; + # ssl_certificate_key cert.key; + + # ssl_session_cache shared:SSL:1m; + # ssl_session_timeout 5m; + + # ssl_ciphers HIGH:!aNULL:!MD5; + # ssl_prefer_server_ciphers on; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + server_names_hash_bucket_size 64; + + server { + listen 80 default_server; + listen [::]:80 default_server; + server_name _; + return 301 https://$host$request_uri; + } + + server { + listen 0.0.0.0:443 ssl http2; + listen [::]:443 ssl http2; + server_name matrix.ahlawat.com; + + ssl_certificate /mnt/certs/fullchain.pem; + ssl_certificate_key /mnt/certs/privkey.pem; + + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 5m; + + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + + #access_log logs/host.access.log main; + + #location /favicon.ico { access_log off; log_not_found off; } + + root /usr/local/www/riot; + index index.html; + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/local/www/nginx-dist; + } + } +} diff --git a/jails/config/meet/hosts.txt b/jails/config/meet/hosts.txt new file mode 100644 index 0000000..9e66d2d --- /dev/null +++ b/jails/config/meet/hosts.txt @@ -0,0 +1,9 @@ + +192.168.0.67 auth.meet.ahlawat.com +2603:3024:3f6:e1::67 auth.meet.ahlawat.com +192.168.0.67 confrence.meet.ahlawat.com +2603:3024:3f6:e1::67 conference.meet.ahlawat.com +192.168.0.67 focus.meet.ahlawat.com +2603:3024:3f6:e1::67 focus.meet.ahlawat.com +192.168.0.67 jistsi-videobridge.meet.ahlawat.com +2603:3024:3f6:e1::67 jitsi-videobridge.meet.ahlawat.com diff --git a/jails/config/meet/jicofo.conf b/jails/config/meet/jicofo.conf new file mode 100644 index 0000000..6eb02d6 --- /dev/null +++ b/jails/config/meet/jicofo.conf @@ -0,0 +1,9 @@ +JVB_XMPP_HOST=localhost +JVB_XMPP_DOMAIN=meet.ahlawat.com +JVB_XMPP_PORT=5347 +JVB_XMPP_SECRET=YOURSECRET2-qwertyuiop +JVB_XMPP_USER_DOMAIN=auth.meet.ahlawat.com +JVB_XMPP_USER_NAME=focus +JVB_XMPP_USER_SECRET=YOURSECRET3-qwertyuiop + +MAX_MEMORY=3072m diff --git a/jails/config/meet/jitsi-meet/config.js b/jails/config/meet/jitsi-meet/config.js new file mode 100644 index 0000000..7aea293 --- /dev/null +++ b/jails/config/meet/jitsi-meet/config.js @@ -0,0 +1,542 @@ +/* eslint-disable no-unused-vars, no-var */ + +var config = { + // Connection + // + + hosts: { + // XMPP domain. + // domain: 'jitsi-meet.example.com', + domain: 'meet.ahlawat.com', + + // When using authentication, domain for guest users. + // anonymousdomain: 'guest.example.com', + + // Domain for authenticated users. Defaults to . + // authdomain: 'jitsi-meet.example.com', + + // Jirecon recording component domain. + // jirecon: 'jirecon.jitsi-meet.example.com', + + // Call control component (Jigasi). + // call_control: 'callcontrol.jitsi-meet.example.com', + + // Focus component domain. Defaults to focus.. + // focus: 'focus.jitsi-meet.example.com', + + // XMPP MUC domain. FIXME: use XEP-0030 to discover it. + // muc: 'conference.jitsi-meet.example.com' + muc: 'conference.meet.ahlawat.com', + bridge: 'jitsi-videobridge.meet.ahlawat.com', + }, + useNicks: false, + + // BOSH URL. FIXME: use XEP-0156 to discover it. + // bosh: '//jitsi-meet.example.com/http-bind', + bosh: '//meet.ahlawat.com/http-bind', + + // Websocket URL + // websocket: 'wss://jitsi-meet.example.com/xmpp-websocket', + + // The name of client node advertised in XEP-0115 'c' stanza + clientNode: 'http://jitsi.org/jitsimeet', + + // The real JID of focus participant - can be overridden here + // focusUserJid: 'focus@auth.jitsi-meet.example.com', + + + // Testing / experimental features. + // + + testing: { + // P2P test mode disables automatic switching to P2P when there are 2 + // participants in the conference. + p2pTestMode: false + + // Enables the test specific features consumed by jitsi-meet-torture + // testMode: false + + // Disables the auto-play behavior of *all* newly created video element. + // This is useful when the client runs on a host with limited resources. + // noAutoPlayVideo: false + }, + + // Disables ICE/UDP by filtering out local and remote UDP candidates in + // signalling. + // webrtcIceUdpDisable: false, + + // Disables ICE/TCP by filtering out local and remote TCP candidates in + // signalling. + // webrtcIceTcpDisable: false, + + + // Media + // + + // Audio + + // Disable measuring of audio levels. + // disableAudioLevels: false, + // audioLevelsInterval: 200, + + // Enabling this will run the lib-jitsi-meet no audio detection module which + // will notify the user if the current selected microphone has no audio + // input and will suggest another valid device if one is present. + enableNoAudioDetection: true, + + // Enabling this will run the lib-jitsi-meet noise detection module which will + // notify the user if there is noise, other than voice, coming from the current + // selected microphone. The purpose it to let the user know that the input could + // be potentially unpleasant for other meeting participants. + enableNoisyMicDetection: true, + + // Start the conference in audio only mode (no video is being received nor + // sent). + // startAudioOnly: false, + + // Every participant after the Nth will start audio muted. + // startAudioMuted: 10, + + // Start calls with audio muted. Unlike the option above, this one is only + // applied locally. FIXME: having these 2 options is confusing. + // startWithAudioMuted: false, + + // Enabling it (with #params) will disable local audio output of remote + // participants and to enable it back a reload is needed. + // startSilent: false + + // Video + + // Sets the preferred resolution (height) for local video. Defaults to 720. + // resolution: 720, + + // w3c spec-compliant video constraints to use for video capture. Currently + // used by browsers that return true from lib-jitsi-meet's + // util#browser#usesNewGumFlow. The constraints are independent from + // this config's resolution value. Defaults to requesting an ideal + // resolution of 720p. + // constraints: { + // video: { + // height: { + // ideal: 720, + // max: 720, + // min: 240 + // } + // } + // }, + + // Enable / disable simulcast support. + // disableSimulcast: false, + + // Enable / disable layer suspension. If enabled, endpoints whose HD + // layers are not in use will be suspended (no longer sent) until they + // are requested again. + // enableLayerSuspension: false, + + // Every participant after the Nth will start video muted. + // startVideoMuted: 10, + + // Start calls with video muted. Unlike the option above, this one is only + // applied locally. FIXME: having these 2 options is confusing. + // startWithVideoMuted: false, + + // If set to true, prefer to use the H.264 video codec (if supported). + // Note that it's not recommended to do this because simulcast is not + // supported when using H.264. For 1-to-1 calls this setting is enabled by + // default and can be toggled in the p2p section. + // preferH264: true, + + // If set to true, disable H.264 video codec by stripping it out of the + // SDP. + // disableH264: false, + + // Desktop sharing + + // The ID of the jidesha extension for Chrome. + desktopSharingChromeExtId: null, + + // Whether desktop sharing should be disabled on Chrome. + // desktopSharingChromeDisabled: false, + + // The media sources to use when using screen sharing with the Chrome + // extension. + desktopSharingChromeSources: [ 'screen', 'window', 'tab' ], + + // Required version of Chrome extension + desktopSharingChromeMinExtVersion: '0.1', + + // Whether desktop sharing should be disabled on Firefox. + // desktopSharingFirefoxDisabled: false, + + // Optional desktop sharing frame rate options. Default value: min:5, max:5. + // desktopSharingFrameRate: { + // min: 5, + // max: 5 + // }, + + // Try to start calls with screen-sharing instead of camera video. + // startScreenSharing: false, + + // Recording + + // Whether to enable file recording or not. + // fileRecordingsEnabled: false, + // Enable the dropbox integration. + // dropbox: { + // appKey: '' // Specify your app key here. + // // A URL to redirect the user to, after authenticating + // // by default uses: + // // 'https://jitsi-meet.example.com/static/oauth.html' + // redirectURI: + // 'https://jitsi-meet.example.com/subfolder/static/oauth.html' + // }, + // When integrations like dropbox are enabled only that will be shown, + // by enabling fileRecordingsServiceEnabled, we show both the integrations + // and the generic recording service (its configuration and storage type + // depends on jibri configuration) + // fileRecordingsServiceEnabled: false, + // Whether to show the possibility to share file recording with other people + // (e.g. meeting participants), based on the actual implementation + // on the backend. + // fileRecordingsServiceSharingEnabled: false, + + // Whether to enable live streaming or not. + // liveStreamingEnabled: false, + + // Transcription (in interface_config, + // subtitles and buttons can be configured) + // transcribingEnabled: false, + + // Enables automatic turning on captions when recording is started + // autoCaptionOnRecord: false, + + // Misc + + // Default value for the channel "last N" attribute. -1 for unlimited. + channelLastN: -1, + + // Disables or enables RTX (RFC 4588) (defaults to false). + // disableRtx: false, + + // Disables or enables TCC (the default is in Jicofo and set to true) + // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting + // affects congestion control, it practically enables send-side bandwidth + // estimations. + // enableTcc: true, + + // Disables or enables REMB (the default is in Jicofo and set to false) + // (draft-alvestrand-rmcat-remb-03). This setting affects congestion + // control, it practically enables recv-side bandwidth estimations. When + // both TCC and REMB are enabled, TCC takes precedence. When both are + // disabled, then bandwidth estimations are disabled. + // enableRemb: false, + + // Defines the minimum number of participants to start a call (the default + // is set in Jicofo and set to 2). + // minParticipants: 2, + + // Use XEP-0215 to fetch STUN and TURN servers. + // useStunTurn: true, + + // Enable IPv6 support. + // useIPv6: true, + + // Enables / disables a data communication channel with the Videobridge. + // Values can be 'datachannel', 'websocket', true (treat it as + // 'datachannel'), undefined (treat it as 'datachannel') and false (don't + // open any channel). + // openBridgeChannel: true, + + + // UI + // + + // Use display name as XMPP nickname. + // useNicks: false, + + // Require users to always specify a display name. + // requireDisplayName: true, + + // Whether to use a welcome page or not. In case it's false a random room + // will be joined when no room is specified. + enableWelcomePage: true, + + // Enabling the close page will ignore the welcome page redirection when + // a call is hangup. + // enableClosePage: false, + + // Disable hiding of remote thumbnails when in a 1-on-1 conference call. + // disable1On1Mode: false, + + // Default language for the user interface. + // defaultLanguage: 'en', + + // If true all users without a token will be considered guests and all users + // with token will be considered non-guests. Only guests will be allowed to + // edit their profile. + enableUserRolesBasedOnToken: false, + + // Whether or not some features are checked based on token. + // enableFeaturesBasedOnToken: false, + + // Enable lock room for all moderators, even when userRolesBasedOnToken is enabled and participants are guests. + // lockRoomGuestEnabled: false, + + // When enabled the password used for locking a room is restricted to up to the number of digits specified + // roomPasswordNumberOfDigits: 10, + // default: roomPasswordNumberOfDigits: false, + + // Message to show the users. Example: 'The service will be down for + // maintenance at 01:00 AM GMT, + // noticeMessage: '', + + // Enables calendar integration, depends on googleApiApplicationClientID + // and microsoftApiApplicationClientID + // enableCalendarIntegration: false, + + // Stats + // + + // Whether to enable stats collection or not in the TraceablePeerConnection. + // This can be useful for debugging purposes (post-processing/analysis of + // the webrtc stats) as it is done in the jitsi-meet-torture bandwidth + // estimation tests. + // gatherStats: false, + + // The interval at which PeerConnection.getStats() is called. Defaults to 10000 + // pcStatsInterval: 10000, + + // To enable sending statistics to callstats.io you must provide the + // Application ID and Secret. + // callStatsID: '', + // callStatsSecret: '', + + // enables sending participants display name to callstats + // enableDisplayNameInStats: false, + + // enables sending participants email if available to callstats and other analytics + // enableEmailInStats: false, + + // Privacy + // + + // If third party requests are disabled, no other server will be contacted. + // This means avatars will be locally generated and callstats integration + // will not function. + // disableThirdPartyRequests: false, + + + // Peer-To-Peer mode: used (if enabled) when there are just 2 participants. + // + + p2p: { + // Enables peer to peer mode. When enabled the system will try to + // establish a direct connection when there are exactly 2 participants + // in the room. If that succeeds the conference will stop sending data + // through the JVB and use the peer to peer connection instead. When a + // 3rd participant joins the conference will be moved back to the JVB + // connection. + enabled: true, + + // Use XEP-0215 to fetch STUN and TURN servers. + // useStunTurn: true, + + // The STUN servers that will be used in the peer to peer connections + stunServers: [ + + // { urls: 'stun:jitsi-meet.example.com:4446' }, + // { urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' } + { urls: 'stun:ahlawat.com:3478' } + ], + + // Sets the ICE transport policy for the p2p connection. At the time + // of this writing the list of possible values are 'all' and 'relay', + // but that is subject to change in the future. The enum is defined in + // the WebRTC standard: + // https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum. + // If not set, the effective value is 'all'. + // iceTransportPolicy: 'all', + + // If set to true, it will prefer to use H.264 for P2P calls (if H.264 + // is supported). + preferH264: true + + // If set to true, disable H.264 video codec by stripping it out of the + // SDP. + // disableH264: false, + + // How long we're going to wait, before going back to P2P after the 3rd + // participant has left the conference (to filter out page reload). + // backToP2PDelay: 5 + }, + + analytics: { + // The Google Analytics Tracking ID: + // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1' + + // The Amplitude APP Key: + // amplitudeAPPKey: '' + + // Array of script URLs to load as lib-jitsi-meet "analytics handlers". + // scriptURLs: [ + // "libs/analytics-ga.min.js", // google-analytics + // "https://example.com/my-custom-analytics.js" + // ], + }, + + // Information about the jitsi-meet instance we are connecting to, including + // the user region as seen by the server. + deploymentInfo: { + // shard: "shard1", + // region: "europe", + // userRegion: "asia" + }, + + // Decides whether the start/stop recording audio notifications should play on record. + // disableRecordAudioNotification: false, + + // Information for the chrome extension banner + // chromeExtensionBanner: { + // // The chrome extension to be installed address + // url: 'https://chrome.google.com/webstore/detail/jitsi-meetings/kglhbbefdnlheedjiejgomgmfplipfeb', + + // // Extensions info which allows checking if they are installed or not + // chromeExtensionsInfo: [ + // { + // id: 'kglhbbefdnlheedjiejgomgmfplipfeb', + // path: 'jitsi-logo-48x48.png' + // } + // ] + // }, + + // Local Recording + // + + // localRecording: { + // Enables local recording. + // Additionally, 'localrecording' (all lowercase) needs to be added to + // TOOLBAR_BUTTONS in interface_config.js for the Local Recording + // button to show up on the toolbar. + // + // enabled: true, + // + + // The recording format, can be one of 'ogg', 'flac' or 'wav'. + // format: 'flac' + // + + // }, + + // Options related to end-to-end (participant to participant) ping. + // e2eping: { + // // The interval in milliseconds at which pings will be sent. + // // Defaults to 10000, set to <= 0 to disable. + // pingInterval: 10000, + // + // // The interval in milliseconds at which analytics events + // // with the measured RTT will be sent. Defaults to 60000, set + // // to <= 0 to disable. + // analyticsInterval: 60000, + // }, + + // If set, will attempt to use the provided video input device label when + // triggering a screenshare, instead of proceeding through the normal flow + // for obtaining a desktop stream. + // NOTE: This option is experimental and is currently intended for internal + // use only. + // _desktopSharingSourceDevice: 'sample-id-or-label', + + // If true, any checks to handoff to another application will be prevented + // and instead the app will continue to display in the current browser. + // disableDeepLinking: false, + + // A property to disable the right click context menu for localVideo + // the menu has option to flip the locally seen video for local presentations + // disableLocalVideoFlip: false, + + // Mainly privacy related settings + + // Disables all invite functions from the app (share, invite, dial out...etc) + // disableInviteFunctions: true, + + // Disables storing the room name to the recents list + // doNotStoreRoom: true, + + // Deployment specific URLs. + // deploymentUrls: { + // // If specified a 'Help' button will be displayed in the overflow menu with a link to the specified URL for + // // user documentation. + // userDocumentationURL: 'https://docs.example.com/video-meetings.html', + // // If specified a 'Download our apps' button will be displayed in the overflow menu with a link + // // to the specified URL for an app download page. + // downloadAppsUrl: 'https://docs.example.com/our-apps.html' + // }, + + // Options related to the remote participant menu. + // remoteVideoMenu: { + // // If set to true the 'Kick out' button will be disabled. + // disableKick: true + // }, + + // If set to true all muting operations of remote participants will be disabled. + // disableRemoteMute: true, + + // List of undocumented settings used in jitsi-meet + /** + _immediateReloadThreshold + autoRecord + autoRecordToken + debug + debugAudioLevels + deploymentInfo + dialInConfCodeUrl + dialInNumbersUrl + dialOutAuthUrl + dialOutCodesUrl + disableRemoteControl + displayJids + etherpad_base + externalConnectUrl + firefox_fake_device + googleApiApplicationClientID + iAmRecorder + iAmSipGateway + microsoftApiApplicationClientID + peopleSearchQueryTypes + peopleSearchUrl + requireDisplayName + tokenAuthUrl + */ + + // List of undocumented settings used in lib-jitsi-meet + /** + _peerConnStatusOutOfLastNTimeout + _peerConnStatusRtcMuteTimeout + abTesting + avgRtpStatsN + callStatsConfIDNamespace + callStatsCustomScriptUrl + desktopSharingSources + disableAEC + disableAGC + disableAP + disableHPF + disableNS + enableLipSync + enableTalkWhileMuted + forceJVB121Ratio + hiddenDomain + ignoreStartMuted + nick + startBitrate + */ + + + // Allow all above example options to include a trailing comma and + // prevent fear when commenting out the last value. + makeJsonParserHappy: 'even if last key had a trailing comma' + + // no configuration value should follow this line. +}; + +/* eslint-enable no-unused-vars, no-var */ diff --git a/jails/config/meet/jitsi-meet/interface_config.js b/jails/config/meet/jitsi-meet/interface_config.js new file mode 100644 index 0000000..834b101 --- /dev/null +++ b/jails/config/meet/jitsi-meet/interface_config.js @@ -0,0 +1,258 @@ +/* eslint-disable no-unused-vars, no-var, max-len */ + +var interfaceConfig = { + // TO FIX: this needs to be handled from SASS variables. There are some + // methods allowing to use variables both in css and js. + DEFAULT_BACKGROUND: '#474747', + + /** + * Whether or not the blurred video background for large video should be + * displayed on browsers that can support it. + */ + DISABLE_VIDEO_BACKGROUND: false, + + INITIAL_TOOLBAR_TIMEOUT: 20000, + TOOLBAR_TIMEOUT: 4000, + TOOLBAR_ALWAYS_VISIBLE: false, + DEFAULT_REMOTE_DISPLAY_NAME: 'Friend', + DEFAULT_LOCAL_DISPLAY_NAME: 'me', + SHOW_JITSI_WATERMARK: false, + JITSI_WATERMARK_LINK: 'https://meet.ahlawat.com', + + // if watermark is disabled by default, it can be shown only for guests + SHOW_WATERMARK_FOR_GUESTS: false, + SHOW_BRAND_WATERMARK: false, + BRAND_WATERMARK_LINK: 'https://meet.ahlawat.com', + SHOW_POWERED_BY: false, + SHOW_DEEP_LINKING_IMAGE: false, + GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false, + DISPLAY_WELCOME_PAGE_CONTENT: false, + DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false, + APP_NAME: 'Ahlawat meet', + NATIVE_APP_NAME: 'Ahlawat meet', + PROVIDER_NAME: 'Ahlawat', + LANG_DETECTION: true, // Allow i18n to detect the system language + INVITATION_POWERED_BY: false, + + /** + * If we should show authentication block in profile + */ + AUTHENTICATION_ENABLE: true, + + /** + * The name of the toolbar buttons to display in the toolbar. If present, + * the button will display. Exceptions are "livestreaming" and "recording" + * which also require being a moderator and some values in config.js to be + * enabled. Also, the "profile" button will not display for user's with a + * jwt. + */ + TOOLBAR_BUTTONS: [ + 'microphone', 'camera', 'closedcaptions', 'desktop', 'fullscreen', + 'fodeviceselection', 'hangup', 'profile', 'info', 'chat', 'recording', + 'livestreaming', 'etherpad', 'sharedvideo', 'settings', 'raisehand', + 'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts', + 'tileview', 'videobackgroundblur', 'download', 'help', 'mute-everyone', + 'e2ee' + ], + + SETTINGS_SECTIONS: [ 'devices', 'language', 'moderator', 'profile', 'calendar' ], + + // Determines how the video would fit the screen. 'both' would fit the whole + // screen, 'height' would fit the original video height to the height of the + // screen, 'width' would fit the original video width to the width of the + // screen respecting ratio. + VIDEO_LAYOUT_FIT: 'both', + + /** + * Whether to only show the filmstrip (and hide the toolbar). + */ + filmStripOnly: false, + + /** + * Whether to show thumbnails in filmstrip as a column instead of as a row. + */ + VERTICAL_FILMSTRIP: true, + + // A html text to be shown to guests on the close page, false disables it + CLOSE_PAGE_GUEST_HINT: false, + SHOW_PROMOTIONAL_CLOSE_PAGE: false, + RANDOM_AVATAR_URL_PREFIX: false, + RANDOM_AVATAR_URL_SUFFIX: false, + FILM_STRIP_MAX_HEIGHT: 120, + + // Enables feedback star animation. + ENABLE_FEEDBACK_ANIMATION: false, + DISABLE_FOCUS_INDICATOR: false, + DISABLE_DOMINANT_SPEAKER_INDICATOR: false, + + /** + * Whether the speech to text transcription subtitles panel is disabled. + * If {@code undefined}, defaults to {@code false}. + * + * @type {boolean} + */ + DISABLE_TRANSCRIPTION_SUBTITLES: false, + + /** + * Whether the ringing sound in the call/ring overlay is disabled. If + * {@code undefined}, defaults to {@code false}. + * + * @type {boolean} + */ + DISABLE_RINGING: false, + AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)', + AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)', + POLICY_LOGO: null, + LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9 + REMOTE_THUMBNAIL_RATIO: 1, // 1:1 + // Documentation reference for the live streaming feature. + LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live', + + /** + * Whether the mobile app Jitsi Meet is to be promoted to participants + * attempting to join a conference in a mobile Web browser. If + * {@code undefined}, defaults to {@code true}. + * + * @type {boolean} + */ + MOBILE_APP_PROMO: true, + + /** + * Maximum coeficient of the ratio of the large video to the visible area + * after the large video is scaled to fit the window. + * + * @type {number} + */ + MAXIMUM_ZOOMING_COEFFICIENT: 1.3, + + /* + * If indicated some of the error dialogs may point to the support URL for + * help. + */ + SUPPORT_URL: 'https://ahlawat.com/', + + /** + * Whether the connection indicator icon should hide itself based on + * connection strength. If true, the connection indicator will remain + * displayed while the participant has a weak connection and will hide + * itself after the CONNECTION_INDICATOR_HIDE_TIMEOUT when the connection is + * strong. + * + * @type {boolean} + */ + CONNECTION_INDICATOR_AUTO_HIDE_ENABLED: true, + + /** + * How long the connection indicator should remain displayed before hiding. + * Used in conjunction with CONNECTION_INDICATOR_AUTOHIDE_ENABLED. + * + * @type {number} + */ + CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT: 5000, + + /** + * If true, hides the connection indicators completely. + * + * @type {boolean} + */ + CONNECTION_INDICATOR_DISABLED: false, + + /** + * If true, hides the video quality label indicating the resolution status + * of the current large video. + * + * @type {boolean} + */ + VIDEO_QUALITY_LABEL_DISABLED: false, + + /** + * If true, will display recent list + * + * @type {boolean} + */ + RECENT_LIST_ENABLED: true, + + // Names of browsers which should show a warning stating the current browser + // has a suboptimal experience. Browsers which are not listed as optimal or + // unsupported are considered suboptimal. Valid values are: + // chrome, chromium, edge, electron, firefox, nwjs, opera, safari + OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron' ], + + // Browsers, in addition to those which do not fully support WebRTC, that + // are not supported and should show the unsupported browser page. + UNSUPPORTED_BROWSERS: [], + + /** + * A UX mode where the last screen share participant is automatically + * pinned. Valid values are the string "remote-only" so remote participants + * get pinned but not local, otherwise any truthy value for all participants, + * and any falsy value to disable the feature. + * + * Note: this mode is experimental and subject to breakage. + */ + AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only', + + /** + * If true, presence status: busy, calling, connected etc. is not displayed. + */ + DISABLE_PRESENCE_STATUS: false, + + /** + * If true, notifications regarding joining/leaving are no longer displayed. + */ + DISABLE_JOIN_LEAVE_NOTIFICATIONS: false, + + /** + * Decides whether the chrome extension banner should be rendered on the landing page and during the meeting. + * If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s) + * being already installed is done before rendering. + */ + SHOW_CHROME_EXTENSION_BANNER: false + + /** + * When enabled, the kick participant button will not be presented for users without a JWT + */ + // HIDE_KICK_BUTTON_FOR_GUESTS: false + + /** + * How many columns the tile view can expand to. The respected range is + * between 1 and 5. + */ + // TILE_VIEW_MAX_COLUMNS: 5, + + /** + * Specify custom URL for downloading android mobile app. + */ + // MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet', + + /** + * Specify URL for downloading ios mobile app. + */ + // MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905', + + /** + * Specify mobile app scheme for opening the app from the mobile browser. + */ + // APP_SCHEME: 'org.jitsi.meet', + + /** + * Specify the Android app package name. + */ + // ANDROID_APP_PACKAGE: 'org.jitsi.meet', + + /** + * Override the behavior of some notifications to remain displayed until + * explicitly dismissed through a user action. The value is how long, in + * milliseconds, those notifications should remain displayed. + */ + // ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT: 15000, + + // List of undocumented settings + /** + INDICATOR_FONT_SIZES + MOBILE_DYNAMIC_LINK + PHONE_NUMBER_REGEX + */ +}; + +/* eslint-enable no-unused-vars, no-var, max-len */ diff --git a/jails/config/meet/nginx.conf b/jails/config/meet/nginx.conf new file mode 100644 index 0000000..f7dfdef --- /dev/null +++ b/jails/config/meet/nginx.conf @@ -0,0 +1,190 @@ + +#user nobody; +worker_processes 1; + +# This default error log path is compiled-in to make sure configuration parsing +# errors are logged somewhere, especially during unattended boot when stderr +# isn't normally logged anywhere. This path will be touched on every nginx +# start regardless of error log location configured here. See +# https://trac.nginx.org/nginx/ticket/147 for more info. +# +#error_log /var/log/nginx/error.log; +# + +#pid logs/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' + # '"$http_user_agent" "$http_x_forwarded_for"'; + + #access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #gzip on; + +# server { +# listen 80; +# server_name localhost; + + #charset koi8-r; + + #access_log logs/host.access.log main; + +# location / { +# root /usr/local/www/nginx; +# index index.html index.htm; +# } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # +# error_page 500 502 503 504 /50x.html; +# location = /50x.html { +# root /usr/local/www/nginx-dist; +# } + + # proxy the PHP scripts to Apache listening on 127.0.0.1:80 + # + #location ~ \.php$ { + # proxy_pass http://127.0.0.1; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + #location ~ \.php$ { + # root html; + # fastcgi_pass 127.0.0.1:9000; + # fastcgi_index index.php; + # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; + # include fastcgi_params; + #} + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} +# } + + + # another virtual host using mix of IP-, name-, and port-based configuration + # + #server { + # listen 8000; + # listen somename:8080; + # server_name somename alias another.alias; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + + # HTTPS server + # + #server { + # listen 443 ssl; + # server_name localhost; + + # ssl_certificate cert.pem; + # ssl_certificate_key cert.key; + + # ssl_session_cache shared:SSL:1m; + # ssl_session_timeout 5m; + + # ssl_ciphers HIGH:!aNULL:!MD5; + # ssl_prefer_server_ciphers on; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + server_names_hash_bucket_size 64; + + server { + listen 80 default_server; + listen [::]:80 default_server; + server_name _; + return 301 https://$host$request_uri; + } + + server { + listen 0.0.0.0:443 ssl http2; + listen [::]:443 ssl http2; + server_name meet.ahlawat.com; + + ssl_certificate /mnt/certs/fullchain.pem; + ssl_certificate_key /mnt/certs/privkey.pem; + + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 5m; + + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + + #access_log logs/host.access.log main; + + #location /favicon.ico { access_log off; log_not_found off; } + + root /usr/local/www/jitsi-meet; + index index.html; + location ~ ^/([a-zA-Z0-9=\?]+)$ { + rewrite ^/(.*)$ / break; + } + location / { + ssi on; + } + # BOSH, Bidirectional-streams Over Synchronous HTTP + # https://en.wikipedia.org/wiki/BOSH_(protocol) + location /http-bind { + proxy_pass http://meet.ahlawat.com:5280/http-bind; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $http_host; + } + # external_api.js must be accessible from the root of the + # installation for the electron version of Jitsi Meet to work + # https://github.com/jitsi/jitsi-meet-electron + location /external_api.js { + alias /usr/local/www/jitsi-meet/libs/external_api.min.js; + } + + # xmpp websockets + location /xmpp-websocket { + proxy_pass http://meet.ahlawat.com:5280/xmpp-websocket; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + tcp_nodelay on; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/local/www/nginx-dist; + } + } +} diff --git a/jails/config/meet/prosody.cfg.lua b/jails/config/meet/prosody.cfg.lua new file mode 100644 index 0000000..dc33145 --- /dev/null +++ b/jails/config/meet/prosody.cfg.lua @@ -0,0 +1,234 @@ +-- Prosody Example Configuration File +-- +-- Information on configuring Prosody can be found on our +-- website at https://prosody.im/doc/configure +-- +-- Tip: You can check that the syntax of this file is correct +-- when you have finished by running this command: +-- prosodyctl check config +-- If there are any errors, it will let you know what and where +-- they are, otherwise it will keep quiet. +-- +-- The only thing left to do is rename this file to remove the .dist ending, and fill in the +-- blanks. Good luck, and happy Jabbering! + +pidfile = "/var/run/prosody/prosody.pid" +-- interfaces = { "192.168.0.67", "2603:3024:3f6:e1::67" } + +---------- Server-wide settings ---------- +-- Settings in this section apply to the whole server and are the default settings +-- for any virtual hosts + +-- This is a (by default, empty) list of accounts that are admins +-- for the server. Note that you must create the accounts separately +-- (see https://prosody.im/doc/creating_accounts for info) +-- Example: admins = { "user1@example.com", "user2@example.net" } +admins = { "focus@auth.meet.ahlawat.com" } + +-- Enable use of libevent for better performance under high load +-- For more information see: https://prosody.im/doc/libevent +--use_libevent = true + +-- Prosody will always look in its source directory for modules, but +-- this option allows you to specify additional locations where Prosody +-- will look for modules first. For community modules, see https://modules.prosody.im/ +--plugin_paths = {} + +-- This is the list of modules Prosody will load on startup. +-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too. +-- Documentation for bundled modules can be found at: https://prosody.im/doc/modules +modules_enabled = { + + -- Generally required + "roster"; -- Allow users to have a roster. Recommended ;) + "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in. + "tls"; -- Add support for secure TLS on c2s/s2s connections + "dialback"; -- s2s dialback support + "disco"; -- Service discovery + + -- Not essential, but recommended + "carbons"; -- Keep multiple clients in sync + "pep"; -- Enables users to publish their avatar, mood, activity, playing music and more + "private"; -- Private XML storage (for room bookmarks, etc.) + "blocklist"; -- Allow users to block communications with other users + "vcard4"; -- User profiles (stored in PEP) + "vcard_legacy"; -- Conversion between legacy vCard and PEP Avatar, vcard + + -- Nice to have + "version"; -- Replies to server version requests + "uptime"; -- Report how long server has been running + "time"; -- Let others know the time here on this server + "ping"; -- Replies to XMPP pings with pongs + "register"; -- Allow users to register on this server using a client and change passwords + --"mam"; -- Store messages in an archive and allow users to access it + --"csi_simple"; -- Simple Mobile optimizations + + -- Admin interfaces + "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands + --"admin_telnet"; -- Opens telnet console interface on localhost port 5582 + + -- HTTP modules + --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP" + --"websocket"; -- XMPP over WebSockets + --"http_files"; -- Serve static files from a directory over HTTP + + -- Other specific functionality + --"limits"; -- Enable bandwidth limiting for XMPP connections + --"groups"; -- Shared roster support + --"server_contact_info"; -- Publish contact information for this service + --"announce"; -- Send announcement to all online users + --"welcome"; -- Welcome users who register accounts + --"watchregistrations"; -- Alert admins of registrations + --"motd"; -- Send a message to users when they log in + --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. + --"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use +} + +-- These modules are auto-loaded, but should you want +-- to disable them then uncomment them here: +modules_disabled = { + -- "offline"; -- Store offline messages + -- "c2s"; -- Handle client connections + -- "s2s"; -- Handle server-to-server connections + -- "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. +} + +-- Disable account creation by default, for security +-- For more information see https://prosody.im/doc/creating_accounts +allow_registration = false + +-- Force clients to use encrypted connections? This option will +-- prevent clients from authenticating unless they are using encryption. + +c2s_require_encryption = true + +-- Force servers to use encrypted connections? This option will +-- prevent servers from authenticating unless they are using encryption. + +s2s_require_encryption = true + +-- Force certificate authentication for server-to-server connections? + +s2s_secure_auth = false + +-- Some servers have invalid or self-signed certificates. You can list +-- remote domains here that will not be required to authenticate using +-- certificates. They will be authenticated using DNS instead, even +-- when s2s_secure_auth is enabled. + +--s2s_insecure_domains = { "insecure.example" } + +-- Even if you disable s2s_secure_auth, you can still require valid +-- certificates for some domains by specifying a list here. + +--s2s_secure_domains = { "jabber.org" } + +-- Select the authentication backend to use. The 'internal' providers +-- use Prosody's configured data storage to store the authentication data. + +authentication = "internal_hashed" + +-- Select the storage backend to use. By default Prosody uses flat files +-- in its configured data directory, but it also supports more backends +-- through modules. An "sql" backend is included by default, but requires +-- additional dependencies. See https://prosody.im/doc/storage for more info. + +--storage = "sql" -- Default is "internal" + +-- For the "sql" backend, you can uncomment *one* of the below to configure: +--sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename. +--sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } +--sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } + + +-- Archiving configuration +-- If mod_mam is enabled, Prosody will store a copy of every message. This +-- is used to synchronize conversations between multiple clients, even if +-- they are offline. This setting controls how long Prosody will keep +-- messages in the archive before removing them. + +archive_expires_after = "1w" -- Remove archived messages after 1 week + +-- You can also configure messages to be stored in-memory only. For more +-- archiving options, see https://prosody.im/doc/modules/mod_mam + +-- Logging configuration +-- For advanced logging see https://prosody.im/doc/logging +log = { + info = "prosody.log"; -- Change 'info' to 'debug' for verbose logging + error = "prosody.err"; + -- "*syslog"; -- Uncomment this for logging to syslog + -- "*console"; -- Log to the console, useful for debugging with daemonize=false +} + +-- Uncomment to enable statistics +-- For more info see https://prosody.im/doc/statistics +-- statistics = "internal" + +-- Certificates +-- Every virtual host and component needs a certificate so that clients and +-- servers can securely verify its identity. Prosody will automatically load +-- certificates/keys from the directory specified here. +-- For more information, including how to use 'prosodyctl' to auto-import certificates +-- (from e.g. Let's Encrypt) see https://prosody.im/doc/certificates + +-- Location of directory to find certificates in (relative to main config file): +-- certificates = "certs" +certificates = "/mnt/certs" + +-- HTTPS currently only supports a single certificate, specify it here: +--https_certificate = "/usr/local/etc/prosody/certs/localhost.crt" +https_certificate = "/mnt/certs/haproxy.pem" + +----------- Virtual hosts ----------- +-- You need to add a VirtualHost entry for each domain you wish Prosody to serve. +-- Settings under each VirtualHost entry apply *only* to that host. + +-- VirtualHost "localhost" + +VirtualHost "meet.ahlawat.com" + ssl = { + key = "/mnt/certs/privkeyr.pem"; + certificate = "/mnt/certs/fullchain.pem"; + } + authentication = "anonymous" + modules_enabled = { + "bosh"; + "pubsub"; + } + c2s_require_encryption = false + +-- certificate = "/path/to/example.crt" + +------ Components ------ +-- You can specify components to add hosts that provide special services, +-- like multi-user conferences, and transports. +-- For more information on components, see https://prosody.im/doc/components + +---Set up a MUC (multi-user chat) room server on conference.example.com: +--Component "conference.example.com" "muc" + +Component "conference.meet.ahlawat.com" "muc" +Component "jitsi-videobridge.meet.ahlawat.com" + component_secret = "YOURSECRET1-qwertyuiop" +Component "focus.meet.ahlawat.com" + component_secret = "YOURSECRET2-qwertyuiop" + +--- Store MUC messages in an archive and allow users to access it +--modules_enabled = { "muc_mam" } + +---Set up an external component (default component port is 5347) +-- +-- External components allow adding various services, such as gateways/ +-- transports to other networks like ICQ, MSN and Yahoo. For more info +-- see: https://prosody.im/doc/components#adding_an_external_component +-- +--Component "gateway.example.com" +-- component_secret = "password" + +VirtualHost "auth.meet.ahlawat.com" + ssl = { + key = "/var/db/prosody/auth.meet.ahlawat.com.key"; + certificate = "/var/db/prosody/auth.meet.ahlawat.com.crt"; + } + authentication = "internal_hashed" diff --git a/jails/config/meet/videobridge/jitsi-videobridge.conf b/jails/config/meet/videobridge/jitsi-videobridge.conf new file mode 100644 index 0000000..aa1b509 --- /dev/null +++ b/jails/config/meet/videobridge/jitsi-videobridge.conf @@ -0,0 +1,7 @@ +JVB_XMPP_HOST=localhost +JVB_XMPP_DOMAIN=meet.ahlawat.com +JVB_XMPP_PORT=5347 +JVB_XMPP_SECRET=YOURSECRET1-qwertyuiop + +VIDEOBRIDGE_MAX_MEMORY=3072m +# VIDEOBRIDGE_DEBUG_OPTIONS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" diff --git a/jails/config/meet/videobridge/sip-communicator.properties b/jails/config/meet/videobridge/sip-communicator.properties new file mode 100644 index 0000000..ba917a1 --- /dev/null +++ b/jails/config/meet/videobridge/sip-communicator.properties @@ -0,0 +1,7 @@ +#org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.meet.ahlawat.com/.* +org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false +# The videobridge uses 443 by default with 4443 as a fallback, but since we're already +# running nginx on 443 in this example doc, we specify 4443 manually to avoid a race condition +org.jitsi.videobridge.TCP_HARVESTER_PORT=4443 +org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.0.67 +org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=173.167.104.25 diff --git a/jails/config/monitor/httpd.conf b/jails/config/monitor/httpd.conf index 9584005..9467a65 100644 --- a/jails/config/monitor/httpd.conf +++ b/jails/config/monitor/httpd.conf @@ -577,7 +577,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/monitor/json/blackbox-exporter-overview_rev1.json b/jails/config/monitor/json/blackbox-exporter-overview_rev1.json new file mode 100644 index 0000000..237164d --- /dev/null +++ b/jails/config/monitor/json/blackbox-exporter-overview_rev1.json @@ -0,0 +1,938 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "Prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "5.4.3" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "${DS_PROMETHEUS}", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": 11175, + "graphTooltip": 0, + "id": null, + "iteration": 1573505620144, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 15, + "panels": [], + "repeat": "targets", + "title": "$targets UP/DOWN Status", + "type": "row" + }, + { + "cacheTimeout": null, + "colorBackground": true, + "colorValue": false, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 2, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "minSpan": 3, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "probe_success{instance=~\"$targets\"}", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "1,1", + "title": "$targets", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "UP", + "value": "1" + }, + { + "op": "=", + "text": "DOWN", + "value": "0" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": true, + "colorValue": false, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 6, + "x": 0, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "minSpan": 3, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeatDirection": "h", + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "probe_http_ssl{instance=~\"$targets\"}", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "0,1", + "title": "SSL", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "YES", + "value": "1" + }, + { + "op": "=", + "text": "NO", + "value": "0" + } + ], + "valueName": "current" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS}", + "fill": 1, + "gridPos": { + "h": 6, + "w": 9, + "x": 6, + "y": 3 + }, + "id": 17, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "probe_duration_seconds{instance=~\"$targets\"}", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "legendFormat": "seconds", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Probe Duration", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS}", + "fill": 1, + "gridPos": { + "h": 6, + "w": 9, + "x": 15, + "y": 3 + }, + "id": 21, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "probe_dns_lookup_time_seconds{instance=~\"$targets\"}", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "legendFormat": "seconds", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Lookup", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": true, + "colorValue": false, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_PROMETHEUS}", + "decimals": 2, + "format": "dtdurations", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 6, + "x": 0, + "y": 5 + }, + "id": 19, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "minSpan": 3, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeatDirection": "h", + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "probe_ssl_earliest_cert_expiry{instance=~\"$targets\"}-time()", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "0,1209600", + "title": "SSL Cert Expiry", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "YES", + "value": "1" + }, + { + "op": "=", + "text": "NO", + "value": "0" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "decimals": 0, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 6, + "x": 0, + "y": 7 + }, + "id": 20, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "minSpan": 3, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeatDirection": "h", + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "probe_http_status_code{instance=~\"$targets\"}", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "200,299,300", + "title": "HTTP Status Code", + "transparent": false, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "YES", + "value": "1" + }, + { + "op": "=", + "text": "NO", + "value": "0" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "s", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 23, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "avg(probe_duration_seconds{instance=~\"$targets\"})", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "title": "Average Probe Duration", + "type": "singlestat", + "valueFontSize": "50%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_PROMETHEUS}", + "format": "s", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 24, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "avg(probe_dns_lookup_time_seconds{instance=~\"$targets\"})", + "format": "time_series", + "interval": "$interval", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "title": "Average DNS Lookup", + "type": "singlestat", + "valueFontSize": "50%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + } + ], + "refresh": "1m", + "schemaVersion": 16, + "style": "dark", + "tags": [ + "blackbox", + "prometheus" + ], + "templating": { + "list": [ + { + "auto": true, + "auto_count": 10, + "auto_min": "10s", + "current": { + "text": "auto", + "value": "$__auto_interval_interval" + }, + "hide": 0, + "label": "Interval", + "name": "interval", + "options": [ + { + "selected": true, + "text": "auto", + "value": "$__auto_interval_interval" + }, + { + "selected": false, + "text": "5s", + "value": "5s" + }, + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": false, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "5s,10s,30s,1m,10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS}", + "definition": "label_values(probe_success, instance)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "targets", + "options": [], + "query": "label_values(probe_success, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Blackbox Exporter Overview", + "uid": "xtkCtBkiz", + "version": 1, + "description": "Fork of https://grafana.com/grafana/dashboards/5345 which uses 'instance' instead of 'target' label" +} \ No newline at end of file diff --git a/jails/config/monitor/json/freebsd-gstat-exporter_rev1.json b/jails/config/monitor/json/freebsd-gstat-exporter_rev1.json new file mode 100644 index 0000000..3d3b9d4 --- /dev/null +++ b/jails/config/monitor/json/freebsd-gstat-exporter_rev1.json @@ -0,0 +1,1374 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS3", + "label": "prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "5.4.3" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "description": "Grafana dashboard for gstat_exporter from https://github.com/tykling/gstat_exporter", + "editable": true, + "gnetId": 11223, + "graphTooltip": 1, + "id": null, + "iteration": 1574104862602, + "links": [], + "panels": [ + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 17, + "panels": [ + { + "columns": [], + "description": "", + "fontSize": "100%", + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 14, + "links": [], + "pageSize": null, + "scroll": true, + "showHeader": true, + "sort": { + "col": 6, + "desc": false + }, + "styles": [ + { + "alias": "Time", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "link": false, + "pattern": "Time", + "type": "hidden" + }, + { + "alias": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "__name__", + "thresholds": [], + "type": "hidden", + "unit": "short" + }, + { + "alias": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "name", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "job", + "thresholds": [], + "type": "hidden", + "unit": "short" + }, + { + "alias": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "Value", + "thresholds": [], + "type": "hidden", + "unit": "short" + }, + { + "alias": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "number", + "unit": "short" + } + ], + "targets": [ + { + "expr": "gstat_percent_busy{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "table", + "instant": true, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "title": "GEOM List", + "transform": "table", + "type": "table" + } + ], + "title": "GEOM Device Info", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 24, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 15, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_miliseconds_per_read{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} read latency ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Read Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "clockms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 27, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_miliseconds_per_write{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} write latency ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Write Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "clockms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 26, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_miliseconds_per_delete{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} delete latency ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Delete Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "clockms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "GEOM Latency", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 19, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 25, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_read_kilobytes_per_second{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} read/sec ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Read Bandwidth", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "KBs", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 13 + }, + "id": 21, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_write_kilobytes_per_second{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} write/sec ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Write Bandwidth", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "KBs", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 23 + }, + "id": 22, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_delete_kilobytes_per_second{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} delete/sec ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Delete Bandwidth", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "KBs", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "GEOM Bandwidth", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 6, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 2, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_read_operations_per_second{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} read operations/sec ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM disk read operations per second", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 3, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_write_operations_per_second{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} write operations/sec ({{ instance }})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM disk write operations per second", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 4, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_delete_operations_per_second{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} delete operations/sec ({{ instance }})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM disk delete operations per second", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "GEOM I/O operations/second", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 12, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 20, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_queue_depth{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} queue depth ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GEOM Queue Depth", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "GEOM Queue Depth", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 8, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 6 + }, + "id": 10, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "gstat_percent_busy{instance=~\"$instance\", name=~\"$geom\", mediasize=~\"$size\", rotationrate=~\"$rpm\", sectorsize=~\"$sectorsize\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{ name }} % busy ({{ instance }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Geom Busy %", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "GEOM Busy %", + "type": "row" + } + ], + "refresh": false, + "schemaVersion": 16, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS3}", + "definition": "label_values(gstat_up, instance)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "instance", + "options": [], + "query": "label_values(gstat_up, instance)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS3}", + "definition": "label_values(gstat_percent_busy, name)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "geom", + "options": [], + "query": "label_values(gstat_percent_busy, name)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS3}", + "definition": "label_values(gstat_percent_busy, mediasize)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "size", + "options": [], + "query": "label_values(gstat_percent_busy, mediasize)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS3}", + "definition": "label_values(gstat_percent_busy, rotationrate)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "rpm", + "options": [], + "query": "label_values(gstat_percent_busy, rotationrate)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS3}", + "definition": "label_values(gstat_percent_busy, sectorsize)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "sectorsize", + "options": [], + "query": "label_values(gstat_percent_busy, sectorsize)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "FreeBSD gstat_exporter", + "uid": "mmI8ImbWz", + "version": 28 +} \ No newline at end of file diff --git a/jails/config/monitor/json/pfsense-firewall-dashboard_rev1.json b/jails/config/monitor/json/pfsense-firewall-dashboard_rev1.json new file mode 100644 index 0000000..d4f4a52 --- /dev/null +++ b/jails/config/monitor/json/pfsense-firewall-dashboard_rev1.json @@ -0,0 +1,2711 @@ +{ + "__inputs": [], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "5.4.3" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "datasource", + "id": "influxdb", + "name": "InfluxDB", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "description": "Dashboard showing metrics collected using Telelgraf plugin on pfsense.", + "editable": true, + "gnetId": 11059, + "graphTooltip": 0, + "id": null, + "iteration": 1550319388469, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 6, + "panels": [], + "title": "Overview", + "type": "row" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 1 + }, + "hideTimeOverride": true, + "id": 9, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "uptime_format", + "targets": [ + { + "alias": "Load 15m", + "groupBy": [], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "uptime_format" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": ".7,1.5", + "timeFrom": "30s", + "title": "Uptime", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 1 + }, + "id": 3, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "alias": "Mem Used", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "used_percent" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": "15,50", + "title": "Mem Used", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": 2, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 1 + }, + "id": 2, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "alias": "CPU User", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + } + ], + "measurement": "cpu", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "usage_idle" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "* -1 + 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "cpu", + "operator": "=", + "value": "cpu-total" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": "10,50", + "title": "CPU", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 12, + "y": 1 + }, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "alias": "Load 1m", + "groupBy": [], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "load1" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": "15,50", + "title": "Load (1m)", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "description": "Disk Space Used /var/run", + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 16, + "y": 1 + }, + "id": 7, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "alias": "", + "groupBy": [], + "measurement": "disk", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "used_percent" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "path", + "operator": "=", + "value": "/var/run" + } + ] + } + ], + "thresholds": "25,50", + "title": "Disk Space Used", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 18, + "y": 1 + }, + "hideTimeOverride": true, + "id": 8, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "n_cpus", + "targets": [ + { + "alias": "Load 15m", + "groupBy": [], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "n_cpus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": ".7,1.5", + "timeFrom": "30s", + "title": "# of CPU", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "description": "Users logged in, usually via ssh.", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 20, + "y": 1 + }, + "hideTimeOverride": true, + "id": 25, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "20%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "n_users", + "targets": [ + { + "alias": "Load 15m", + "groupBy": [], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "n_users" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": ".7,1.5", + "timeFrom": "30s", + "title": "Users", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$dataSource", + "decimals": null, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 2, + "x": 22, + "y": 1 + }, + "id": 26, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "median", + "targets": [ + { + "alias": "Load 15m", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "total" + ], + "type": "field" + }, + { + "params": [], + "type": "median" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": ".7,1.5", + "title": "# Process", + "transparent": true, + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 11, + "panels": [], + "title": "Memory", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$dataSource", + "fill": 0, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 13, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Available", + "yaxis": 2 + }, + { + "alias": "Free", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Active", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "active" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Available", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "available" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Buffered", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "buffered" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Cached", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "cached" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Free", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "free" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Inactive", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "inactive" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Slab", + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "G", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "slab" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": true, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 42, + "panels": [], + "title": "Processes", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$dataSource", + "fill": 0, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 13 + }, + "id": 40, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Total", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Zombie", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "zombies" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Sleeping", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "sleeping" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Running", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "running" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Stopped", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "stopped" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Idle", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "idle" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Blocked", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "G", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "blocked" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Unknown", + "groupBy": [], + "hide": false, + "measurement": "processes", + "orderByTime": "ASC", + "policy": "default", + "refId": "H", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "unknown" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Proccesses", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": true, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 20 + }, + "id": 15, + "panels": [], + "title": "pf", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$dataSource", + "fill": 0, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 17, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Entries", + "groupBy": [], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "entries" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Inserts", + "groupBy": [], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "inserts" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Removals", + "groupBy": [], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "removals" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Searches", + "groupBy": [], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "searches" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "pf", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": true, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 10, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 20, + "panels": [], + "repeat": "Interface", + "title": "Interface - $Interface", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$dataSource", + "fill": 0, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 18, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideZero": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": null, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Bytes Recv", + "yaxis": 2 + }, + { + "alias": "Bytes Sent", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Bytes Recv", + "groupBy": [], + "hide": false, + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"bytes_recv\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Bytes Sent", + "groupBy": [], + "hide": false, + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT median(\"bytes_sent\") FROM \"net\" WHERE (\"interface\"=~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Drop In", + "groupBy": [], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"drop_in\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "drop_in" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Drop Out", + "groupBy": [], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"drop_out\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "drop_out" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Err In", + "groupBy": [], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"err_in\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "err_in" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Err Out", + "groupBy": [], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"err_out\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "err_out" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=", + "value": "select tag value" + } + ] + }, + { + "alias": "Pckts Recv", + "groupBy": [], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"packets_recv\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "G", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_recv" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + }, + { + "alias": "Pckts Sent", + "groupBy": [], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"packets_sent\") FROM \"net\" WHERE (\"interface\" =~ /^$Interface$/ AND \"host\" =~ /^$Host$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "H", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "packets_sent" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$Interface$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Net Interface - $Interface", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": true, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 2, + "max": null, + "min": null, + "show": true + }, + { + "format": "bytes", + "label": null, + "logBase": 2, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 28, + "panels": [], + "repeat": "Disk", + "title": "$Disk", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$dataSource", + "fill": 0, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 37 + }, + "id": 30, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideZero": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Write bytes", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "IO Time", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "io_time" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "iops in progress", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "iops_in_progress" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Weighted IO Time", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "refId": "I", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "weighted_io_time" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Read bytes", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "read_bytes" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Write bytes", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT derivative(mean(\"write_bytes\"), 10s) FROM \"diskio\" WHERE (\"host\" =~ /^$Host$/ AND \"name\" =~ /^$Disk$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "write_bytes" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Reads", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT derivative(mean(\"write_bytes\"), 10s) FROM \"diskio\" WHERE (\"host\" =~ /^$Host$/ AND \"name\" =~ /^$Disk$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "reads" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Writes", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT derivative(mean(\"write_bytes\"), 10s) FROM \"diskio\" WHERE (\"host\" =~ /^$Host$/ AND \"name\" =~ /^$Disk$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "writes" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Read Time", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT derivative(mean(\"write_bytes\"), 10s) FROM \"diskio\" WHERE (\"host\" =~ /^$Host$/ AND \"name\" =~ /^$Disk$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "G", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "read_time" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + }, + { + "alias": "Write Time", + "groupBy": [], + "hide": false, + "measurement": "diskio", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT derivative(mean(\"write_bytes\"), 10s) FROM \"diskio\" WHERE (\"host\" =~ /^$Host$/ AND \"name\" =~ /^$Disk$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "H", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "write_time" + ], + "type": "field" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$Host$/" + }, + { + "condition": "AND", + "key": "name", + "operator": "=~", + "value": "/^$Disk$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Disk IO - $Disk", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": true, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 2, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "5m", + "schemaVersion": 16, + "style": "dark", + "tags": [ + "pfsense", + "firewall", + "Telegraf", + "InfluxDB" + ], + "templating": { + "list": [ + { + "current": { + "text": "InfluxDB-pfsense", + "value": "InfluxDB-pfsense" + }, + "hide": 0, + "label": null, + "name": "dataSource", + "options": [], + "query": "influxdb", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "allValue": null, + "current": {}, + "datasource": "$dataSource", + "definition": "SHOW TAG VALUES FROM \"pf\" WITH KEY = \"host\"", + "hide": 0, + "includeAll": false, + "label": "pfsense", + "multi": false, + "name": "Host", + "options": [], + "query": "SHOW TAG VALUES FROM \"pf\" WITH KEY = \"host\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "$dataSource", + "definition": "SHOW TAG VALUES FROM \"net\" WITH KEY = \"interface\" WHERE \"host\" =~ /^$Host$/", + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "name": "Interface", + "options": [], + "query": "SHOW TAG VALUES FROM \"net\" WITH KEY = \"interface\" WHERE \"host\" =~ /^$Host$/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "$dataSource", + "definition": "SHOW TAG VALUES FROM \"diskio\" WITH KEY = \"name\" WHERE \"host\" =~ /^$Host$/", + "hide": 0, + "includeAll": true, + "label": null, + "multi": false, + "name": "Disk", + "options": [], + "query": "SHOW TAG VALUES FROM \"diskio\" WITH KEY = \"name\" WHERE \"host\" =~ /^$Host$/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "pfSense Firewall Dashboard", + "uid": "xSa5auuik", + "version": 36 +} \ No newline at end of file diff --git a/jails/config/monitor/json/pfsense_rev1.json b/jails/config/monitor/json/pfsense_rev1.json new file mode 100644 index 0000000..5bc33de --- /dev/null +++ b/jails/config/monitor/json/pfsense_rev1.json @@ -0,0 +1,2846 @@ +{ + "__inputs": [ + { + "name": "DS_INFLUXDB_PFSENSE", + "label": "InfluxDB pfSense", + "description": "Choose InfluxDB data source for pfSense metrics", + "type": "datasource", + "pluginId": "influxdb", + "pluginName": "InfluxDB" + }, + { + "name": "VAR_WAN_INTERFACE", + "type": "constant", + "label": "WAN Inteface", + "value": "vmx0", + "description": "Put here name of your WAN interface" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "6.1.4" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "datasource", + "id": "influxdb", + "name": "InfluxDB", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": 10095, + "graphTooltip": 0, + "id": null, + "iteration": 1556132042146, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 2, + "panels": [], + "title": "System Overview", + "type": "row" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 0, + "y": 1 + }, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "n_cpus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Cores", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 0, + "format": "bytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 3, + "y": 1 + }, + "id": 6, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Total Memory", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 1, + "format": "bytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 6, + "y": 1 + }, + "id": 8, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "swap", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Total Swap", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 1, + "format": "dtdurations", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 9, + "y": 1 + }, + "id": 26, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "uptime" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Uptime", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 14, + "y": 1 + }, + "id": 34, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "* 8" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + }, + { + "condition": "AND", + "key": "interface", + "operator": "=~", + "value": "/^$wan_interface$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "WAN Rate In", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 18, + "y": 1 + }, + "id": 36, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "* 8" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + }, + { + "condition": "AND", + "key": "interface", + "operator": "=~", + "value": "/^$wan_interface$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "WAN Rate Out", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 16, + "panels": [], + "title": "System Usage", + "type": "row" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 2, + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 1, + "y": 5 + }, + "id": 10, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "pluginVersion": "6.1.4", + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "alias": "", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cpu", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT 100-last(\"usage_idle\") FROM \"cpu\" WHERE (\"host\" =~ /^$server$/ AND \"cpu\" = 'cpu-total') AND $timeFilter", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "usage_idle" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + }, + { + "condition": "AND", + "key": "cpu", + "operator": "=", + "value": "cpu-total" + } + ] + } + ], + "thresholds": "75,90", + "timeFrom": null, + "timeShift": null, + "title": "CPU", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 2, + "format": "none", + "gauge": { + "maxValue": 8, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 5, + "y": 5 + }, + "id": 12, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "pluginVersion": "6.1.4", + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT last(\"load1\") FROM \"system\" WHERE (\"host\" =~ /^$server$/) AND $timeFilter", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "load1" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "4,6", + "timeFrom": null, + "timeShift": null, + "title": "Load Average", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 1, + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 9, + "y": 5 + }, + "id": 14, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT last(\"used_percent\") FROM \"mem\" WHERE (\"host\" =~ /^$server$/) AND $timeFilter", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "used_percent" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "80,90", + "timeFrom": null, + "timeShift": null, + "title": "Memory", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": 2, + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 13, + "y": 5 + }, + "id": 38, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "disk", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "used_percent" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + }, + { + "condition": "AND", + "key": "fstype", + "operator": "=", + "value": "ufs" + }, + { + "condition": "AND", + "key": "path", + "operator": "=", + "value": "/" + } + ] + } + ], + "thresholds": "75,90", + "timeFrom": null, + "timeShift": null, + "title": "Disk", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_INFLUXDB_PFSENSE}", + "format": "none", + "gauge": { + "maxValue": 97000, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 17, + "y": 5 + }, + "id": 40, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "entries" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": "70000,85000", + "timeFrom": null, + "timeShift": null, + "title": "Firewall States", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 42, + "panels": [], + "title": "System Usage Detail", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "decimals": null, + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 0, + "y": 13 + }, + "id": 28, + "legend": { + "alignAsTable": false, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_cpu", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "cpu" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cpu", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT 100 - mean(\"usage_idle\") FROM \"cpu\" WHERE (\"host\" =~ /^$server$/ AND \"cpu\" = 'cpu-total') AND $timeFilter GROUP BY time($__interval), \"cpu\" fill(none)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "usage_idle" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + }, + { + "condition": "AND", + "key": "cpu", + "operator": "=", + "value": "cpu-total" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU Usage Total", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 1, + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 11, + "y": 13 + }, + "id": 44, + "legend": { + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cpu", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "usage_guest" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "guest" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_guest_nice" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "guest_nice" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_iowait" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "iowait" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_irq" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "irq" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_nice" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "nice" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_softirq" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "softirq" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_steal" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "steal" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_system" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "system" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "usage_user" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "user" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + }, + { + "condition": "AND", + "key": "cpu", + "operator": "=", + "value": "cpu-total" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU Usage Detail", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "percent", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 0, + "y": 20 + }, + "id": 30, + "legend": { + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "avg1", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "system", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "load1" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Load Average", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 11, + "y": 20 + }, + "id": 32, + "legend": { + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "active" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "active" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "buffered" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "buffered" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "cached" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "cached" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "inactive" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "inactive" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "slab" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "slab" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "wired" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "wired" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "used" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "used" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 27 + }, + "id": 20, + "panels": [], + "title": "Network", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 0, + "y": 28 + }, + "id": 22, + "legend": { + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_interface", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "interface" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "* 8" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Network Rate In", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 11, + "y": 28 + }, + "id": 24, + "legend": { + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_interface", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "interface" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "* 8" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Network Rate Out", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 35 + }, + "id": 46, + "panels": [], + "title": "Firewall", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 0, + "y": 36 + }, + "id": 48, + "legend": { + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "states", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "entries" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "State Table Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "fill": 1, + "gridPos": { + "h": 7, + "w": 11, + "x": 11, + "y": 36 + }, + "id": 50, + "interval": "", + "legend": { + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "pf", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "inserts" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "inserts" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "removals" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "removals" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "searches" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1s" + ], + "type": "derivative" + }, + { + "params": [ + "searches" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$server$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "State Table Detail", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "30s", + "schemaVersion": 18, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": {}, + "datasource": "${DS_INFLUXDB_PFSENSE}", + "definition": "SHOW TAG VALUES FROM system WITH KEY=host", + "hide": 0, + "includeAll": false, + "label": "Server", + "multi": false, + "name": "server", + "options": [], + "query": "SHOW TAG VALUES FROM system WITH KEY=host", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "value": "${VAR_WAN_INTERFACE}", + "text": "${VAR_WAN_INTERFACE}" + }, + "hide": 2, + "label": "WAN Inteface", + "name": "wan_interface", + "options": [ + { + "value": "${VAR_WAN_INTERFACE}", + "text": "${VAR_WAN_INTERFACE}" + } + ], + "query": "${VAR_WAN_INTERFACE}", + "skipUrlSync": false, + "type": "constant" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "15s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "pfSense", + "uid": "s1mSNdzZz", + "version": 58, + "description": "pfSense metrics from InfluxDB using Telegraf service" +} \ No newline at end of file diff --git a/jails/config/monitor/json/router-stats_rev1.json b/jails/config/monitor/json/router-stats_rev1.json new file mode 100644 index 0000000..0db66dd --- /dev/null +++ b/jails/config/monitor/json/router-stats_rev1.json @@ -0,0 +1,2941 @@ +{ + "__inputs": [ + { + "name": "DS_SYNAPSE_STATS", + "label": "pfSense Stats", + "description": "", + "type": "datasource", + "pluginId": "influxdb", + "pluginName": "InfluxDB" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "6.0.1" + }, + { + "type": "panel", + "id": "grafana-piechart-panel", + "name": "Pie Chart", + "version": "1.3.3" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "datasource", + "id": "influxdb", + "name": "InfluxDB", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": 9937, + "graphTooltip": 0, + "id": null, + "iteration": 1552846188499, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 19, + "panels": [], + "title": "Network Stats", + "type": "row" + }, + { + "aliasColors": { + "Listen": "#705da0", + "Time Wait": "#5195ce" + }, + "breakPoint": "50%", + "cacheTimeout": null, + "combine": { + "label": "Others", + "threshold": 0 + }, + "fontSize": "100%", + "format": "short", + "gridPos": { + "h": 12, + "w": 5, + "x": 0, + "y": 1 + }, + "id": 5, + "interval": null, + "legend": { + "header": "", + "percentage": true, + "show": true, + "values": true + }, + "legendType": "Under graph", + "links": [], + "maxDataPoints": 3, + "nullPointMode": "connected", + "pieType": "donut", + "strokeWidth": "2", + "targets": [ + { + "alias": "Close Wait", + "groupBy": [ + { + "params": [ + "10s" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "netstat", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "tcp_close_wait" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "Established", + "groupBy": [ + { + "params": [ + "10s" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "netstat", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "tcp_established" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "Listen", + "groupBy": [ + { + "params": [ + "10s" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "netstat", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "tcp_listen" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "Time Wait", + "groupBy": [ + { + "params": [ + "10s" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "netstat", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "tcp_time_wait" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "None", + "groupBy": [ + { + "params": [ + "10s" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "netstat", + "orderByTime": "ASC", + "policy": "default", + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "tcp_none" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "title": "Netstat", + "type": "grafana-piechart-panel", + "valueName": "current" + }, + { + "aliasColors": { + "WAN-1": "#629e51", + "WAN-2": "#806eb7" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "decimals": 0, + "fill": 1, + "gridPos": { + "h": 7, + "w": 19, + "x": 5, + "y": 1 + }, + "id": 3, + "interval": "$summarise", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": 300, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "WAN-1", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + }, + { + "condition": "AND", + "key": "interface", + "operator": "=", + "value": "em0" + } + ] + }, + { + "alias": "WAN-2", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + }, + { + "condition": "AND", + "key": "interface", + "operator": "=", + "value": "em2" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Router: Bytes Received", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "WAN-1": "#629e51", + "WAN-2": "#806eb7" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "decimals": 0, + "fill": 1, + "gridPos": { + "h": 7, + "w": 19, + "x": 5, + "y": 8 + }, + "id": 2, + "interval": "$summarise", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": 300, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "WAN-1", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + }, + { + "condition": "AND", + "key": "interface", + "operator": "=", + "value": "em0" + } + ] + }, + { + "alias": "WAN-2", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "10s" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + }, + { + "condition": "AND", + "key": "interface", + "operator": "=", + "value": "em2" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Router: Bytes Sent", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 13 + }, + "id": 9, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": " ms", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "ping", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average_response_ms" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "url", + "operator": "=", + "value": "8.8.4.4" + } + ] + } + ], + "thresholds": "100,500", + "title": "Google DNS Ping", + "type": "singlestat", + "valueFontSize": "120%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "aliasColors": { + "Cloudflare DNS": "#ba43a9", + "Google DNS": "#ef843c", + "L3 DNS": "#bf1b00" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "decimals": 0, + "fill": 0, + "gridPos": { + "h": 7, + "w": 19, + "x": 5, + "y": 15 + }, + "id": 7, + "interval": "$summarise", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": 300, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "paceLength": 10, + "percentage": false, + "pointradius": 2, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Google DNS", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "ping", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average_response_ms" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "url", + "operator": "=", + "value": "8.8.4.4" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Ping Average Response Time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "decimals": 2, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 16 + }, + "id": 13, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": " ms", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "ping", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average_response_ms" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "url", + "operator": "=", + "value": "192.168.7.1" + } + ] + } + ], + "thresholds": "1,3", + "title": "Router/Gateway Ping", + "type": "singlestat", + "valueFontSize": "120%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "decimals": 2, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 19 + }, + "id": 10, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": " ms", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "ping", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "average_response_ms" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "url", + "operator": "=", + "value": "192.168.7.150" + } + ] + } + ], + "thresholds": "1,3", + "title": "Local DNS Ping", + "type": "singlestat", + "valueFontSize": "120%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 21, + "panels": [], + "title": "DNS Stats", + "type": "row" + }, + { + "aliasColors": { + "Hits": "#629e51", + "Misses": "#bf1b00" + }, + "breakPoint": "50%", + "cacheTimeout": null, + "combine": { + "label": "Others", + "threshold": 0 + }, + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": null, + "fontSize": "100%", + "format": "short", + "gridPos": { + "h": 9, + "w": 5, + "x": 0, + "y": 23 + }, + "hideTimeOverride": false, + "id": 17, + "interval": null, + "legend": { + "header": "", + "percentage": true, + "percentageDecimals": 0, + "show": true, + "sortDesc": true, + "values": true + }, + "legendType": "On graph", + "links": [], + "maxDataPoints": 3, + "nullPointMode": "connected", + "pieType": "donut", + "strokeWidth": "2", + "targets": [ + { + "alias": "Hits", + "groupBy": [], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_cachehits" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "Misses", + "groupBy": [], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_cachemiss" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "thresholds": [], + "title": "DNS Cache Hit/Miss Ratio", + "type": "grafana-piechart-panel", + "valueName": "current" + }, + { + "aliasColors": { + "Hits": "#629e51", + "Misses": "#bf1b00", + "Recursive": "#1f78c1" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": 0, + "fill": 1, + "gridPos": { + "h": 7, + "w": 19, + "x": 5, + "y": 23 + }, + "hideTimeOverride": false, + "id": 15, + "interval": "$summarise", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": 355, + "total": true, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Recursive", + "bars": false, + "fill": 0, + "lines": true, + "linewidth": 2, + "nullPointMode": "connected" + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "Hits", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_cachehits" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "Misses", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_cachemiss" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "Recursive", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_recursivereplies" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Cache Performance", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "A": "#5195ce", + "AAAA": "#f29191", + "PTR": "#f2c96d", + "SOA": "#ba43a9", + "SRV": "#7eb26d", + "TXT": "#508642" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": 0, + "fill": 0, + "gridPos": { + "h": 7, + "w": 19, + "x": 5, + "y": 30 + }, + "id": 31, + "interval": "$summarise", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": 355, + "total": true, + "values": true + }, + "lines": false, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "A", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_query_type_A" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "AAAA", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_query_type_AAAA" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "PTR", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_query_type_PTR" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "SOA", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_query_type_SOA" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "SRV", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_query_type_SRV" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "TXT", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_query_type_TXT" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Query Resource Record (RR)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": 0, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 32 + }, + "id": 23, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "10s" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "internal_1yr", + "query": "SELECT last(\"msg_cache_count\") + last(\"rrset_cache_count\") FROM \"internal_1yr\".\"unbound\" WHERE (\"host\" = 'dns') AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_queries" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "thresholds": "", + "title": "DNS Total queries received", + "type": "singlestat", + "valueFontSize": "110%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": null, + "format": "short", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 35 + }, + "id": 25, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "total_num_queries" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + "1h" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "thresholds": "", + "title": "DNS Queries Last 1h", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "aliasColors": { + "A": "#5195ce", + "AAAA": "#f29191", + "FORMERR": "#f2c96d", + "NOERROR": "#7eb26d", + "NOTIMPL": "#1f78c1", + "PTR": "#f2c96d", + "SERVFAIL": "#5195ce", + "SOA": "#ba43a9", + "SRV": "#7eb26d", + "TXT": "#508642" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": 0, + "fill": 0, + "gridPos": { + "h": 7, + "w": 19, + "x": 5, + "y": 37 + }, + "id": 33, + "interval": "$summarise", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "sideWidth": 355, + "total": true, + "values": true + }, + "lines": false, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "FORMERR", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_answer_rcode_FORMERR" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "NOERROR", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_answer_rcode_NOERROR" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "NOTIMPL", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_answer_rcode_NOTIMPL" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "NXDOMAIN", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_answer_rcode_NXDOMAIN" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "REFUSED", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_answer_rcode_REFUSED" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + }, + { + "alias": "SERVFAIL", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "default", + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "num_answer_rcode_SERVFAIL" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "5m" + ], + "type": "derivative" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "router.synapse.lan" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Reply code distribution", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": 2, + "format": "decbytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 38 + }, + "id": 27, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "autogen", + "query": "SELECT last(\"mem_cache_rrset\") + last(\"mem_cache_message\") FROM \"internal_1yr\".\"unbound\" WHERE (\"host\" = 'router.synapse.lan') AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "mem_cache_rrset" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "dns" + } + ] + } + ], + "thresholds": "", + "title": "DNS Memory Cache Size", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SYNAPSE_STATS}", + "decimals": 0, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 0, + "y": 41 + }, + "id": 29, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "unbound", + "orderByTime": "ASC", + "policy": "autogen", + "query": "SELECT last(\"msg_cache_count\") + last(\"rrset_cache_count\") FROM \"internal_1yr\".\"unbound\" WHERE (\"host\" = 'router.synapse.lan') AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "mem_cache_rrset" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=", + "value": "dns" + } + ] + } + ], + "thresholds": "", + "title": "DNS Memory Cache Items", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + } + ], + "refresh": "10s", + "schemaVersion": 18, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "auto": true, + "auto_count": 10, + "auto_min": "10s", + "current": { + "text": "1m", + "value": "1m" + }, + "hide": 0, + "label": null, + "name": "summarise", + "options": [ + { + "selected": false, + "text": "auto", + "value": "$__auto_interval_summarise" + }, + { + "selected": false, + "text": "1s", + "value": "1s" + }, + { + "selected": false, + "text": "5s", + "value": "5s" + }, + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "1s,5s,10s,1m,5m,10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "pfSense System Stats", + "uid": "MsFKtc1mk", + "version": 42, + "description": "Simple network and DNS stats of pfSense with dual-WAN setup." +} \ No newline at end of file diff --git a/jails/config/monitor/json/switch-overview_rev1.json b/jails/config/monitor/json/switch-overview_rev1.json new file mode 100644 index 0000000..4a83678 --- /dev/null +++ b/jails/config/monitor/json/switch-overview_rev1.json @@ -0,0 +1,26544 @@ +{ + "__inputs": [ + { + "name": "DS_SNMP", + "label": "SNMP", + "description": "", + "type": "datasource", + "pluginId": "influxdb", + "pluginName": "InfluxDB" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "6.0.2" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "datasource", + "id": "influxdb", + "name": "InfluxDB", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "description": "General information for any switch", + "editable": true, + "gnetId": 9991, + "graphTooltip": 0, + "id": null, + "iteration": 1554147738390, + "links": [], + "panels": [ + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 2, + "panels": [ + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "decimals": null, + "format": "s", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 1 + }, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "sysUpTime" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "Uptime", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 1 + }, + "id": 6, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "hh3cEntityExtCpuUsage" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + } + ] + } + ], + "thresholds": "80,90", + "timeFrom": null, + "timeShift": null, + "title": "CPU Usage", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 1 + }, + "id": 8, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "hh3cEntityExtMemUsage" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + } + ] + } + ], + "thresholds": "80,90", + "timeFrom": null, + "timeShift": null, + "title": "Memory Usage", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "celsius", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 12, + "y": 1 + }, + "id": 10, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "hh3cEntityExtTemperature" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + } + ] + } + ], + "thresholds": "80,90", + "timeFrom": null, + "timeShift": null, + "title": "Temperature", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "columns": [], + "datasource": "${DS_SNMP}", + "fontSize": "100%", + "gridPos": { + "h": 12, + "w": 8, + "x": 16, + "y": 1 + }, + "hideTimeOverride": false, + "id": 562, + "links": [], + "pageSize": null, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "scroll": true, + "showHeader": true, + "sort": { + "col": 0, + "desc": true + }, + "styles": [ + { + "alias": "Time", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "hidden" + } + ], + "targets": [ + { + "alias": "Ports Up", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifOperStatus\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifOperStatus\" = 1) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifOperStatus" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifOperStatus", + "operator": "=", + "value": "1" + } + ] + }, + { + "alias": "Ports Down", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifOperStatus\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifOperStatus\" = 2) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "H", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifOperStatus" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifOperStatus", + "operator": "=", + "value": "1" + } + ] + }, + { + "alias": "Ports with speed 10Gbps", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifSpeed\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifSpeed\" = 10000000000) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with speed 1Gbps", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifSpeed\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifSpeed\" = 1000000000) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with speed 100Mbps", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifSpeed\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifSpeed\" = 100000000) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with speed 10Mbps", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifSpeed\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifSpeed\" = 10000000) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with In Errors", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifInErrors\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifInErrors\" > 0) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with Out Errors", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifOutErrors\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifOutErrors\" > 0) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "G", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with 1 minute Last Change", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifLastChange\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND (\"ifLastChange\" / 100) < 60) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "I", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with 1 hour Last Change", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifLastChange\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND (\"ifLastChange\" / 100) > 60 AND (\"ifLastChange\" / 100) < 3600) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "J", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with 1 day Last Change", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifLastChange\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND (\"ifLastChange\" / 100) > 3600 AND (\"ifLastChange\" / 100) < 86400) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "K", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with 1 week Last Change", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifLastChange\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND (\"ifLastChange\" / 100) > 86400 AND (\"ifLastChange\" / 100) < 604800) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "L", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with 1 month Last Change", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifLastChange\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND(\"ifLastChange\" / 100) > 604800 AND (\"ifLastChange\" / 100) < 18144000) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "M", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + }, + { + "alias": "Ports with more 1 month Last Change", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT count(\"ifLastChange\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND(\"ifLastChange\" / 100) > 18144000) AND $timeFilter GROUP BY time(1m) fill(none)", + "rawQuery": true, + "refId": "N", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "count" + }, + { + "params": [ + "ifSpeed1G" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifSpeed", + "operator": "=", + "value": "1000000000" + } + ] + } + ], + "timeFrom": "1m", + "timeShift": null, + "title": "Port Statistics", + "transform": "timeseries_to_rows", + "type": "table" + }, + { + "columns": [], + "datasource": "${DS_SNMP}", + "fontSize": "100%", + "gridPos": { + "h": 8, + "w": 16, + "x": 0, + "y": 5 + }, + "id": 183, + "links": [], + "pageSize": null, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "scroll": true, + "showHeader": true, + "sort": { + "col": 3, + "desc": false + }, + "styles": [ + { + "alias": "Time", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "hidden" + }, + { + "alias": "Description", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "ifDescr", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Port", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": null, + "mappingType": 1, + "pattern": "ifIndex", + "thresholds": [], + "type": "number", + "unit": "short" + }, + { + "alias": "MAC Address", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "ifPhysAddress", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Status", + "colorMode": "value", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": null, + "mappingType": 1, + "pattern": "Status", + "thresholds": [ + "2", + "2" + ], + "type": "string", + "unit": "short", + "valueMaps": [ + { + "text": "up", + "value": "1" + }, + { + "text": "down", + "value": "2" + }, + { + "text": "testing", + "value": "3" + }, + { + "text": "unknown", + "value": "4" + }, + { + "text": "dormant", + "value": "5" + }, + { + "text": "not present", + "value": "6" + }, + { + "text": "lower layer down", + "value": "7" + } + ] + }, + { + "alias": "Speed", + "colorMode": "value", + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": null, + "mappingType": 1, + "pattern": "Speed", + "thresholds": [ + "100000000", + "1000000000" + ], + "type": "number", + "unit": "bps" + }, + { + "alias": "In Errors", + "colorMode": "value", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": null, + "mappingType": 1, + "pattern": "InErrors", + "thresholds": [ + "1", + "1" + ], + "type": "number", + "unit": "short" + }, + { + "alias": "Out Errors", + "colorMode": "value", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": null, + "mappingType": 1, + "pattern": "OutErrors", + "thresholds": [ + "1", + "1" + ], + "type": "number", + "unit": "short" + }, + { + "alias": "Transmitted", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "Transmitted", + "thresholds": [], + "type": "number", + "unit": "decbytes" + }, + { + "alias": "Last Change", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "LastChange", + "thresholds": [], + "type": "number", + "unit": "s" + } + ], + "targets": [ + { + "groupBy": [ + { + "params": [ + "ifIndex" + ], + "type": "tag" + }, + { + "params": [ + "ifDescr" + ], + "type": "tag" + }, + { + "params": [ + "ifPhysAddress" + ], + "type": "tag" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT last(\"ifOperStatus\") AS \"Status\", last(\"ifSpeed\") AS \"Speed\", last(\"ifLastChange\") / 100 AS \"LastChange\", last(\"ifInErrors\") AS \"InErrors\", last(\"ifOutErrors\") AS \"OutErrors\", last(\"ifInOctets\") + last(\"ifOutOctets\") AS \"Transmitted\" FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/) AND $timeFilter GROUP BY \"ifIndex\", \"ifDescr\", \"ifPhysAddress\"", + "rawQuery": true, + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "Status" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "Speed" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "ifInErrors" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "InErrors" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "ifOutErrors" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "OutErrors" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "ifInOctets" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [ + "InOctets" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Port Summary", + "transform": "table", + "type": "table" + } + ], + "repeat": "ip", + "title": "Summary - $ip", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 12, + "panels": [ + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 14 + }, + "id": 14, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": "port", + "repeatDirection": "h", + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "1", + "value": "1" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 14 + }, + "id": 563, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "2", + "value": "2" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 14 + }, + "id": 564, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "3", + "value": "3" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 14 + }, + "id": 565, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "4", + "value": "4" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 14 + }, + "id": 566, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "5", + "value": "5" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 14 + }, + "id": 567, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "6", + "value": "6" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 14 + }, + "id": 568, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "7", + "value": "7" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 14 + }, + "id": 569, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "8", + "value": "8" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 14 + }, + "id": 570, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "9", + "value": "9" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 14 + }, + "id": 571, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "10", + "value": "10" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 14 + }, + "id": 572, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "11", + "value": "11" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 14 + }, + "id": 573, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "12", + "value": "12" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 18 + }, + "id": 574, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "13", + "value": "13" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 18 + }, + "id": 575, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "14", + "value": "14" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 18 + }, + "id": 576, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "15", + "value": "15" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 18 + }, + "id": 577, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "16", + "value": "16" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 18 + }, + "id": 578, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "17", + "value": "17" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 18 + }, + "id": 579, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "18", + "value": "18" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 18 + }, + "id": 580, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "19", + "value": "19" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 18 + }, + "id": 581, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "20", + "value": "20" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 18 + }, + "id": 582, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "21", + "value": "21" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 18 + }, + "id": 583, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "22", + "value": "22" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 18 + }, + "id": 584, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "23", + "value": "23" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 18 + }, + "id": 585, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "24", + "value": "24" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 22 + }, + "id": 586, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "25", + "value": "25" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 22 + }, + "id": 587, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "26", + "value": "26" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 22 + }, + "id": 588, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "27", + "value": "27" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 22 + }, + "id": 589, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "28", + "value": "28" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 22 + }, + "id": 590, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "29", + "value": "29" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 22 + }, + "id": 591, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "30", + "value": "30" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 22 + }, + "id": 592, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "31", + "value": "31" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 22 + }, + "id": 593, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "32", + "value": "32" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 22 + }, + "id": 594, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "33", + "value": "33" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 22 + }, + "id": 595, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "34", + "value": "34" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 22 + }, + "id": 596, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "35", + "value": "35" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 22 + }, + "id": 597, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "36", + "value": "36" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 26 + }, + "id": 598, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "37", + "value": "37" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 26 + }, + "id": 599, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "38", + "value": "38" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 26 + }, + "id": 600, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "39", + "value": "39" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 26 + }, + "id": 601, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "40", + "value": "40" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 26 + }, + "id": 602, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "41", + "value": "41" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 26 + }, + "id": 603, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "42", + "value": "42" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 26 + }, + "id": 604, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "43", + "value": "43" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 26 + }, + "id": 605, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "44", + "value": "44" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 26 + }, + "id": 606, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "45", + "value": "45" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 26 + }, + "id": 607, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "46", + "value": "46" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 26 + }, + "id": 608, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "47", + "value": "47" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 26 + }, + "id": 609, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "48", + "value": "48" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 30 + }, + "id": 610, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "49", + "value": "49" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 30 + }, + "id": 611, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "50", + "value": "50" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 30 + }, + "id": 612, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "51", + "value": "51" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 30 + }, + "id": 613, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "52", + "value": "52" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 30 + }, + "id": 614, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "53", + "value": "53" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 30 + }, + "id": 615, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 14, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "54", + "value": "54" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOperStatus" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "2,2", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + } + ], + "repeat": "ip", + "title": "Operational status - $ip", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 69, + "panels": [ + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 3 + }, + "id": 70, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": "port", + "repeatDirection": "h", + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "1", + "value": "1" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 3 + }, + "id": 616, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "2", + "value": "2" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 3 + }, + "id": 617, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "3", + "value": "3" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 3 + }, + "id": 618, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "4", + "value": "4" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 3 + }, + "id": 619, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "5", + "value": "5" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 3 + }, + "id": 620, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "6", + "value": "6" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 3 + }, + "id": 621, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "7", + "value": "7" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 3 + }, + "id": 622, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "8", + "value": "8" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 3 + }, + "id": 623, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "9", + "value": "9" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 3 + }, + "id": 624, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "10", + "value": "10" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 3 + }, + "id": 625, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "11", + "value": "11" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 3 + }, + "id": 626, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "12", + "value": "12" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 7 + }, + "id": 627, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "13", + "value": "13" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 7 + }, + "id": 628, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "14", + "value": "14" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 7 + }, + "id": 629, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "15", + "value": "15" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 7 + }, + "id": 630, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "16", + "value": "16" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 7 + }, + "id": 631, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "17", + "value": "17" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 7 + }, + "id": 632, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "18", + "value": "18" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 7 + }, + "id": 633, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "19", + "value": "19" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 7 + }, + "id": 634, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "20", + "value": "20" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 7 + }, + "id": 635, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "21", + "value": "21" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 7 + }, + "id": 636, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "22", + "value": "22" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 7 + }, + "id": 637, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "23", + "value": "23" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 7 + }, + "id": 638, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "24", + "value": "24" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 11 + }, + "id": 639, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "25", + "value": "25" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 11 + }, + "id": 640, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "26", + "value": "26" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 11 + }, + "id": 641, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "27", + "value": "27" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 11 + }, + "id": 642, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "28", + "value": "28" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 11 + }, + "id": 643, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "29", + "value": "29" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 11 + }, + "id": 644, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "30", + "value": "30" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 11 + }, + "id": 645, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "31", + "value": "31" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 11 + }, + "id": 646, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "32", + "value": "32" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 11 + }, + "id": 647, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "33", + "value": "33" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 11 + }, + "id": 648, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "34", + "value": "34" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 11 + }, + "id": 649, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "35", + "value": "35" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 11 + }, + "id": 650, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "36", + "value": "36" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 15 + }, + "id": 651, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "37", + "value": "37" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 15 + }, + "id": 652, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "38", + "value": "38" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 15 + }, + "id": 653, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "39", + "value": "39" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 15 + }, + "id": 654, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "40", + "value": "40" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 15 + }, + "id": 655, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "41", + "value": "41" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 15 + }, + "id": 656, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "42", + "value": "42" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 15 + }, + "id": 657, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "43", + "value": "43" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 15 + }, + "id": 658, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "44", + "value": "44" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 15 + }, + "id": 659, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "45", + "value": "45" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 15 + }, + "id": 660, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "46", + "value": "46" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 15 + }, + "id": 661, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "47", + "value": "47" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 15 + }, + "id": 662, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "48", + "value": "48" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 19 + }, + "id": 663, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "49", + "value": "49" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 19 + }, + "id": 664, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "50", + "value": "50" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 19 + }, + "id": 665, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "51", + "value": "51" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 19 + }, + "id": 666, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "52", + "value": "52" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 19 + }, + "id": 667, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "53", + "value": "53" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "${DS_SNMP}", + "format": "ms", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 19 + }, + "id": 668, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1554140099236, + "repeatPanelId": 70, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "54", + "value": "54" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifLastChange" + ], + "type": "field" + }, + { + "params": [ + " / 100" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + } + ], + "repeat": "ip", + "title": "Last Change - $ip", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 125, + "panels": [ + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 4 + }, + "id": 126, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": "port", + "repeatDirection": "h", + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "1", + "value": "1" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 4 + }, + "id": 292, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "2", + "value": "2" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 4 + }, + "id": 293, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "3", + "value": "3" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 4 + }, + "id": 294, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "4", + "value": "4" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 4 + }, + "id": 295, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "5", + "value": "5" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 4 + }, + "id": 296, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "6", + "value": "6" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 4 + }, + "id": 297, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "7", + "value": "7" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 4 + }, + "id": 298, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "8", + "value": "8" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 4 + }, + "id": 299, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "9", + "value": "9" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 4 + }, + "id": 300, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "10", + "value": "10" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 4 + }, + "id": 301, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "11", + "value": "11" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 4 + }, + "id": 302, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "12", + "value": "12" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 8 + }, + "id": 303, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "13", + "value": "13" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 8 + }, + "id": 304, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "14", + "value": "14" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 8 + }, + "id": 305, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "15", + "value": "15" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 8 + }, + "id": 306, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "16", + "value": "16" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 8 + }, + "id": 307, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "17", + "value": "17" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 8 + }, + "id": 308, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "18", + "value": "18" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 8 + }, + "id": 309, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "19", + "value": "19" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 8 + }, + "id": 310, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "20", + "value": "20" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 8 + }, + "id": 311, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "21", + "value": "21" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 8 + }, + "id": 312, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "22", + "value": "22" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 8 + }, + "id": 313, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "23", + "value": "23" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 8 + }, + "id": 314, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "24", + "value": "24" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 12 + }, + "id": 315, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "25", + "value": "25" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 12 + }, + "id": 316, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "26", + "value": "26" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 12 + }, + "id": 317, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "27", + "value": "27" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 12 + }, + "id": 318, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "28", + "value": "28" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 12 + }, + "id": 319, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "29", + "value": "29" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 12 + }, + "id": 320, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "30", + "value": "30" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 12 + }, + "id": 321, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "31", + "value": "31" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 12 + }, + "id": 322, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "32", + "value": "32" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 12 + }, + "id": 323, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "33", + "value": "33" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 12 + }, + "id": 324, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "34", + "value": "34" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 12 + }, + "id": 325, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "35", + "value": "35" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 12 + }, + "id": 326, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "36", + "value": "36" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 16 + }, + "id": 327, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "37", + "value": "37" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 16 + }, + "id": 328, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "38", + "value": "38" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 16 + }, + "id": 329, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "39", + "value": "39" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 16 + }, + "id": 330, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "40", + "value": "40" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 16 + }, + "id": 331, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "41", + "value": "41" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 16 + }, + "id": 332, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "42", + "value": "42" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 12, + "y": 16 + }, + "id": 333, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "43", + "value": "43" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 14, + "y": 16 + }, + "id": 334, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "44", + "value": "44" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 16, + "y": 16 + }, + "id": 335, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "45", + "value": "45" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 18, + "y": 16 + }, + "id": 336, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "46", + "value": "46" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 16 + }, + "id": 337, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "47", + "value": "47" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 16 + }, + "id": 338, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "48", + "value": "48" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 20 + }, + "id": 339, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "49", + "value": "49" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 20 + }, + "id": 340, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "50", + "value": "50" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 20 + }, + "id": 341, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "51", + "value": "51" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 20 + }, + "id": 342, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "52", + "value": "52" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 8, + "y": 20 + }, + "id": 343, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "53", + "value": "53" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#d44a3a", + "rgba(237, 129, 40, 0.89)", + "#299c46" + ], + "datasource": "${DS_SNMP}", + "decimals": 0, + "format": "bps", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 10, + "y": 20 + }, + "id": 344, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "maxPerRow": 12, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "repeat": null, + "repeatDirection": "h", + "repeatIteration": 1553292923620, + "repeatPanelId": 126, + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + }, + "port": { + "selected": false, + "text": "54", + "value": "54" + } + }, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifSpeed" + ], + "type": "field" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": "100000000,1000000000", + "timeFrom": null, + "timeShift": null, + "title": "$port", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + }, + { + "op": "=", + "text": "up", + "value": "1" + }, + { + "op": "=", + "text": "down", + "value": "2" + }, + { + "op": "=", + "text": "testing", + "value": "3" + }, + { + "op": "=", + "text": "unknown", + "value": "4" + }, + { + "op": "=", + "text": "dormant", + "value": "5" + }, + { + "op": "=", + "text": "not present", + "value": "6" + }, + { + "op": "=", + "text": "lower layer down", + "value": "7" + } + ], + "valueName": "current" + } + ], + "repeat": "ip", + "title": "Speed - $ip", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 181, + "panels": [ + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_SNMP}", + "decimals": 0, + "fill": 1, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 291, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "seriesOverrides": [], + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "IN $tag_ifIndex", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "ifIndex" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"ifInErrors\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifIndex\" =~ /^$port$/) AND $timeFilter AND \"ifInErrors\" > 0 GROUP BY time($__interval), \"ifIndex\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifInErrors" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + }, + { + "alias": "OUT $tag_ifIndex", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "ifIndex" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"ifOutErrors\") FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifIndex\" =~ /^$port$/) AND $timeFilter AND \"ifOutErrors\" > 0 GROUP BY time($__interval), \"ifIndex\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOutErrors" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "I/O Errors", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "series", + "name": null, + "show": true, + "values": [ + "current" + ] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": "ip", + "title": "I/O Errors - $ip", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 505, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_SNMP}", + "fill": 1, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 6 + }, + "id": 507, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "scopedVars": { + "ip": { + "selected": false, + "text": "192.168.5.208", + "value": "192.168.5.208" + } + }, + "seriesOverrides": [], + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "IN $tag_ifIndex", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "ifIndex" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT abs(derivative(mean(\"ifInOctets\"), 1s)) *8 FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifIndex\" =~ /^$port$/) AND $timeFilter GROUP BY time($__interval), \"ifIndex\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifInOctets" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + }, + { + "alias": "OUT $tag_ifIndex", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "ifIndex" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "switch", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT abs(derivative(mean(\"ifOutOctets\"), 1s)) *-8 FROM \"switch\" WHERE (\"agent_host\" =~ /^$ip$/ AND \"ifIndex\" =~ /^$port$/) AND $timeFilter GROUP BY time($__interval), \"ifIndex\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "ifOutOctets" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "agent_host", + "operator": "=~", + "value": "/^$ip$/" + }, + { + "condition": "AND", + "key": "ifIndex", + "operator": "=~", + "value": "/^$port$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "I/O Data Rate", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": "ip", + "title": "I/O Octets - $ip", + "type": "row" + } + ], + "schemaVersion": 18, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": {}, + "datasource": "${DS_SNMP}", + "definition": "SHOW TAG VALUES FROM \"switch\" WITH KEY = \"ifIndex\"", + "hide": 0, + "includeAll": true, + "label": "Port", + "multi": true, + "name": "port", + "options": [], + "query": "SHOW TAG VALUES FROM \"switch\" WITH KEY = \"ifIndex\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_SNMP}", + "definition": "SHOW TAG VALUES FROM \"switch\" WITH KEY = \"agent_host\"", + "hide": 0, + "includeAll": true, + "label": "IP Switch", + "multi": true, + "name": "ip", + "options": [], + "query": "SHOW TAG VALUES FROM \"switch\" WITH KEY = \"agent_host\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "SHOW TAG VALUES FROM \"switch\" WITH KEY = \"agent_host\" WHERE entPhysicalName= '$tag'", + "tags": [ + "HP V1910-48G Switch JE009A" + ], + "tagsQuery": "SHOW TAG VALUES FROM \"switch\" WITH KEY = \"entPhysicalName\"", + "type": "query", + "useTags": true + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Switch Overview", + "uid": "w5SNqE3mk", + "version": 3 +} \ No newline at end of file diff --git a/jails/config/monitor/start_logstash.sh b/jails/config/monitor/start_logstash.sh index 4d8a2cc..8b4e51f 100755 --- a/jails/config/monitor/start_logstash.sh +++ b/jails/config/monitor/start_logstash.sh @@ -1,2 +1,3 @@ mount proc /usr/sbin/daemon -f /usr/local/logstash/bin/logstash --path.settings /usr/local/etc/logstash -l /var/log/logstash +ps axww | grep logstash diff --git a/jails/config/nivi/httpd.conf b/jails/config/nivi/httpd.conf index 2fcd834..60d6bf1 100644 --- a/jails/config/nivi/httpd.conf +++ b/jails/config/nivi/httpd.conf @@ -577,7 +577,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/pkgp/nginx.conf b/jails/config/pkgp/nginx.conf index b0edda1..931bf29 100644 --- a/jails/config/pkgp/nginx.conf +++ b/jails/config/pkgp/nginx.conf @@ -21,7 +21,7 @@ http { proxy_http_version 1.1; proxy_set_header Connection ""; - proxy_set_header Host $proxy_host; + proxy_set_header Host $host; server { listen *:80; @@ -95,6 +95,7 @@ http { proxy_cache_lock on; proxy_next_upstream error timeout invalid_header http_404; proxy_pass http://pkg-mirrors; + proxy_http_version 1.1; # add_header X-Proxy-Cache $upstream_cache_status; } } @@ -118,7 +119,7 @@ http { listen [::]:8002; server_name localhost; location / { - proxy_pass http://pkg0.cyb.FreeBSD.org; + proxy_pass http://pkg0.tuk.FreeBSD.org; } } @@ -146,6 +147,7 @@ http { proxy_cache_lock on; proxy_next_upstream error timeout invalid_header http_404; proxy_pass http://update-mirrors; + proxy_http_version 1.1; # add_header X-Proxy-Cache $upstream_cache_status; } } diff --git a/jails/config/proxy/haproxy.conf b/jails/config/proxy/haproxy.conf index 4ddc821..908f785 100644 --- a/jails/config/proxy/haproxy.conf +++ b/jails/config/proxy/haproxy.conf @@ -36,15 +36,6 @@ defaults timeout tunnel 3600s timeout tarpit 60s -#listen stats -# bind :::1936 v4v6 -# stats uri / -# stats enable -# stats refresh 10s -# stats show-node -# stats realm Haproxy\ Statistics -# stats auth infra:infra - frontend stats bind :::8404 v4v6 http-request use-service prometheus-exporter if { path /metrics } @@ -88,6 +79,7 @@ frontend ft use_backend bk_diyit if { ssl_fc_sni www.diyit.space } use_backend bk_ahlawat-sharad if { ssl_fc_sni sharad.ahlawat.com } + use_backend bk_ahlawat-rachna if { ssl_fc_sni rachna.ahlawat.com } use_backend bk_ahlawat-nivi if { ssl_fc_sni nivi.ahlawat.com } use_backend bk_ahlawat-nivi if { ssl_fc_sni nivedita.ahlawat.com } use_backend bk_ahlawat-rishabh if { ssl_fc_sni rishabh.ahlawat.com } @@ -101,6 +93,8 @@ frontend ft use_backend bk_ahlawat-cloud if { ssl_fc_sni cloud.ahlawat.com } use_backend bk_ahlawat-git if { ssl_fc_sni git.ahlawat.com } use_backend bk_ahlawat-hub if { ssl_fc_sni hub.ahlawat.com } + use_backend bk_ahlawat-matrix if { ssl_fc_sni matrix.ahlawat.com } + use_backend bk_ahlawat-meet if { ssl_fc_sni meet.ahlawat.com } use_backend bk_ahlawat-monitor if { ssl_fc_sni monitor.ahlawat.com } use_backend bk_diyit-grafana if { ssl_fc_sni grafana.diyit.org } @@ -108,7 +102,6 @@ frontend ft use_backend bk_diyit-kibana if { ssl_fc_sni kibana.diyit.org } use_backend bk_diyit-maps if { ssl_fc_sni maps.diyit.org } - use_backend bk_beyondbell-api if { ssl_fc_sni api.beyondbell.com } use_backend bk_beyondbell-ci if { ssl_fc_sni ci.beyondbell.com } use_backend bk_beyondbell-git if { ssl_fc_sni git.beyondbell.com } use_backend bk_beyondbell-repo if { ssl_fc_sni repo.beyondbell.com } @@ -118,26 +111,37 @@ frontend ft backend bk_ahlawat server srv1 web.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 sharadx.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_beyondbell - server srv1 192.168.0.74:8000 + server srv1 192.168.0.77:8000 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_diyit server srv1 web.diyit.org:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 sharadx.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_ahlawat-sharad + balance roundrobin server srv1 sharadx.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 + rspadd X-Frame-Options:\ SAMEORIGIN + +backend bk_ahlawat-rachna + server srv1 rachnax.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_ahlawat-nivi server srv1 nivix.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_ahlawat-rishabh server srv1 rishabhx.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN #backend bk_ahlawat-book @@ -164,10 +168,12 @@ backend bk_ahlawat-cam backend bk_ahlawat-cloud server srv1 cloudx.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 # rspadd X-Frame-Options:\ SAMEORIGIN backend bk_ahlawat-git server srv1 gitx.ahlawat.com:3000 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspidel X-Frame-Options:* # http-request set-var(txn.src) src # acl mynet var(txn.src) -m sub 192.168.0 @@ -178,8 +184,19 @@ backend bk_ahlawat-git backend bk_ahlawat-hub server srv1 hubx.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN +backend bk_ahlawat-matrix + server srv1 matrix.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 +# rspadd X-Frame-Options:\ SAMEORIGIN + +backend bk_ahlawat-meet + server srv1 meet.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 +# rspadd X-Frame-Options:\ SAMEORIGIN + backend bk_ahlawat-monitor server srv1 monitorx.ahlawat.com:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 # rspadd X-Frame-Options:\ SAMEORIGIN @@ -199,6 +216,7 @@ backend bk_diyit-kibana backend bk_diyit-maps server srv1 mapsx.diyit.org:443 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 web.diyit.org:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 # rspadd X-Frame-Options:\ SAMEORIGIN backend bk_ahlawat-ci @@ -208,28 +226,26 @@ backend bk_ahlawat-ci server srv1 cix.ahlawat.com:8180 check rspadd X-Frame-Options:\ SAMEORIGIN -backend bk_beyondbell-api - server srv1 192.168.0.77:8000 - rspadd X-Frame-Options:\ SAMEORIGIN - backend bk_beyondbell-git server srv1 gitx.beyondbell.com:3000 check ssl ca-file /mnt/certs/cacert.pem alpn h2 + server srv2 rishabhx.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_beyondbell-ci http-request set-header Host cix.beyondbell.com:8111 reqirep ^([^\ \t:]*:)\ https://ci.beyondbell.com/(.*) \1\ http://cix.beyondbell.com:8111/\2 rspirep ^([^\ \t:]*:)\ http://cix.beyondbell.com:8111/(.*) \1\ https://ci.beyondbell.com/\2 - server srv1 cix.beyondbell.com:8111 check + server srv1 cix.beyondbell.com:8111 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_beyondbell-repo # http-request set-header Host 192.168.0.75:8080 reqirep ^([^\ \t:]*:)\ https://repo.beyondbell.com/(.*) \1\ http://192.168.0.75:8080/\2 rspirep ^([^\ \t:]*:)\ http://192.168.0.75:8080/(.*) \1\ https://repo.beyondbell.com/\2 - server srv1 192.168.0.75:8080 check + server srv1 192.168.0.75:8080 rspadd X-Frame-Options:\ SAMEORIGIN backend bk_beyondbell-gs server srv1 192.168.0.81:26900 check + server srv2 rishabhx.ahlawat.com:443 backup check ssl ca-file /mnt/certs/cacert.pem alpn h2 rspadd X-Frame-Options:\ SAMEORIGIN diff --git a/jails/config/rachna/020_mod_ssl.conf b/jails/config/rachna/020_mod_ssl.conf new file mode 100644 index 0000000..3fbba40 --- /dev/null +++ b/jails/config/rachna/020_mod_ssl.conf @@ -0,0 +1,11 @@ +Listen 443 +SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 +SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 +SSLHonorCipherOrder on +SSLCompression off +# SSLUseStapling on +SSLSessionTickets off +SSLOptions +StrictRequire +SSLPassPhraseDialog builtin +SSLSessionCacheTimeout 300 +SSLSessionCache shmcb:/usr/local/etc/apache24/ssl_scache(512000) diff --git a/jails/config/rachna/httpd.conf b/jails/config/rachna/httpd.conf new file mode 100644 index 0000000..6c543c1 --- /dev/null +++ b/jails/config/rachna/httpd.conf @@ -0,0 +1,610 @@ +# +# This is the main Apache HTTP server configuration file. It contains the +# configuration directives that give the server its instructions. +# See for detailed information. +# In particular, see +# +# for a discussion of each configuration directive. +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# +# Configuration and logfile names: If the filenames you specify for many +# of the server's control files begin with "/" (or "drive:/" for Win32), the +# server will use that explicit path. If the filenames do *not* begin +# with "/", the value of ServerRoot is prepended -- so "logs/access_log" +# with ServerRoot set to "/usr/local/apache2" will be interpreted by the +# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" +# will be interpreted as '/logs/access_log'. + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# Do not add a slash at the end of the directory path. If you point +# ServerRoot at a non-local disk, be sure to specify a local disk on the +# Mutex directive, if file-based mutexes are used. If you wish to share the +# same ServerRoot for multiple httpd daemons, you will need to change at +# least PidFile. +# +ServerRoot "/usr/local" + +# +# Mutex: Allows you to set the mutex mechanism and mutex file directory +# for individual mutexes, or change the global defaults +# +# Uncomment and change the directory if mutexes are file-based and the default +# mutex file directory is not on a local disk or is not appropriate for some +# other reason. +# +# Mutex default:/var/run + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, instead of the default. See also the +# directive. +# +# Change this to Listen on specific IP addresses as shown below to +# prevent Apache from glomming onto all bound IP addresses. +# +#Listen 12.34.56.78:80 +Listen 80 + +# +# Dynamic Shared Object (DSO) Support +# +# To be able to use the functionality of a module which was built as a DSO you +# have to place corresponding `LoadModule' lines at this location so the +# directives contained in it are actually available _before_ they are used. +# Statically compiled modules (those listed by `httpd -l') do not need +# to be loaded here. +# +# Example: +# LoadModule foo_module modules/mod_foo.so +# +LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so +#LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so +#LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so +LoadModule authn_file_module libexec/apache24/mod_authn_file.so +#LoadModule authn_dbm_module libexec/apache24/mod_authn_dbm.so +#LoadModule authn_anon_module libexec/apache24/mod_authn_anon.so +#LoadModule authn_dbd_module libexec/apache24/mod_authn_dbd.so +#LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so +LoadModule authn_core_module libexec/apache24/mod_authn_core.so +LoadModule authz_host_module libexec/apache24/mod_authz_host.so +LoadModule authz_groupfile_module libexec/apache24/mod_authz_groupfile.so +LoadModule authz_user_module libexec/apache24/mod_authz_user.so +#LoadModule authz_dbm_module libexec/apache24/mod_authz_dbm.so +#LoadModule authz_owner_module libexec/apache24/mod_authz_owner.so +#LoadModule authz_dbd_module libexec/apache24/mod_authz_dbd.so +LoadModule authz_core_module libexec/apache24/mod_authz_core.so +#LoadModule authnz_fcgi_module libexec/apache24/mod_authnz_fcgi.so +LoadModule access_compat_module libexec/apache24/mod_access_compat.so +LoadModule auth_basic_module libexec/apache24/mod_auth_basic.so +#LoadModule auth_form_module libexec/apache24/mod_auth_form.so +#LoadModule auth_digest_module libexec/apache24/mod_auth_digest.so +#LoadModule allowmethods_module libexec/apache24/mod_allowmethods.so +#LoadModule file_cache_module libexec/apache24/mod_file_cache.so +#LoadModule cache_module libexec/apache24/mod_cache.so +#LoadModule cache_disk_module libexec/apache24/mod_cache_disk.so +#LoadModule cache_socache_module libexec/apache24/mod_cache_socache.so +LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so +#LoadModule socache_dbm_module libexec/apache24/mod_socache_dbm.so +#LoadModule socache_memcache_module libexec/apache24/mod_socache_memcache.so +#LoadModule watchdog_module libexec/apache24/mod_watchdog.so +#LoadModule macro_module libexec/apache24/mod_macro.so +#LoadModule dbd_module libexec/apache24/mod_dbd.so +#LoadModule dumpio_module libexec/apache24/mod_dumpio.so +#LoadModule buffer_module libexec/apache24/mod_buffer.so +#LoadModule data_module libexec/apache24/mod_data.so +#LoadModule ratelimit_module libexec/apache24/mod_ratelimit.so +LoadModule reqtimeout_module libexec/apache24/mod_reqtimeout.so +#LoadModule ext_filter_module libexec/apache24/mod_ext_filter.so +#LoadModule request_module libexec/apache24/mod_request.so +#LoadModule include_module libexec/apache24/mod_include.so +LoadModule filter_module libexec/apache24/mod_filter.so +#LoadModule reflector_module libexec/apache24/mod_reflector.so +#LoadModule substitute_module libexec/apache24/mod_substitute.so +#LoadModule sed_module libexec/apache24/mod_sed.so +#LoadModule charset_lite_module libexec/apache24/mod_charset_lite.so +#LoadModule deflate_module libexec/apache24/mod_deflate.so +#LoadModule xml2enc_module libexec/apache24/mod_xml2enc.so +#LoadModule proxy_html_module libexec/apache24/mod_proxy_html.so +LoadModule mime_module libexec/apache24/mod_mime.so +LoadModule log_config_module libexec/apache24/mod_log_config.so +#LoadModule log_debug_module libexec/apache24/mod_log_debug.so +#LoadModule log_forensic_module libexec/apache24/mod_log_forensic.so +#LoadModule logio_module libexec/apache24/mod_logio.so +LoadModule env_module libexec/apache24/mod_env.so +#LoadModule mime_magic_module libexec/apache24/mod_mime_magic.so +#LoadModule cern_meta_module libexec/apache24/mod_cern_meta.so +#LoadModule expires_module libexec/apache24/mod_expires.so +LoadModule headers_module libexec/apache24/mod_headers.so +#LoadModule usertrack_module libexec/apache24/mod_usertrack.so +#LoadModule unique_id_module libexec/apache24/mod_unique_id.so +LoadModule setenvif_module libexec/apache24/mod_setenvif.so +LoadModule version_module libexec/apache24/mod_version.so +#LoadModule remoteip_module libexec/apache24/mod_remoteip.so +LoadModule proxy_module libexec/apache24/mod_proxy.so +#LoadModule proxy_connect_module libexec/apache24/mod_proxy_connect.so +#LoadModule proxy_ftp_module libexec/apache24/mod_proxy_ftp.so +#LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so +LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so +#LoadModule proxy_scgi_module libexec/apache24/mod_proxy_scgi.so +#LoadModule proxy_uwsgi_module libexec/apache24/mod_proxy_uwsgi.so +#LoadModule proxy_fdpass_module libexec/apache24/mod_proxy_fdpass.so +#LoadModule proxy_wstunnel_module libexec/apache24/mod_proxy_wstunnel.so +#LoadModule proxy_ajp_module libexec/apache24/mod_proxy_ajp.so +#LoadModule proxy_balancer_module libexec/apache24/mod_proxy_balancer.so +#LoadModule proxy_express_module libexec/apache24/mod_proxy_express.so +#LoadModule proxy_hcheck_module libexec/apache24/mod_proxy_hcheck.so +#LoadModule session_module libexec/apache24/mod_session.so +#LoadModule session_cookie_module libexec/apache24/mod_session_cookie.so +#LoadModule session_crypto_module libexec/apache24/mod_session_crypto.so +#LoadModule session_dbd_module libexec/apache24/mod_session_dbd.so +#LoadModule slotmem_shm_module libexec/apache24/mod_slotmem_shm.so +#LoadModule slotmem_plain_module libexec/apache24/mod_slotmem_plain.so +LoadModule ssl_module libexec/apache24/mod_ssl.so +#LoadModule dialup_module libexec/apache24/mod_dialup.so +LoadModule http2_module libexec/apache24/mod_http2.so +LoadModule proxy_http2_module libexec/apache24/mod_proxy_http2.so +#LoadModule lbmethod_byrequests_module libexec/apache24/mod_lbmethod_byrequests.so +#LoadModule lbmethod_bytraffic_module libexec/apache24/mod_lbmethod_bytraffic.so +#LoadModule lbmethod_bybusyness_module libexec/apache24/mod_lbmethod_bybusyness.so +#LoadModule lbmethod_heartbeat_module libexec/apache24/mod_lbmethod_heartbeat.so +LoadModule unixd_module libexec/apache24/mod_unixd.so +#LoadModule heartbeat_module libexec/apache24/mod_heartbeat.so +#LoadModule heartmonitor_module libexec/apache24/mod_heartmonitor.so +#LoadModule dav_module libexec/apache24/mod_dav.so +LoadModule status_module libexec/apache24/mod_status.so +LoadModule autoindex_module libexec/apache24/mod_autoindex.so +#LoadModule asis_module libexec/apache24/mod_asis.so +#LoadModule info_module libexec/apache24/mod_info.so + + #LoadModule cgid_module libexec/apache24/mod_cgid.so + + + #LoadModule cgi_module libexec/apache24/mod_cgi.so + +#LoadModule dav_fs_module libexec/apache24/mod_dav_fs.so +#LoadModule dav_lock_module libexec/apache24/mod_dav_lock.so +#LoadModule vhost_alias_module libexec/apache24/mod_vhost_alias.so +#LoadModule negotiation_module libexec/apache24/mod_negotiation.so +LoadModule dir_module libexec/apache24/mod_dir.so +#LoadModule imagemap_module libexec/apache24/mod_imagemap.so +#LoadModule actions_module libexec/apache24/mod_actions.so +#LoadModule speling_module libexec/apache24/mod_speling.so +#LoadModule userdir_module libexec/apache24/mod_userdir.so +LoadModule alias_module libexec/apache24/mod_alias.so +LoadModule rewrite_module libexec/apache24/mod_rewrite.so +#LoadModule php7_module libexec/apache24/libphp7.so + +# Third party modules +IncludeOptional etc/apache24/modules.d/[0-9][0-9][0-9]_*.conf + + +# +# If you wish httpd to run as a different user or group, you must run +# httpd as root initially and it will switch. +# +# User/Group: The name (or #number) of the user/group to run httpd as. +# It is usually good practice to create a dedicated user and group for +# running httpd, as with most system services. +# +User www +Group www + + + +# 'Main' server configuration +# +# The directives in this section set up the values used by the 'main' +# server, which responds to any requests that aren't handled by a +# definition. These values also provide defaults for +# any containers you may define later in the file. +# +# All of these directives may appear inside containers, +# in which case these default settings will be overridden for the +# virtual host being defined. +# + +# +# ServerAdmin: Your address, where problems with the server should be +# e-mailed. This address appears on some server-generated pages, such +# as error documents. e.g. admin@your-domain.com +# +ServerAdmin sharad@ahlawat.com + +# +# ServerName gives the name and port that the server uses to identify itself. +# This can often be determined automatically, but we recommend you specify +# it explicitly to prevent problems during startup. +# +# If your host doesn't have a registered DNS name, enter its IP address here. +# +#ServerName www.example.com:80 + +# +# Deny access to the entirety of your server's filesystem. You must +# explicitly permit access to web content directories in other +# blocks below. +# + + AllowOverride none + Require all denied + + +# +# Note that from this point forward you must specifically allow +# particular features to be enabled - so if something's not working as +# you might expect, make sure that you have specifically enabled it +# below. +# + +# +# DocumentRoot: The directory out of which you will serve your +# documents. By default, all requests are taken from this directory, but +# symbolic links and aliases may be used to point to other locations. +# +DocumentRoot "/usr/local/www/apache24/data" + + +# can't set this if traffic is passing through haproxy and being redirected to ssl already +# RewriteEngine on +# RewriteRule ^/\.well-known/ - [L] +# RewriteRule (.*) https://rachna.ahlawat.com [R,L] + + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs/2.4/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # AllowOverride FileInfo AuthConfig Limit + # + AllowOverride None + + # + # Controls who can get stuff from this server. + # + Require all granted + + +# +# DirectoryIndex: sets the file that Apache will serve if a directory +# is requested. +# + + DirectoryIndex index.php index.html + + SetHandler application/x-httpd-php + + + SetHandler application/x-httpd-php-source + + + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + +# +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog "/var/log/httpd-error.log" + +# +# LogLevel: Control the number of messages logged to the error_log. +# Possible values include: debug, info, notice, warn, error, crit, +# alert, emerg. +# +LogLevel warn + + + # + # The following directives define some format nicknames for use with + # a CustomLog directive (see below). + # + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined + LogFormat "%h %l %u %t \"%r\" %>s %b" common + + + # You need to enable mod_logio.c to use %I and %O + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio + + + # + # The location and format of the access logfile (Common Logfile Format). + # If you do not define any access logfiles within a + # container, they will be logged here. Contrariwise, if you *do* + # define per- access logfiles, transactions will be + # logged therein and *not* in this file. + # + CustomLog "/var/log/httpd-access.log" common + + # + # If you prefer a logfile with access, agent, and referer information + # (Combined Logfile Format) you can use the following directive. + # + #CustomLog "/var/log/httpd-access.log" combined + + + + # + # Redirect: Allows you to tell clients about documents that used to + # exist in your server's namespace, but do not anymore. The client + # will make a new request for the document at its new location. + # Example: + # Redirect permanent /foo http://www.example.com/bar + + # + # Alias: Maps web paths into filesystem paths and is used to + # access content that does not live under the DocumentRoot. + # Example: + # Alias /webpath /full/filesystem/path + # + # If you include a trailing / on /webpath then the server will + # require it to be present in the URL. You will also likely + # need to provide a section to allow access to + # the filesystem path. + + # + # ScriptAlias: This controls which directories contain server scripts. + # ScriptAliases are essentially the same as Aliases, except that + # documents in the target directory are treated as applications and + # run by the server when requested rather than as documents sent to the + # client. The same rules about trailing "/" apply to ScriptAlias + # directives as to Alias. + # + ScriptAlias /cgi-bin/ "/usr/local/www/apache24/cgi-bin/" + + + + + # + # ScriptSock: On threaded servers, designate the path to the UNIX + # socket used to communicate with the CGI daemon of mod_cgid. + # + #Scriptsock cgisock + + +# +# "/usr/local/www/apache24/cgi-bin" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# + + AllowOverride None + Options None + Require all granted + + + + # + # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied + # backend servers which have lingering "httpoxy" defects. + # 'Proxy' request header is undefined by the IETF, not listed by IANA + # + RequestHeader unset Proxy early + + + + # + # TypesConfig points to the file containing the list of mappings from + # filename extension to MIME-type. + # + TypesConfig etc/apache24/mime.types + + # + # AddType allows you to add to or override the MIME configuration + # file specified in TypesConfig for specific file types. + # + #AddType application/x-gzip .tgz + # + # AddEncoding allows you to have certain browsers uncompress + # information on the fly. Note: Not all browsers support this. + # + #AddEncoding x-compress .Z + #AddEncoding x-gzip .gz .tgz + # + # If the AddEncoding directives above are commented-out, then you + # probably should define those extensions to indicate media types: + # + AddType application/x-compress .Z + AddType application/x-gzip .gz .tgz + + # + # AddHandler allows you to map certain file extensions to "handlers": + # actions unrelated to filetype. These can be either built into the server + # or added with the Action directive (see below) + # + # To use CGI scripts outside of ScriptAliased directories: + # (You will also need to add "ExecCGI" to the "Options" directive.) + # + #AddHandler cgi-script .cgi + + # For type maps (negotiated resources): + #AddHandler type-map var + + # + # Filters allow you to process content before it is sent to the client. + # + # To parse .shtml files for server-side includes (SSI): + # (You will also need to add "Includes" to the "Options" directive.) + # + #AddType text/html .shtml + #AddOutputFilter INCLUDES .shtml + + AddType application/x-httpd-php .php + AddType application/x-httpd-php-source .phps + + + +# +# The mod_mime_magic module allows the server to use various hints from the +# contents of the file itself to determine its type. The MIMEMagicFile +# directive tells the module where the hint definitions are located. +# +#MIMEMagicFile etc/apache24/magic + +# +# Customizable error responses come in three flavors: +# 1) plain text 2) local redirects 3) external redirects +# +# Some examples: +#ErrorDocument 500 "The server made a boo boo." +#ErrorDocument 404 /missing.html +#ErrorDocument 404 "/cgi-bin/missing_handler.pl" +#ErrorDocument 402 http://www.example.com/subscription_info.html +# + +# +# MaxRanges: Maximum number of Ranges in a request before +# returning the entire resource, or one of the special +# values 'default', 'none' or 'unlimited'. +# Default setting is to accept 200 Ranges. +#MaxRanges unlimited + +# +# EnableMMAP and EnableSendfile: On systems that support it, +# memory-mapping or the sendfile syscall may be used to deliver +# files. This usually improves server performance, but must +# be turned off when serving from networked-mounted +# filesystems or if support for these functions is otherwise +# broken on your system. +# Defaults: EnableMMAP On, EnableSendfile Off +# +#EnableMMAP off +#EnableSendfile on + +# Supplemental configuration +# +# The configuration files in the etc/apache24/extra/ directory can be +# included to add extra features or to modify the default configuration of +# the server, or you may simply copy their contents here and change as +# necessary. + +# Server-pool management (MPM specific) +#Include etc/apache24/extra/httpd-mpm.conf + +# Multi-language error messages +#Include etc/apache24/extra/httpd-multilang-errordoc.conf + +# Fancy directory listings +#Include etc/apache24/extra/httpd-autoindex.conf + +# Language settings +#Include etc/apache24/extra/httpd-languages.conf + +# User home directories +#Include etc/apache24/extra/httpd-userdir.conf + +# Real-time info on requests and configuration +#Include etc/apache24/extra/httpd-info.conf + +# Virtual hosts +#Include etc/apache24/extra/httpd-vhosts.conf + +# Local access to the Apache HTTP Server Manual +#Include etc/apache24/extra/httpd-manual.conf + +# Distributed authoring and versioning (WebDAV) +#Include etc/apache24/extra/httpd-dav.conf + +# Various default settings +#Include etc/apache24/extra/httpd-default.conf + +# Configure mod_proxy_html to understand HTML4/XHTML1 + +Include etc/apache24/extra/proxy-html.conf + + +# Secure (SSL/TLS) connections +#Include etc/apache24/extra/httpd-ssl.conf +# +# Note: The following must must be present to support +# starting without SSL on platforms with no /dev/random equivalent +# but a statically compiled-in mod_ssl. +# + +SSLRandomSeed startup builtin +SSLRandomSeed connect builtin + + +Include etc/apache24/Includes/*.conf + + + ServerName rachna.ahlawat.com + ServerAlias *.ahlawat.com + ServerAlias rachna + + Protocols h2 h2c http/1.1 + + DocumentRoot "/usr/local/www/apache24/data/" + + SSLEngine on + SSLCertificateFile "/mnt/certs/fullchain.pem" + SSLCertificateKeyFile "/mnt/certs/privkey.pem" + #SSLCertificateChainFile "/mnt/certs/fullchain.pem" + SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 + SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 + SSLHonorCipherOrder on + SSLCompression off + SSLSessionTickets off + SSLOptions +StrictRequire + + RewriteEngine On + RewriteCond %{HTTP:Authorization} ^(.*) + RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] + + + SetHandler "proxy:fcgi://127.0.0.1:9000" + SSLOptions +StdEnvVars + + + + SSLOptions +StdEnvVars + + + BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 + CustomLog "/var/log/ssl-request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + + + Options Indexes FollowSymLinks MultiViews + ## IndexOptions FancyIndexing FoldersFirst IgnoreCase VersionSort SuppressHTMLPreamble NameWidth=96 DescriptionWidth=16 + #-IndexOptions FancyIndexing FoldersFirst IgnoreCase NameWidth=96 + + #AllowOverride controls what directives may be placed in .htaccess files. + #AllowOverride All + #-AllowOverride AuthConfig + #Controls who can get stuff from this server file + #-Require all granted + + + ErrorLog "/var/log/ssl-error.log" + CustomLog "/var/log/ssl-access_log" combined + + + Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" + + + diff --git a/jails/config/rachna/php.ini b/jails/config/rachna/php.ini new file mode 100644 index 0000000..638bc83 --- /dev/null +++ b/jails/config/rachna/php.ini @@ -0,0 +1,1918 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (C:\windows or C:\winnt) +; See the PHP docs for more specific information. +; http://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is php.ini-production INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; html_errors +; Default Value: On +; Development Value: On +; Production value: On + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; track_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; http://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; http://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; http://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; http://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; http://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +; Default: Off +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +; Default: "" +;zend.script_encoding = + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; http://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; http://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +; max_input_vars = 1000 + +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; http://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. PHP's default behavior is to suppress those +; errors from clients. Turning the display of startup errors on can be useful in +; debugging configuration problems. We strongly recommend you +; set this to 'off' for production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://php.net/log-errors +log_errors = On + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +; http://php.net/log-errors-max-len +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; http://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; http://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This has only effect in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; http://php.net/report-memleaks +report_memleaks = On + +; This setting is on by default. +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). Setting this value +; to On can assist in debugging and is appropriate for development servers. It should +; however be disabled on production servers. +; This directive is DEPRECATED. +; Default Value: Off +; Development Value: Off +; Production Value: Off +; http://php.net/track-errors +;track_errors = Off + +; Turn off normal error reporting and emit XML-RPC error XML +; http://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: On +; Development Value: On +; Production value: On +; http://php.net/html-errors +html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from http://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; http://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; http://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; http://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; http://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any affect. +; http://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; http://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; http://php.net/post-max-size +post_max_size = 1999M + +; Automatically add files before PHP document. +; http://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; http://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; http://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; http://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; http://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; http://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; http://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; http://php.net/extension-dir +; extension_dir = "./" +; On windows: +; extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +; sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; http://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; http://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; http://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; http://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +; http://php.net/cgi.dicard-path +;cgi.discard_path=1 + +; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; http://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; http://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; http://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; http://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; http://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; http://php.net/upload-max-filesize +upload_max_filesize = 1999M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; http://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; http://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; http://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +; extension folders as well as the separate PECL DLL download (PHP 5+). +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 +;extension=curl +;extension=fileinfo +;extension=gd2 +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=interbase +;extension=ldap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See http://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sqlite3 +;extension=tidy +;extension=xmlrpc +;extension=xsl + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; http://php.net/date.timezone +date.timezone = America/Los_Angeles + +; http://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; http://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; http://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.583333 + +; http://php.net/date.sunset-zenith +;date.sunset_zenith = 90.583333 + +[filter] +; http://php.net/filter.default +;filter.default = unsafe_raw + +; http://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < intput_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +;sqlite3.extension_dir = + +[Pcre] +;PCRE library backtracking limit. +; http://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +;PCRE library recursion limit. +;Please note that if you set this value to a high number you may consume all +;the available process stack and eventually crash PHP (due to reaching the +;stack size limit imposed by the Operating System). +; http://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +;Enables or disables JIT compilation of patterns. This requires the PCRE +;library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +;pdo_odbc.db2_instance_name + +[Pdo_mysql] +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/pdo_mysql.cache_size +pdo_mysql.cache_size = 2000 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/pdo_mysql.default-socket +pdo_mysql.default_socket= + +[Phar] +; http://php.net/phar.readonly +;phar.readonly = On + +; http://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; http://php.net/smtp +SMTP = localhost +; http://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; http://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; http://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; http://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; http://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; http://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; http://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; http://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; http://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +;birdstep.max_links = -1 + +[Interbase] +; Allow or prevent persistent links. +ibase.allow_persistent = 1 + +; Maximum number of persistent links. -1 means no limit. +ibase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ibase.max_links = -1 + +; Default database name for ibase_connect(). +;ibase.default_db = + +; Default username for ibase_connect(). +;ibase.default_user = + +; Default password for ibase_connect(). +;ibase.default_password = + +; Default charset for ibase_connect(). +;ibase.default_charset = + +; Default timestamp format. +ibase.timestampformat = "%Y-%m-%d %H:%M:%S" + +; Default date format. +ibase.dateformat = "%Y-%m-%d" + +; Default time format. +ibase.timeformat = "%H:%M:%S" + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; http://php.net/mysqli.max-links +mysqli.max_links = -1 + +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/mysqli.cache_size +mysqli.cache_size = 2000 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +; http://php.net/mysqlnd.collect_statistics +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +; http://php.net/mysqlnd.collect_memory_statistics +mysqlnd.collect_memory_statistics = Off + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; http://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +; http://php.net/mysqlnd.log_mask +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +; http://php.net/mysqlnd.mempool_default_size +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +; http://php.net/mysqlnd.net_cmd_buffer_size +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +; http://php.net/mysqlnd.net_read_buffer_size +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +; http://php.net/mysqlnd.net_read_timeout +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +; http://php.net/mysqlnd.sha256_server_public_key +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; http://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; http://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; http://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; http://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; http://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; http://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; http://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; http://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; http://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; http://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; http://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; http://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; http://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; http://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept uninitialized session ID and regenerate +; session ID if browser sends uninitialized session ID. Strict mode protects +; applications from session fixation via session adoption vulnerability. It is +; disabled by default for maximum compatibility, but enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; http://php.net/session.use-cookies +session.use_cookies = 1 + +; http://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; http://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; http://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; http://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; http://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; http://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. +; http://php.net/session.cookie-httponly +session.cookie_httponly = + +; Handler used to serialize data. php is the standard serializer of PHP. +; http://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started +; on every session initialization. The probability is calculated by using +; gc_probability/gc_divisor. Where session.gc_probability is the numerator +; and gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using the following equation: +; gc_probability/gc_divisor. Where session.gc_probability is the numerator and +; session.gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any give request. For high volume production servers, +; this is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; http://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script would is the equivalent of +; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; http://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; http://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; http://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; http://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; http://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; http://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute pathes, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; http://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; http://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; http://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; http://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; http://php.net/zend.assertions +zend.assertions = -1 + +; Assert(expr); active by default. +; http://php.net/assert.active +;assert.active = On + +; Throw an AssertationException on failed assertions +; http://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; http://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; http://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; http://php.net/assert.callback +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +; http://php.net/assert.quiet-eval +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; http://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a components typlib on com_load() +; http://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; http://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; http://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; http://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_traslation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < intput_encoding < mbsting.http_input +; http://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; http://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; http://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; http://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; http://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; overload(replace) single byte functions by mbstring functions. +; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), +; etc. Possible values are 0,1,2,4 or combination of them. +; For example, 7 for overload everything. +; 0: No overload +; 1: Overload mail() function +; 2: Overload str*() functions +; 4: Overload ereg*() functions +; http://php.net/mbstring.func-overload +;mbstring.func_overload = 0 + +; enable strict encoding detection. +; Default: Off +;mbstring.strict_detection = On + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; http://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; http://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; http://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; http://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; http://php.net/exif.encode-jis +;exif.encode_jis = + +; http://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; http://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; http://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; http://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; http://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; http://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; http://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0xffffffff + +;opcache.inherited_hack=1 +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; This should improve performance, but requires appropriate OS configuration. +;opcache.huge_code_pages=1 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +; Local Variables: +; tab-width: 4 +; End: diff --git a/jails/config/rachna/www.conf b/jails/config/rachna/www.conf new file mode 100644 index 0000000..92ff8ff --- /dev/null +++ b/jails/config/rachna/www.conf @@ -0,0 +1,423 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr/local) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www +group = www + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = 127.0.0.1:9000 + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. +; Default Values: user and group are set as the running user +; mode is set to 0660 +;listen.owner = www +;listen.group = www +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 10 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/local/share/php/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +env[HOSTNAME] = $HOSTNAME +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /tmp +env[TMPDIR] = /tmp +env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr/local) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/jails/config/rishabh/httpd.conf b/jails/config/rishabh/httpd.conf index 9033315..daed8fc 100644 --- a/jails/config/rishabh/httpd.conf +++ b/jails/config/rishabh/httpd.conf @@ -577,7 +577,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/sharad/httpd.conf b/jails/config/sharad/httpd.conf index bf537ae..56371d2 100644 --- a/jails/config/sharad/httpd.conf +++ b/jails/config/sharad/httpd.conf @@ -577,7 +577,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/test/devfs_rules b/jails/config/vpngw/devfs_rules similarity index 100% rename from jails/config/test/devfs_rules rename to jails/config/vpngw/devfs_rules diff --git a/jails/config/test/devfs_rules.raw b/jails/config/vpngw/devfs_rules.raw similarity index 100% rename from jails/config/test/devfs_rules.raw rename to jails/config/vpngw/devfs_rules.raw diff --git a/jails/config/test/devfs_rules.txt b/jails/config/vpngw/devfs_rules.txt similarity index 100% rename from jails/config/test/devfs_rules.txt rename to jails/config/vpngw/devfs_rules.txt diff --git a/jails/config/vpngw/ipfw.rules b/jails/config/vpngw/ipfw.rules new file mode 100755 index 0000000..2038eca --- /dev/null +++ b/jails/config/vpngw/ipfw.rules @@ -0,0 +1,131 @@ +#!/bin/sh + +# https://www.freebsd.org/doc/handbook/firewalls-ipfw.html +# ipfw -vated list + +# IPFW configuration +#sysrc firewall_enable="YES" +#sysrc firewall_logif="YES" +#sysrc firewall_script="/mnt/config/ipfw.rules" + +# NATd configuration +#sysrc gateway_enable="YES" +#sysrc natd_enable="YES" +#sysrc natd_interface="tun0" +#sysrc natd_flags="-f /mnt/config/natd.conf" +#natd.conf: redirect_port tcp 192.168.0.9:80 80 + +# Set rules command prefix +cmd="ipfw -q add" +lif="epair0b" # interface name of VNET attached to Local network +rif="tun0" # interface name of Tunnel attached to Remote network +skip="skipto 12000" + +# Flush out the list before we begin. +ipfw -q -f flush + +# gateway_enable already set in rc.conf +# sysctl net.inet.ip.forwarding=1 + +# Packets passing the stateful NAT may be re-injected into the firewall +# sysctl net.inet.ip.fw.one_pass=0 +ipfw disable one_pass + +# functionality is included in the divert action +#ipfw -q nat 1 config if $rif same_ports unreg_only reset + +$cmd 00050 allow ip from any to any via $lif + +$cmd 00100 allow ip from any to any via lo0 + +$cmd 00200 deny ip from any to 127.0.0.0/8 +$cmd 00300 deny ip from 127.0.0.0/8 to any +$cmd 00400 deny ip from any to ::1 +$cmd 00500 deny ip from ::1 to any + +$cmd 00600 allow ipv6-icmp from :: to ff02::/16 +$cmd 00700 allow ipv6-icmp from fe80::/10 to fe80::/10 +$cmd 00800 allow ipv6-icmp from fe80::/10 to ff02::/16 +$cmd 00900 allow ipv6-icmp from any to any icmp6types 1 +$cmd 01000 allow ipv6-icmp from any to any icmp6types 2,135,136 + +# The reassemble rule is not needed with userland natd(8) +# because the internal workings of the IPFW divert action +# takes care of reassembling packets before delivery to the socket +#$cmd 01100 reass all from any to any in + +$cmd 01200 divert natd ip from any to any in via $rif # NAT any inbound packets + +# Allow the packet through if it has an existing entry in the dynamic rules table +$cmd 01300 check-state + +# Allow access to DNS +#$cmd 02110 $skip tcp from any to 192.168.0.5 53 out via $rif setup keep-state +#$cmd 02111 $skip udp from any to 192.168.0.5 53 out via $rif keep-state +#$cmd 02112 $skip tcp from any to 2603:3024:3f6:e1::5 53 out via $rif setup keep-state +#$cmd 02113 $skip udp from any to 2603:3024:3f6:e1::5 53 out via $rif keep-state + +# Allow access to ISP's DHCP server for cable/DSL configurations. +# Use the first rule and check log for IP address. +# Then, uncomment the second rule, input the IP address, and delete the first rule +#$cmd 02120 $skip log udp from any to any 67 out via $rif keep-state +#$cmd 02120 $skip udp from any to x.x.x.x 67 out via $rif keep-state + +# Allow outbound ping +$cmd 02210 $skip icmp from any to any out via $rif keep-state + +# Allow outbound NTP +#$cmd 02220 $skip udp from any to any 123 out via $rif keep-state + +# Allow outbound TCP traffic +$cmd 02500 $skip tcp from any to any 22,80,443,2024,3389,5904 out via $rif setup keep-state + +# deny and log all other outbound connections +$cmd 02999 deny log all from any to any out via $rif + +#### Lockdown incoming traffic +# Deny all inbound traffic from non-routable reserved address spaces +#$cmd 03110 deny all from 192.168.0.0/16 to any in via $rif #RFC 1918 private IP +#$cmd 03111 deny all from 172.16.0.0/12 to any in via $rif #RFC 1918 private IP +#$cmd 03112 deny all from 10.0.0.0/8 to any in via $rif #RFC 1918 private IP +$cmd 03113 deny all from 127.0.0.0/8 to any in via $rif #loopback +$cmd 03114 deny all from 0.0.0.0/8 to any in via $rif #loopback +$cmd 03115 deny all from 169.254.0.0/16 to any in via $rif #DHCP auto-config +$cmd 03116 deny all from 192.0.2.0/24 to any in via $rif #reserved for docs +$cmd 03117 deny all from 204.152.64.0/23 to any in via $rif #Sun cluster interconnect +$cmd 03118 deny all from 224.0.0.0/3 to any in via $rif #Class D & E multicast + +# Allow traffic from ISP's DHCP server. +# Replace x.x.x.x with the same IP address used in rule 02120. +#$cmd 03120 allow udp from any to x.x.x.x 67 in via $rif keep-state + +# Deny public pings +#$cmd 03210 deny icmp from any to any in via $rif + +# Deny ident +$cmd 03230 deny tcp from any to any 113 in via $rif + +# Deny all Netbios services. +$cmd 03240 deny { tcp or udp } from any to any 81,137-139,445,1026,1027,1433,1434 in via $rif + +# Deny fragments +$cmd 03250 deny all from any to any frag in via $rif + +# Deny ACK packets that did not match the dynamic rule table +$cmd 03500 deny tcp from any to any established in via $rif + +# Allow inbound SSH connections +#$cmd 03610 allow tcp from any to me 22 in via $rif setup limit src-addr 2 + +# Allow HTTP connections to internal web server +#$cmd 03620 allow tcp from any to me 80 in via $rif setup limit src-addr 2 + +# Reject and log all other incoming connections +$cmd 03999 deny log all from any to any in via $rif +#### lockdown in + +$cmd 12000 divert natd ip from any to any out via $rif # skipto location for outbound stateful rules + +$cmd 65000 allow ip from any to any + +#$cmd 65535 deny ip from any to any diff --git a/jails/config/vpngw/natd.conf b/jails/config/vpngw/natd.conf new file mode 100644 index 0000000..59d5833 --- /dev/null +++ b/jails/config/vpngw/natd.conf @@ -0,0 +1 @@ +redirect_port tcp 192.168.0.9:80 80 diff --git a/jails/config/web-diyit/httpd.conf b/jails/config/web-diyit/httpd.conf index 707f177..54cfe4a 100644 --- a/jails/config/web-diyit/httpd.conf +++ b/jails/config/web-diyit/httpd.conf @@ -583,7 +583,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/config/web/httpd.conf b/jails/config/web/httpd.conf index c3b0072..cee78e5 100644 --- a/jails/config/web/httpd.conf +++ b/jails/config/web/httpd.conf @@ -579,7 +579,7 @@ Include etc/apache24/Includes/*.conf RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] - SetHandler "proxy:fcgi://localhost:9000" + SetHandler "proxy:fcgi://127.0.0.1:9000" SSLOptions +StdEnvVars diff --git a/jails/create.sh b/jails/create.sh index d6ecb54..9526726 100755 --- a/jails/create.sh +++ b/jails/create.sh @@ -1,3 +1,5 @@ +#!/usr/local/bin/bash + # Copyright (c) 2018-2020, diyIT.org # All rights reserved. # @@ -6,8 +8,6 @@ # # -#!/usr/local/bin/bash - JAIL=$1 JAILHOSTNAME=$2 JAILDOMAIN=$3 @@ -171,5 +171,5 @@ iocage exec $JAIL "pkg clean -y" # iocage fstab -r $JAIL /root/FreeBSD/jails/config/common /mnt/common nullfs ro 0 0 # iocage exec $JAIL "rmdir /mnt/common" -iocage exec $JAIL "echo 'Subject: created new jail: $JAIL / $JAILIP / $JAILHOSTNAME / $JAILDOMAIN / $JAILUSER / $JAILUSERID / $JAILUSERVNC' | sendmail -v jail-root@$JAILDOMAIN" +iocage exec $JAIL "echo 'Subject: created new jail: $JAIL with $JAILIP / $JAILHOSTNAME / $JAILDOMAIN / $JAILUSER / $JAILUSERID / $JAILUSERVNC' | sendmail -v -t jail-root@$JAILDOMAIN" # reverse dns should already be configured for the mail server to accept this email diff --git a/jails/jails-restore-httpd.sh b/jails/jails-restore-httpd.sh index 375b767..5301aa2 100755 --- a/jails/jails-restore-httpd.sh +++ b/jails/jails-restore-httpd.sh @@ -1,3 +1,5 @@ +#!/usr/local/bin/bash + # Copyright (c) 2018-2020, diyIT.org # All rights reserved. # @@ -6,9 +8,7 @@ # # -#!/usr/local/bin/bash - -web_jails=(cloud hub nivi rishabh sharad web web-diyit ldap-mgr r-ldap-mgr monitor) +web_jails=(cloud hub nivi rachna rishabh sharad web web-diyit ldap-mgr r-ldap-mgr monitor) for i in ${web_jails[@]}; do @@ -27,7 +27,8 @@ for i in ${web_jails[@]}; do echo "restoring httpd.conf in web_jail $i after Apache update" iocage exec $i "cp /mnt/config/httpd.conf /usr/local/etc/apache24/httpd.conf" - iocage exec $i "service apache24 reload" + iocage exec $i "service apache24 restart" done -echo "check if php.ini or php-fpm need to be restored" +echo "check in output above if php.ini or php-fpm need to be restored" +echo "check pkgp jail nginx instance is running" diff --git a/jails/jails-update-cert.sh b/jails/jails-update-cert.sh index 90c54f2..c387d10 100755 --- a/jails/jails-update-cert.sh +++ b/jails/jails-update-cert.sh @@ -1,3 +1,5 @@ +#!/usr/local/bin/bash + # Copyright (c) 2018-2020, diyIT.org # All rights reserved. # @@ -6,9 +8,7 @@ # # -#!/bin/bash - -web_jails=(cloud hub nivi rishabh sharad web web-diyit ldap-mgr r-ldap-mgr monitor) +web_jails=(cloud hub nivi rachna rishabh sharad web web-diyit ldap-mgr r-ldap-mgr monitor) for i in ${web_jails[@]}; do @@ -40,7 +40,7 @@ iocage exec monitor "service elasticsearch restart" iocage exec monitor "service kibana restart" #iocage exec monitor "service logstash restart" -iocage exec monitor "ps axww | grep logstash | cut -f1 -d" " | xargs -n 1 kill -9 " +iocage exec monitor 'ps axww | grep logstash | cut -f1 -d" " | xargs -n 1 kill -9 ' iocage exec monitor "/root/start_logstash.sh" iocage exec monitor "service heartbeat restart" diff --git a/jails/jails-update-pkgs.sh b/jails/jails-update-pkgs.sh index e284b48..9491467 100755 --- a/jails/jails-update-pkgs.sh +++ b/jails/jails-update-pkgs.sh @@ -1,3 +1,5 @@ +#!/usr/local/bin/bash + # Copyright (c) 2018-2020, diyIT.org # All rights reserved. # @@ -6,53 +8,65 @@ # # -#!/bin/bash - pkg_jail="pj121" +pkg_repo="pkgp121" -#<<'COMMENT-SKIP-PKG-BUILD' -iocage exec pkgp "pkg update -f" -iocage exec pkgp "pkg upgrade -y" -iocage exec pkgp "pkg clean -ay" +if [[ $1 == "pkgp-skip" ]]; then -iocage set securelevel=0 pkgp -iocage exec pkgp "poudriere jail -l" -iocage exec pkgp "poudriere jail -u -j $pkg_jail" -iocage set securelevel=2 pkgp + echo "skipping pkgp update" -iocage exec pkgp "portsnap auto" +else -iocage exec pkgp "poudriere ports -l" -iocage exec pkgp "poudriere ports -u" -iocage exec pkgp "poudriere bulk -f /mnt/config/mypkgs -j $pkg_jail" -#COMMENT-SKIP-PKG-BUILD + #<<'UNCOMMENT-TO-SKIP-PKG-BUILD' + iocage exec pkgp "pkg update" + iocage exec pkgp "pkg upgrade -y" + iocage exec pkgp "pkg clean -ay" -cd /mnt/ship/ldap/phpLDAPadmin -pwd -git pull -cd /mnt/ship/r-ldap/phpLDAPadmin -pwd -git pull -cd /mnt/ship/book/calibre-web -pwd -git pull -cd /mnt/ship/plex/PlexConnect -pwd -git pull -cd /mnt/ship/maps/networkmaps -pwd -git pull + iocage set securelevel=0 pkgp + iocage exec pkgp "poudriere jail -l" + iocage exec pkgp "poudriere jail -u -j $pkg_jail" + iocage set securelevel=2 pkgp + + iocage exec pkgp "portsnap auto" + + iocage exec pkgp "poudriere ports -l" + iocage exec pkgp "poudriere ports -u" + iocage exec pkgp "poudriere bulk -f /mnt/config/mypkgs -j $pkg_jail" + #UNCOMMENT-TO-SKIP-PKG-BUILD + + cd /mnt/ship/ldap/phpLDAPadmin + pwd + git pull + + cd /mnt/ship/r-ldap/phpLDAPadmin + pwd + git pull + + cd /mnt/ship/book/calibre-web + pwd + git pull + + cd /mnt/ship/plex/PlexConnect + pwd + git pull + + cd /mnt/ship/maps/networkmaps + pwd + git pull + +fi + +if [[ $1 == "pkgp-only" ]]; then + exit +fi #read -p "Return/Enter to continue, ctrl-c to abort? " RESP -web_jails=(cloud hub nivi rishabh sharad web web-diyit ldap-mgr r-ldap-mgr monitor) -pkg_repo="pkgp121" - for i in `iocage list -h | cut -f 2`; do echo "## $i JAIL ##" - iocage exec $i "pkg update -f" + iocage exec $i "pkg update" if [[ "$i" == "ldap" || "$i" == "r-ldap" ]]; then iocage exec $i "pkg unlock -y openldap-sasl-server" @@ -79,7 +93,8 @@ done echo "NOTES:" -echo "pkg update -f" +echo "update base system by running:" +echo "pkg update" echo "pkg autoremove -y" echo "pkg upgrade -y" echo "pkg clean -ay" diff --git a/jails/update.sh b/jails/update.sh index 54f9395..1925f3f 100755 --- a/jails/update.sh +++ b/jails/update.sh @@ -1,3 +1,5 @@ +#!/usr/local/bin/bash + # Copyright (c) 2018-2020, diyIT.org # All rights reserved. # @@ -6,8 +8,6 @@ # # -#!/usr/local/bin/bash - update_jail () { echo "######## ## JAIL:::: $JAIL ##" @@ -47,7 +47,7 @@ if [ ! -z $RESP ] && [ $RESP == "y" ]; then update_jail fi -./jails-update-pkgs.sh +./jails-update-pkgs.sh pkgp-only read -p "update all jails (y/N)? " RESP if [ ! -z $RESP ] && [ $RESP == "y" ]; then @@ -63,5 +63,7 @@ fi echo "update base system by running:" echo "freebsd-update fetch" echo "freebsd-update install" +echo "cd /usr/src && make -j8 buildkernel KERNCONF=diyIT && make -j8 installkernel KERNCONF=diyIT" +echo "reboot" echo "pkg-static upgrade -f" echo "mergemaster" diff --git a/patches/D24250.patch b/patches/D24250.patch new file mode 100644 index 0000000..9244867 --- /dev/null +++ b/patches/D24250.patch @@ -0,0 +1,804 @@ +Index: head/sys/net/if_bridge.c +=================================================================== +--- head/sys/net/if_bridge.c ++++ head/sys/net/if_bridge.c +@@ -189,41 +189,14 @@ + */ + #define BRIDGE_LOCK_INIT(_sc) do { \ + mtx_init(&(_sc)->sc_mtx, "if_bridge", NULL, MTX_DEF); \ +- cv_init(&(_sc)->sc_cv, "if_bridge_cv"); \ + } while (0) + #define BRIDGE_LOCK_DESTROY(_sc) do { \ + mtx_destroy(&(_sc)->sc_mtx); \ +- cv_destroy(&(_sc)->sc_cv); \ + } while (0) + #define BRIDGE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) + #define BRIDGE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) + #define BRIDGE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_OWNED) + #define BRIDGE_UNLOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_NOTOWNED) +-#define BRIDGE_LOCK2REF(_sc, _err) do { \ +- mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ +- if ((_sc)->sc_iflist_xcnt > 0) \ +- (_err) = EBUSY; \ +- else \ +- (_sc)->sc_iflist_ref++; \ +- mtx_unlock(&(_sc)->sc_mtx); \ +-} while (0) +-#define BRIDGE_UNREF(_sc) do { \ +- mtx_lock(&(_sc)->sc_mtx); \ +- (_sc)->sc_iflist_ref--; \ +- if (((_sc)->sc_iflist_xcnt > 0) && ((_sc)->sc_iflist_ref == 0)) \ +- cv_broadcast(&(_sc)->sc_cv); \ +- mtx_unlock(&(_sc)->sc_mtx); \ +-} while (0) +-#define BRIDGE_XLOCK(_sc) do { \ +- mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ +- (_sc)->sc_iflist_xcnt++; \ +- while ((_sc)->sc_iflist_ref > 0) \ +- cv_wait(&(_sc)->sc_cv, &(_sc)->sc_mtx); \ +-} while (0) +-#define BRIDGE_XDROP(_sc) do { \ +- mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ +- (_sc)->sc_iflist_xcnt--; \ +-} while (0) + + /* + * Bridge interface list entry. +@@ -237,6 +210,7 @@ + uint32_t bif_addrmax; /* max # of addresses */ + uint32_t bif_addrcnt; /* cur. # of addresses */ + uint32_t bif_addrexceeded;/* # of address violations */ ++ struct epoch_context bif_epoch_ctx; + }; + + /* +@@ -250,6 +224,8 @@ + uint8_t brt_flags; /* address flags */ + uint8_t brt_addr[ETHER_ADDR_LEN]; + uint16_t brt_vlan; /* vlan id */ ++ struct vnet *brt_vnet; ++ struct epoch_context brt_epoch_ctx; + }; + #define brt_ifp brt_dst->bif_ifp + +@@ -260,13 +236,10 @@ + struct ifnet *sc_ifp; /* make this an interface */ + LIST_ENTRY(bridge_softc) sc_list; + struct mtx sc_mtx; +- struct cv sc_cv; + uint32_t sc_brtmax; /* max # of addresses */ + uint32_t sc_brtcnt; /* cur. # of addresses */ + uint32_t sc_brttimeout; /* rt timeout in seconds */ + struct callout sc_brcallout; /* bridge callout */ +- uint32_t sc_iflist_ref; /* refcount for sc_iflist */ +- uint32_t sc_iflist_xcnt; /* refcount for sc_iflist */ + CK_LIST_HEAD(, bridge_iflist) sc_iflist; /* member interface list */ + CK_LIST_HEAD(, bridge_rtnode) *sc_rthash; /* our forwarding table */ + CK_LIST_HEAD(, bridge_rtnode) sc_rtlist; /* list version of above */ +@@ -276,6 +249,7 @@ + uint32_t sc_brtexceeded; /* # of cache drops */ + struct ifnet *sc_ifaddr; /* member mac copied from */ + struct ether_addr sc_defaddr; /* Default MAC address */ ++ struct epoch_context sc_epoch_ctx; + }; + + VNET_DEFINE_STATIC(struct mtx, bridge_list_mtx); +@@ -596,6 +570,10 @@ + if_clone_detach(V_bridge_cloner); + V_bridge_cloner = NULL; + BRIDGE_LIST_LOCK_DESTROY(); ++ ++ /* Callbacks may use the UMA zone. */ ++ epoch_drain_callbacks(net_epoch_preempt); ++ + uma_zdestroy(V_bridge_rtnode_zone); + } + VNET_SYSUNINIT(vnet_bridge_uninit, SI_SUB_PSEUDO, SI_ORDER_ANY, +@@ -722,6 +700,17 @@ + return (0); + } + ++static void ++bridge_clone_destroy_cb(struct epoch_context *ctx) ++{ ++ struct bridge_softc *sc; ++ ++ sc = __containerof(ctx, struct bridge_softc, sc_epoch_ctx); ++ ++ BRIDGE_LOCK_DESTROY(sc); ++ free(sc, M_DEVBUF); ++} ++ + /* + * bridge_clone_destroy: + * +@@ -732,7 +721,9 @@ + { + struct bridge_softc *sc = ifp->if_softc; + struct bridge_iflist *bif; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER(et); + BRIDGE_LOCK(sc); + + bridge_stop(ifp, 1); +@@ -757,11 +748,12 @@ + BRIDGE_LIST_UNLOCK(); + + bstp_detach(&sc->sc_stp); ++ NET_EPOCH_EXIT(et); ++ + ether_ifdetach(ifp); + if_free(ifp); + +- BRIDGE_LOCK_DESTROY(sc); +- free(sc, M_DEVBUF); ++ NET_EPOCH_CALL(bridge_clone_destroy_cb, &sc->sc_epoch_ctx); + } + + /* +@@ -787,7 +779,10 @@ + struct ifdrv *ifd = (struct ifdrv *) data; + const struct bridge_control *bc; + int error = 0, oldmtu; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER(et); ++ + switch (cmd) { + + case SIOCADDMULTI: +@@ -908,6 +903,8 @@ + break; + } + ++ NET_EPOCH_EXIT(et); ++ + return (error); + } + +@@ -922,6 +919,8 @@ + struct bridge_iflist *bif; + int enabled, mask; + ++ BRIDGE_LOCK_ASSERT(sc); ++ + /* Initial bitmask of capabilities to test */ + mask = BRIDGE_IFCAPS_MASK; + +@@ -930,7 +929,6 @@ + mask &= bif->bif_savedcaps; + } + +- BRIDGE_XLOCK(sc); + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + enabled = bif->bif_ifp->if_capenable; + enabled &= ~BRIDGE_IFCAPS_STRIP; +@@ -941,8 +939,6 @@ + bridge_set_ifcap(sc, bif, enabled); + BRIDGE_LOCK(sc); + } +- BRIDGE_XDROP(sc); +- + } + + static void +@@ -983,7 +979,7 @@ + struct bridge_iflist *bif; + struct ifnet *ifp; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + ifp = bif->bif_ifp; +@@ -1004,7 +1000,7 @@ + { + struct bridge_iflist *bif; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + if (bif->bif_ifp == member_ifp) +@@ -1014,6 +1010,16 @@ + return (NULL); + } + ++static void ++bridge_delete_member_cb(struct epoch_context *ctx) ++{ ++ struct bridge_iflist *bif; ++ ++ bif = __containerof(ctx, struct bridge_iflist, bif_epoch_ctx); ++ ++ free(bif, M_DEVBUF); ++} ++ + /* + * bridge_delete_member: + * +@@ -1033,9 +1039,7 @@ + bstp_disable(&bif->bif_stp); + + ifs->if_bridge = NULL; +- BRIDGE_XLOCK(sc); + CK_LIST_REMOVE(bif, bif_next); +- BRIDGE_XDROP(sc); + + /* + * If removing the interface that gave the bridge its mac address, set +@@ -1094,7 +1098,8 @@ + } + bstp_destroy(&bif->bif_stp); /* prepare to free */ + BRIDGE_LOCK(sc); +- free(bif, M_DEVBUF); ++ ++ NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx); + } + + /* +@@ -1111,7 +1116,8 @@ + ("%s: not a span interface", __func__)); + + CK_LIST_REMOVE(bif, bif_next); +- free(bif, M_DEVBUF); ++ ++ NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx); + } + + static int +@@ -1167,7 +1173,6 @@ + * If any, remove all inet6 addresses from the member + * interfaces. + */ +- BRIDGE_XLOCK(sc); + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + if (in6ifa_llaonifp(bif->bif_ifp)) { + BRIDGE_UNLOCK(sc); +@@ -1180,7 +1185,6 @@ + bif->bif_ifp->if_xname); + } + } +- BRIDGE_XDROP(sc); + if (in6ifa_llaonifp(ifs)) { + BRIDGE_UNLOCK(sc); + in6_ifdetach(ifs); +@@ -1494,12 +1498,17 @@ + struct bridge_iflist *bif; + int error; + ++ NET_EPOCH_ASSERT(); ++ + bif = bridge_lookup_member(sc, req->ifba_ifsname); + if (bif == NULL) + return (ENOENT); + ++ /* bridge_rtupdate() may acquire the lock. */ ++ BRIDGE_UNLOCK(sc); + error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1, + req->ifba_flags); ++ BRIDGE_LOCK(sc); + + return (error); + } +@@ -1838,6 +1847,7 @@ + { + struct bridge_softc *sc = ifp->if_bridge; + struct bridge_iflist *bif; ++ struct epoch_tracker et; + + if (ifp->if_flags & IFF_RENAMING) + return; +@@ -1848,6 +1858,7 @@ + */ + return; + } ++ NET_EPOCH_ENTER(et); + /* Check if the interface is a bridge member */ + if (sc != NULL) { + BRIDGE_LOCK(sc); +@@ -1857,6 +1868,7 @@ + bridge_delete_member(sc, bif, 1); + + BRIDGE_UNLOCK(sc); ++ NET_EPOCH_EXIT(et); + return; + } + +@@ -1873,6 +1885,7 @@ + BRIDGE_UNLOCK(sc); + } + BRIDGE_LIST_UNLOCK(); ++ NET_EPOCH_EXIT(et); + } + + /* +@@ -1909,6 +1922,7 @@ + { + struct bridge_softc *sc = ifp->if_softc; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) +@@ -2032,6 +2046,8 @@ + struct bridge_softc *sc; + uint16_t vlan; + ++ NET_EPOCH_ASSERT(); ++ + if (m->m_len < ETHER_HDR_LEN) { + m = m_pullup(m, ETHER_HDR_LEN); + if (m == NULL) +@@ -2042,7 +2058,6 @@ + sc = ifp->if_bridge; + vlan = VLANTAGOF(m); + +- BRIDGE_LOCK(sc); + bifp = sc->sc_ifp; + + /* +@@ -2069,16 +2084,10 @@ + if (dst_if == NULL) { + struct bridge_iflist *bif; + struct mbuf *mc; +- int error = 0, used = 0; ++ int used = 0; + + bridge_span(sc, m); + +- BRIDGE_LOCK2REF(sc, error); +- if (error) { +- m_freem(m); +- return (0); +- } +- + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + dst_if = bif->bif_ifp; + +@@ -2112,7 +2121,6 @@ + } + if (used == 0) + m_freem(m); +- BRIDGE_UNREF(sc); + return (0); + } + +@@ -2124,11 +2132,9 @@ + bridge_span(sc, m); + if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) { + m_freem(m); +- BRIDGE_UNLOCK(sc); + return (0); + } + +- BRIDGE_UNLOCK(sc); + bridge_enqueue(sc, dst_if, m); + return (0); + } +@@ -2153,10 +2159,8 @@ + + eh = mtod(m, struct ether_header *); + +- BRIDGE_LOCK(sc); + if (((m->m_flags & (M_BCAST|M_MCAST)) == 0) && + (dst_if = bridge_rtlookup(sc, eh->ether_dhost, 1)) != NULL) { +- BRIDGE_UNLOCK(sc); + error = bridge_enqueue(sc, dst_if, m); + } else + bridge_broadcast(sc, ifp, m, 0); +@@ -2190,6 +2194,8 @@ + uint8_t *dst; + int error; + ++ NET_EPOCH_ASSERT(); ++ + src_if = m->m_pkthdr.rcvif; + ifp = sc->sc_ifp; + +@@ -2268,12 +2274,10 @@ + || PFIL_HOOKED_IN(V_inet6_pfil_head) + #endif + ) { +- BRIDGE_UNLOCK(sc); + if (bridge_pfil(&m, ifp, src_if, PFIL_IN) != 0) + return; + if (m == NULL) + return; +- BRIDGE_LOCK(sc); + } + + if (dst_if == NULL) { +@@ -2301,8 +2305,6 @@ + dbif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) + goto drop; + +- BRIDGE_UNLOCK(sc); +- + if (PFIL_HOOKED_OUT(V_inet_pfil_head) + #ifdef INET6 + || PFIL_HOOKED_OUT(V_inet6_pfil_head) +@@ -2318,7 +2320,6 @@ + return; + + drop: +- BRIDGE_UNLOCK(sc); + m_freem(m); + } + +@@ -2339,6 +2340,8 @@ + uint16_t vlan; + int error; + ++ NET_EPOCH_ASSERT(); ++ + if ((sc->sc_ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return (m); + +@@ -2359,10 +2362,8 @@ + m_freem(m); + return (NULL); + } +- BRIDGE_LOCK(sc); + bif = bridge_lookup_member_if(sc, ifp); + if (bif == NULL) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2375,13 +2376,11 @@ + if (memcmp(eh->ether_dhost, bstp_etheraddr, + ETHER_ADDR_LEN) == 0) { + bstp_input(&bif->bif_stp, ifp, m); /* consumes mbuf */ +- BRIDGE_UNLOCK(sc); + return (NULL); + } + + if ((bif->bif_flags & IFBIF_STP) && + bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2392,7 +2391,6 @@ + */ + mc = m_dup(m, M_NOWAIT); + if (mc == NULL) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2424,7 +2422,6 @@ + + if ((bif->bif_flags & IFBIF_STP) && + bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2458,7 +2455,6 @@ + error = bridge_rtupdate(sc, eh->ether_shost, \ + vlan, bif, 0, IFBAF_DYNAMIC); \ + if (error && bif->bif_addrmax) { \ +- BRIDGE_UNLOCK(sc); \ + m_freem(m); \ + return (NULL); \ + } \ +@@ -2466,7 +2462,6 @@ + m->m_pkthdr.rcvif = iface; \ + if ((iface) == ifp) { \ + /* Skip bridge processing... src == dest */ \ +- BRIDGE_UNLOCK(sc); \ + return (m); \ + } \ + /* It's passing over or to the bridge, locally. */ \ +@@ -2478,13 +2473,11 @@ + OR_PFIL_HOOKED_INET6)) { \ + if (bridge_pfil(&m, NULL, ifp, \ + PFIL_IN) != 0 || m == NULL) { \ +- BRIDGE_UNLOCK(sc); \ + return (NULL); \ + } \ + } \ + if ((iface) != bifp) \ + ETHER_BPF_MTAP(iface, m); \ +- BRIDGE_UNLOCK(sc); \ + return (m); \ + } \ + \ +@@ -2492,7 +2485,6 @@ + if (memcmp(IF_LLADDR((iface)), eh->ether_shost, ETHER_ADDR_LEN) == 0 \ + OR_CARP_CHECK_WE_ARE_SRC((iface)) \ + ) { \ +- BRIDGE_UNLOCK(sc); \ + m_freem(m); \ + return (NULL); \ + } +@@ -2543,16 +2535,12 @@ + struct bridge_iflist *dbif, *sbif; + struct mbuf *mc; + struct ifnet *dst_if; +- int error = 0, used = 0, i; ++ int used = 0, i; + ++ NET_EPOCH_ASSERT(); ++ + sbif = bridge_lookup_member_if(sc, src_if); + +- BRIDGE_LOCK2REF(sc, error); +- if (error) { +- m_freem(m); +- return; +- } +- + /* Filter on the bridge interface before broadcasting */ + if (runfilt && (PFIL_HOOKED_OUT(V_inet_pfil_head) + #ifdef INET6 +@@ -2560,9 +2548,9 @@ + #endif + )) { + if (bridge_pfil(&m, sc->sc_ifp, NULL, PFIL_OUT) != 0) +- goto out; ++ return; + if (m == NULL) +- goto out; ++ return; + } + + CK_LIST_FOREACH(dbif, &sc->sc_iflist, bif_next) { +@@ -2625,9 +2613,6 @@ + } + if (used == 0) + m_freem(m); +- +-out: +- BRIDGE_UNREF(sc); + } + + /* +@@ -2643,6 +2628,8 @@ + struct ifnet *dst_if; + struct mbuf *mc; + ++ NET_EPOCH_ASSERT(); ++ + if (CK_LIST_EMPTY(&sc->sc_spanlist)) + return; + +@@ -2674,7 +2661,8 @@ + struct bridge_rtnode *brt; + int error; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); ++ BRIDGE_UNLOCK_ASSERT(sc); + + /* Check the source address is valid and not multicast. */ + if (ETHER_IS_MULTICAST(dst) || +@@ -2691,13 +2679,24 @@ + * update it, otherwise create a new one. + */ + if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) == NULL) { ++ BRIDGE_LOCK(sc); ++ ++ /* Check again, now that we have the lock. There could have ++ * been a race and we only want to insert this once. */ ++ if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) != NULL) { ++ BRIDGE_UNLOCK(sc); ++ return (0); ++ } ++ + if (sc->sc_brtcnt >= sc->sc_brtmax) { + sc->sc_brtexceeded++; ++ BRIDGE_UNLOCK(sc); + return (ENOSPC); + } + /* Check per interface address limits (if enabled) */ + if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) { + bif->bif_addrexceeded++; ++ BRIDGE_UNLOCK(sc); + return (ENOSPC); + } + +@@ -2707,8 +2706,11 @@ + * address. + */ + brt = uma_zalloc(V_bridge_rtnode_zone, M_NOWAIT | M_ZERO); +- if (brt == NULL) ++ if (brt == NULL) { ++ BRIDGE_UNLOCK(sc); + return (ENOMEM); ++ } ++ brt->brt_vnet = curvnet; + + if (bif->bif_flags & IFBIF_STICKY) + brt->brt_flags = IFBAF_STICKY; +@@ -2720,17 +2722,22 @@ + + if ((error = bridge_rtnode_insert(sc, brt)) != 0) { + uma_zfree(V_bridge_rtnode_zone, brt); ++ BRIDGE_UNLOCK(sc); + return (error); + } + brt->brt_dst = bif; + bif->bif_addrcnt++; ++ ++ BRIDGE_UNLOCK(sc); + } + + if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC && + brt->brt_dst != bif) { ++ BRIDGE_LOCK(sc); + brt->brt_dst->bif_addrcnt--; + brt->brt_dst = bif; + brt->brt_dst->bif_addrcnt++; ++ BRIDGE_UNLOCK(sc); + } + + if ((flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) +@@ -2751,7 +2758,7 @@ + { + struct bridge_rtnode *brt; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + if ((brt = bridge_rtnode_lookup(sc, addr, vlan)) == NULL) + return (NULL); +@@ -2771,6 +2778,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + /* Make sure we actually need to do this. */ +@@ -2800,7 +2808,9 @@ + bridge_timer(void *arg) + { + struct bridge_softc *sc = arg; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER(et); + BRIDGE_LOCK_ASSERT(sc); + + /* Destruction of rtnodes requires a proper vnet context */ +@@ -2811,6 +2821,7 @@ + callout_reset(&sc->sc_brcallout, + bridge_rtable_prune_period * hz, bridge_timer, sc); + CURVNET_RESTORE(); ++ NET_EPOCH_EXIT(et); + } + + /* +@@ -2823,6 +2834,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { +@@ -2843,6 +2855,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { +@@ -2862,6 +2875,7 @@ + struct bridge_rtnode *brt; + int found = 0; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + /* +@@ -2886,6 +2900,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { +@@ -2990,7 +3005,7 @@ + uint32_t hash; + int dir; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + hash = bridge_rthash(sc, addr); + CK_LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) { +@@ -3053,6 +3068,18 @@ + return (0); + } + ++static void ++bridge_rtnode_destroy_cb(struct epoch_context *ctx) ++{ ++ struct bridge_rtnode *brt; ++ ++ brt = __containerof(ctx, struct bridge_rtnode, brt_epoch_ctx); ++ ++ CURVNET_SET(brt->brt_vnet); ++ uma_zfree(V_bridge_rtnode_zone, brt); ++ CURVNET_RESTORE(); ++} ++ + /* + * bridge_rtnode_destroy: + * +@@ -3061,6 +3088,7 @@ + static void + bridge_rtnode_destroy(struct bridge_softc *sc, struct bridge_rtnode *brt) + { ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + CK_LIST_REMOVE(brt, brt_hash); +@@ -3068,7 +3096,8 @@ + CK_LIST_REMOVE(brt, brt_list); + sc->sc_brtcnt--; + brt->brt_dst->bif_addrcnt--; +- uma_zfree(V_bridge_rtnode_zone, brt); ++ ++ NET_EPOCH_CALL(bridge_rtnode_destroy_cb, &brt->brt_epoch_ctx); + } + + /* +@@ -3081,7 +3110,9 @@ + { + struct bridge_softc *sc = ifp->if_bridge; + struct bridge_rtnode *brt; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER(et); + CURVNET_SET(ifp->if_vnet); + BRIDGE_LOCK(sc); + +@@ -3102,6 +3133,7 @@ + } + BRIDGE_UNLOCK(sc); + CURVNET_RESTORE(); ++ NET_EPOCH_EXIT(et); + } + + /* +@@ -3607,17 +3639,20 @@ + { + struct bridge_softc *sc = ifp->if_bridge; + struct bridge_iflist *bif; ++ struct epoch_tracker et; + +- BRIDGE_LOCK(sc); ++ NET_EPOCH_ENTER(et); ++ + bif = bridge_lookup_member_if(sc, ifp); + if (bif == NULL) { +- BRIDGE_UNLOCK(sc); ++ NET_EPOCH_EXIT(et); + return; + } + bridge_linkcheck(sc); +- BRIDGE_UNLOCK(sc); + + bstp_linkstate(&bif->bif_stp); ++ ++ NET_EPOCH_EXIT(et); + } + + static void +@@ -3626,7 +3661,8 @@ + struct bridge_iflist *bif; + int new_link, hasls; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); ++ + new_link = LINK_STATE_DOWN; + hasls = 0; + /* Our link is considered up if at least one of our ports is active */ diff --git a/patches/bridge.patch b/patches/bridge.patch new file mode 100644 index 0000000..0168bf6 --- /dev/null +++ b/patches/bridge.patch @@ -0,0 +1,811 @@ +Index: sys/net/if_bridge.c +=================================================================== +--- sys/net/if_bridge.c (revision 360985) ++++ sys/net/if_bridge.c (working copy) +@@ -165,6 +165,9 @@ + #define BRIDGE_RTABLE_PRUNE_PERIOD (5 * 60) + #endif + ++#define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) ++#define NET_EPOCH_CALL(f, c) epoch_call(net_epoch_preempt, (c), (f)) ++ + /* + * List of capabilities to possibly mask on the member interface. + */ +@@ -188,6 +191,7 @@ + uint32_t bif_addrmax; /* max # of addresses */ + uint32_t bif_addrcnt; /* cur. # of addresses */ + uint32_t bif_addrexceeded;/* # of address violations */ ++ struct epoch_context bif_epoch_ctx; + }; + + /* +@@ -201,6 +205,8 @@ + uint8_t brt_flags; /* address flags */ + uint8_t brt_addr[ETHER_ADDR_LEN]; + uint16_t brt_vlan; /* vlan id */ ++ struct vnet *brt_vnet; ++ struct epoch_context brt_epoch_ctx; + }; + #define brt_ifp brt_dst->bif_ifp + +@@ -211,13 +217,10 @@ + struct ifnet *sc_ifp; /* make this an interface */ + LIST_ENTRY(bridge_softc) sc_list; + struct mtx sc_mtx; +- struct cv sc_cv; + uint32_t sc_brtmax; /* max # of addresses */ + uint32_t sc_brtcnt; /* cur. # of addresses */ + uint32_t sc_brttimeout; /* rt timeout in seconds */ + struct callout sc_brcallout; /* bridge callout */ +- uint32_t sc_iflist_ref; /* refcount for sc_iflist */ +- uint32_t sc_iflist_xcnt; /* refcount for sc_iflist */ + LIST_HEAD(, bridge_iflist) sc_iflist; /* member interface list */ + LIST_HEAD(, bridge_rtnode) *sc_rthash; /* our forwarding table */ + LIST_HEAD(, bridge_rtnode) sc_rtlist; /* list version of above */ +@@ -227,6 +230,7 @@ + uint32_t sc_brtexceeded; /* # of cache drops */ + struct ifnet *sc_ifaddr; /* member mac copied from */ + struct ether_addr sc_defaddr; /* Default MAC address */ ++ struct epoch_context sc_epoch_ctx; + }; + + VNET_DEFINE_STATIC(struct mtx, bridge_list_mtx); +@@ -546,6 +550,10 @@ + if_clone_detach(V_bridge_cloner); + V_bridge_cloner = NULL; + BRIDGE_LIST_LOCK_DESTROY(); ++ ++ /* Callbacks may use UMA zone. */ ++ epoch_drain_callbacks(net_epoch_preempt); ++ + uma_zdestroy(V_bridge_rtnode_zone); + } + VNET_SYSUNINIT(vnet_bridge_uninit, SI_SUB_PSEUDO, SI_ORDER_ANY, +@@ -708,6 +716,17 @@ + return (0); + } + ++static void ++bridge_clone_destroy_cb(struct epoch_context *ctx) ++{ ++ struct bridge_softc *sc; ++ ++ sc = __containerof(ctx, struct bridge_softc, sc_epoch_ctx); ++ ++ BRIDGE_LOCK_DESTROY(sc); ++ free(sc, M_DEVBUF); ++} ++ + /* + * bridge_clone_destroy: + * +@@ -718,7 +737,9 @@ + { + struct bridge_softc *sc = ifp->if_softc; + struct bridge_iflist *bif; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER_ET(et); + BRIDGE_LOCK(sc); + + bridge_stop(ifp, 1); +@@ -743,11 +764,12 @@ + BRIDGE_LIST_UNLOCK(); + + bstp_detach(&sc->sc_stp); ++ NET_EPOCH_EXIT_ET(et); ++ + ether_ifdetach(ifp); + if_free(ifp); + +- BRIDGE_LOCK_DESTROY(sc); +- free(sc, M_DEVBUF); ++ NET_EPOCH_CALL(bridge_clone_destroy_cb, &sc->sc_epoch_ctx); + } + + /* +@@ -773,7 +795,10 @@ + struct ifdrv *ifd = (struct ifdrv *) data; + const struct bridge_control *bc; + int error = 0; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER_ET(et); ++ + switch (cmd) { + + case SIOCADDMULTI: +@@ -882,6 +907,8 @@ + break; + } + ++ NET_EPOCH_EXIT_ET(et); ++ + return (error); + } + +@@ -896,6 +923,8 @@ + struct bridge_iflist *bif; + int enabled, mask; + ++ BRIDGE_LOCK_ASSERT(sc); ++ + /* Initial bitmask of capabilities to test */ + mask = BRIDGE_IFCAPS_MASK; + +@@ -904,7 +933,6 @@ + mask &= bif->bif_savedcaps; + } + +- BRIDGE_XLOCK(sc); + LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + enabled = bif->bif_ifp->if_capenable; + enabled &= ~BRIDGE_IFCAPS_STRIP; +@@ -915,8 +943,6 @@ + bridge_set_ifcap(sc, bif, enabled); + BRIDGE_LOCK(sc); + } +- BRIDGE_XDROP(sc); +- + } + + static void +@@ -957,7 +983,7 @@ + struct bridge_iflist *bif; + struct ifnet *ifp; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + ifp = bif->bif_ifp; +@@ -978,7 +1004,7 @@ + { + struct bridge_iflist *bif; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + if (bif->bif_ifp == member_ifp) +@@ -988,6 +1014,16 @@ + return (NULL); + } + ++static void ++bridge_delete_member_cb(struct epoch_context *ctx) ++{ ++ struct bridge_iflist *bif; ++ ++ bif = __containerof(ctx, struct bridge_iflist, bif_epoch_ctx); ++ ++ free(bif, M_DEVBUF); ++} ++ + /* + * bridge_delete_member: + * +@@ -1006,9 +1042,7 @@ + bstp_disable(&bif->bif_stp); + + ifs->if_bridge = NULL; +- BRIDGE_XLOCK(sc); + LIST_REMOVE(bif, bif_next); +- BRIDGE_XDROP(sc); + + /* + * If removing the interface that gave the bridge its mac address, set +@@ -1066,7 +1100,8 @@ + } + bstp_destroy(&bif->bif_stp); /* prepare to free */ + BRIDGE_LOCK(sc); +- free(bif, M_DEVBUF); ++ ++ NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx); + } + + /* +@@ -1083,7 +1118,8 @@ + ("%s: not a span interface", __func__)); + + LIST_REMOVE(bif, bif_next); +- free(bif, M_DEVBUF); ++ ++ NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx); + } + + static int +@@ -1139,7 +1175,6 @@ + * If any, remove all inet6 addresses from the member + * interfaces. + */ +- BRIDGE_XLOCK(sc); + LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + if (in6ifa_llaonifp(bif->bif_ifp)) { + BRIDGE_UNLOCK(sc); +@@ -1152,7 +1187,6 @@ + bif->bif_ifp->if_xname); + } + } +- BRIDGE_XDROP(sc); + if (in6ifa_llaonifp(ifs)) { + BRIDGE_UNLOCK(sc); + in6_ifdetach(ifs); +@@ -1466,12 +1500,17 @@ + struct bridge_iflist *bif; + int error; + ++ NET_EPOCH_ASSERT(); ++ + bif = bridge_lookup_member(sc, req->ifba_ifsname); + if (bif == NULL) + return (ENOENT); + ++ /* bridge_rtupdate() may acquire the lock. */ ++ BRIDGE_UNLOCK(sc); + error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1, + req->ifba_flags); ++ BRIDGE_LOCK(sc); + + return (error); + } +@@ -1810,6 +1849,7 @@ + { + struct bridge_softc *sc = ifp->if_bridge; + struct bridge_iflist *bif; ++ struct epoch_tracker et; + + if (ifp->if_flags & IFF_RENAMING) + return; +@@ -1820,6 +1860,7 @@ + */ + return; + } ++ NET_EPOCH_ENTER_ET(et); + /* Check if the interface is a bridge member */ + if (sc != NULL) { + BRIDGE_LOCK(sc); +@@ -1829,6 +1870,7 @@ + bridge_delete_member(sc, bif, 1); + + BRIDGE_UNLOCK(sc); ++ NET_EPOCH_EXIT_ET(et); + return; + } + +@@ -1845,6 +1887,7 @@ + BRIDGE_UNLOCK(sc); + } + BRIDGE_LIST_UNLOCK(); ++ NET_EPOCH_EXIT_ET(et); + } + + /* +@@ -1881,6 +1924,7 @@ + { + struct bridge_softc *sc = ifp->if_softc; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) +@@ -2004,6 +2048,8 @@ + struct bridge_softc *sc; + uint16_t vlan; + ++ NET_EPOCH_ASSERT(); ++ + if (m->m_len < ETHER_HDR_LEN) { + m = m_pullup(m, ETHER_HDR_LEN); + if (m == NULL) +@@ -2014,8 +2060,6 @@ + sc = ifp->if_bridge; + vlan = VLANTAGOF(m); + +- BRIDGE_LOCK(sc); +- + /* + * If bridge is down, but the original output interface is up, + * go ahead and send out that interface. Otherwise, the packet +@@ -2037,16 +2081,10 @@ + if (dst_if == NULL) { + struct bridge_iflist *bif; + struct mbuf *mc; +- int error = 0, used = 0; ++ int used = 0; + + bridge_span(sc, m); + +- BRIDGE_LOCK2REF(sc, error); +- if (error) { +- m_freem(m); +- return (0); +- } +- + LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + dst_if = bif->bif_ifp; + +@@ -2080,7 +2118,6 @@ + } + if (used == 0) + m_freem(m); +- BRIDGE_UNREF(sc); + return (0); + } + +@@ -2092,11 +2129,9 @@ + bridge_span(sc, m); + if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) { + m_freem(m); +- BRIDGE_UNLOCK(sc); + return (0); + } + +- BRIDGE_UNLOCK(sc); + bridge_enqueue(sc, dst_if, m); + return (0); + } +@@ -2121,10 +2156,8 @@ + + eh = mtod(m, struct ether_header *); + +- BRIDGE_LOCK(sc); + if (((m->m_flags & (M_BCAST|M_MCAST)) == 0) && + (dst_if = bridge_rtlookup(sc, eh->ether_dhost, 1)) != NULL) { +- BRIDGE_UNLOCK(sc); + error = bridge_enqueue(sc, dst_if, m); + } else + bridge_broadcast(sc, ifp, m, 0); +@@ -2158,6 +2191,8 @@ + uint8_t *dst; + int error; + ++ NET_EPOCH_ASSERT(); ++ + src_if = m->m_pkthdr.rcvif; + ifp = sc->sc_ifp; + +@@ -2236,12 +2271,10 @@ + || PFIL_HOOKED(&V_inet6_pfil_hook) + #endif + ) { +- BRIDGE_UNLOCK(sc); + if (bridge_pfil(&m, ifp, src_if, PFIL_IN) != 0) + return; + if (m == NULL) + return; +- BRIDGE_LOCK(sc); + } + + if (dst_if == NULL) { +@@ -2269,8 +2302,6 @@ + dbif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) + goto drop; + +- BRIDGE_UNLOCK(sc); +- + if (PFIL_HOOKED(&V_inet_pfil_hook) + #ifdef INET6 + || PFIL_HOOKED(&V_inet6_pfil_hook) +@@ -2286,7 +2317,6 @@ + return; + + drop: +- BRIDGE_UNLOCK(sc); + m_freem(m); + } + +@@ -2307,6 +2337,8 @@ + uint16_t vlan; + int error; + ++ NET_EPOCH_ASSERT(); ++ + if ((sc->sc_ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return (m); + +@@ -2327,10 +2359,8 @@ + m_freem(m); + return (NULL); + } +- BRIDGE_LOCK(sc); + bif = bridge_lookup_member_if(sc, ifp); + if (bif == NULL) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2343,13 +2373,11 @@ + if (memcmp(eh->ether_dhost, bstp_etheraddr, + ETHER_ADDR_LEN) == 0) { + bstp_input(&bif->bif_stp, ifp, m); /* consumes mbuf */ +- BRIDGE_UNLOCK(sc); + return (NULL); + } + + if ((bif->bif_flags & IFBIF_STP) && + bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2360,7 +2388,6 @@ + */ + mc = m_dup(m, M_NOWAIT); + if (mc == NULL) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2392,7 +2419,6 @@ + + if ((bif->bif_flags & IFBIF_STP) && + bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) { +- BRIDGE_UNLOCK(sc); + return (m); + } + +@@ -2432,7 +2458,6 @@ + OR_PFIL_HOOKED_INET6)) { \ + if (bridge_pfil(&m, NULL, ifp, \ + PFIL_IN) != 0 || m == NULL) { \ +- BRIDGE_UNLOCK(sc); \ + return (NULL); \ + } \ + eh = mtod(m, struct ether_header *); \ +@@ -2442,13 +2467,11 @@ + error = bridge_rtupdate(sc, eh->ether_shost, \ + vlan, bif, 0, IFBAF_DYNAMIC); \ + if (error && bif->bif_addrmax) { \ +- BRIDGE_UNLOCK(sc); \ + m_freem(m); \ + return (NULL); \ + } \ + } \ + m->m_pkthdr.rcvif = iface; \ +- BRIDGE_UNLOCK(sc); \ + return (m); \ + } \ + \ +@@ -2456,7 +2479,6 @@ + if (memcmp(IF_LLADDR((iface)), eh->ether_shost, ETHER_ADDR_LEN) == 0 \ + OR_CARP_CHECK_WE_ARE_SRC((iface)) \ + ) { \ +- BRIDGE_UNLOCK(sc); \ + m_freem(m); \ + return (NULL); \ + } +@@ -2507,16 +2529,12 @@ + struct bridge_iflist *dbif, *sbif; + struct mbuf *mc; + struct ifnet *dst_if; +- int error = 0, used = 0, i; ++ int used = 0, i; + ++ NET_EPOCH_ASSERT(); ++ + sbif = bridge_lookup_member_if(sc, src_if); + +- BRIDGE_LOCK2REF(sc, error); +- if (error) { +- m_freem(m); +- return; +- } +- + /* Filter on the bridge interface before broadcasting */ + if (runfilt && (PFIL_HOOKED(&V_inet_pfil_hook) + #ifdef INET6 +@@ -2524,9 +2542,9 @@ + #endif + )) { + if (bridge_pfil(&m, sc->sc_ifp, NULL, PFIL_OUT) != 0) +- goto out; ++ return; + if (m == NULL) +- goto out; ++ return; + } + + LIST_FOREACH(dbif, &sc->sc_iflist, bif_next) { +@@ -2589,9 +2607,6 @@ + } + if (used == 0) + m_freem(m); +- +-out: +- BRIDGE_UNREF(sc); + } + + /* +@@ -2607,6 +2622,8 @@ + struct ifnet *dst_if; + struct mbuf *mc; + ++ NET_EPOCH_ASSERT(); ++ + if (LIST_EMPTY(&sc->sc_spanlist)) + return; + +@@ -2638,7 +2655,8 @@ + struct bridge_rtnode *brt; + int error; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); ++ BRIDGE_UNLOCK_ASSERT(sc); + + /* Check the source address is valid and not multicast. */ + if (ETHER_IS_MULTICAST(dst) || +@@ -2655,13 +2673,24 @@ + * update it, otherwise create a new one. + */ + if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) == NULL) { ++ BRIDGE_LOCK(sc); ++ ++ /* Check again, now that we have the lock. There could have ++ * been a race and we only want to insert this once. */ ++ if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) != NULL) { ++ BRIDGE_UNLOCK(sc); ++ return (0); ++ } ++ + if (sc->sc_brtcnt >= sc->sc_brtmax) { + sc->sc_brtexceeded++; ++ BRIDGE_UNLOCK(sc); + return (ENOSPC); + } + /* Check per interface address limits (if enabled) */ + if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) { + bif->bif_addrexceeded++; ++ BRIDGE_UNLOCK(sc); + return (ENOSPC); + } + +@@ -2671,8 +2700,11 @@ + * address. + */ + brt = uma_zalloc(V_bridge_rtnode_zone, M_NOWAIT | M_ZERO); +- if (brt == NULL) ++ if (brt == NULL) { ++ BRIDGE_UNLOCK(sc); + return (ENOMEM); ++ } ++ brt->brt_vnet = curvnet; + + if (bif->bif_flags & IFBIF_STICKY) + brt->brt_flags = IFBAF_STICKY; +@@ -2684,17 +2716,22 @@ + + if ((error = bridge_rtnode_insert(sc, brt)) != 0) { + uma_zfree(V_bridge_rtnode_zone, brt); ++ BRIDGE_UNLOCK(sc); + return (error); + } + brt->brt_dst = bif; + bif->bif_addrcnt++; ++ ++ BRIDGE_UNLOCK(sc); + } + + if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC && + brt->brt_dst != bif) { ++ BRIDGE_LOCK(sc); + brt->brt_dst->bif_addrcnt--; + brt->brt_dst = bif; + brt->brt_dst->bif_addrcnt++; ++ BRIDGE_UNLOCK(sc); + } + + if ((flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) +@@ -2715,7 +2752,7 @@ + { + struct bridge_rtnode *brt; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + if ((brt = bridge_rtnode_lookup(sc, addr, vlan)) == NULL) + return (NULL); +@@ -2735,6 +2772,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + /* Make sure we actually need to do this. */ +@@ -2764,7 +2802,9 @@ + bridge_timer(void *arg) + { + struct bridge_softc *sc = arg; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER_ET(et); + BRIDGE_LOCK_ASSERT(sc); + + /* Destruction of rtnodes requires a proper vnet context */ +@@ -2775,6 +2815,7 @@ + callout_reset(&sc->sc_brcallout, + bridge_rtable_prune_period * hz, bridge_timer, sc); + CURVNET_RESTORE(); ++ NET_EPOCH_EXIT_ET(et); + } + + /* +@@ -2787,6 +2828,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { +@@ -2807,6 +2849,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { +@@ -2826,6 +2869,7 @@ + struct bridge_rtnode *brt; + int found = 0; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + /* +@@ -2850,6 +2894,7 @@ + { + struct bridge_rtnode *brt, *nbrt; + ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { +@@ -2954,7 +2999,7 @@ + uint32_t hash; + int dir; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); + + hash = bridge_rthash(sc, addr); + LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) { +@@ -3017,6 +3062,18 @@ + return (0); + } + ++static void ++bridge_rtnode_destroy_cb(struct epoch_context *ctx) ++{ ++ struct bridge_rtnode *brt; ++ ++ brt = __containerof(ctx, struct bridge_rtnode, brt_epoch_ctx); ++ ++ CURVNET_SET(brt->brt_vnet); ++ uma_zfree(V_bridge_rtnode_zone, brt); ++ CURVNET_RESTORE(); ++} ++ + /* + * bridge_rtnode_destroy: + * +@@ -3025,6 +3082,7 @@ + static void + bridge_rtnode_destroy(struct bridge_softc *sc, struct bridge_rtnode *brt) + { ++ NET_EPOCH_ASSERT(); + BRIDGE_LOCK_ASSERT(sc); + + LIST_REMOVE(brt, brt_hash); +@@ -3032,7 +3090,8 @@ + LIST_REMOVE(brt, brt_list); + sc->sc_brtcnt--; + brt->brt_dst->bif_addrcnt--; +- uma_zfree(V_bridge_rtnode_zone, brt); ++ ++ NET_EPOCH_CALL(bridge_rtnode_destroy_cb, &brt->brt_epoch_ctx); + } + + /* +@@ -3045,7 +3104,9 @@ + { + struct bridge_softc *sc = ifp->if_bridge; + struct bridge_rtnode *brt; ++ struct epoch_tracker et; + ++ NET_EPOCH_ENTER_ET(et); + CURVNET_SET(ifp->if_vnet); + BRIDGE_LOCK(sc); + +@@ -3066,6 +3127,7 @@ + } + BRIDGE_UNLOCK(sc); + CURVNET_RESTORE(); ++ NET_EPOCH_EXIT_ET(et); + } + + /* +@@ -3577,17 +3639,20 @@ + { + struct bridge_softc *sc = ifp->if_bridge; + struct bridge_iflist *bif; ++ struct epoch_tracker et; + +- BRIDGE_LOCK(sc); ++ NET_EPOCH_ENTER_ET(et); ++ + bif = bridge_lookup_member_if(sc, ifp); + if (bif == NULL) { +- BRIDGE_UNLOCK(sc); ++ NET_EPOCH_EXIT_ET(et); + return; + } + bridge_linkcheck(sc); +- BRIDGE_UNLOCK(sc); + + bstp_linkstate(&bif->bif_stp); ++ ++ NET_EPOCH_EXIT_ET(et); + } + + static void +@@ -3596,7 +3661,8 @@ + struct bridge_iflist *bif; + int new_link, hasls; + +- BRIDGE_LOCK_ASSERT(sc); ++ NET_EPOCH_ASSERT(); ++ + new_link = LINK_STATE_DOWN; + hasls = 0; + /* Our link is considered up if at least one of our ports is active */ +Index: sys/net/if_bridgevar.h +=================================================================== +--- sys/net/if_bridgevar.h (revision 360985) ++++ sys/net/if_bridgevar.h (working copy) +@@ -273,41 +273,14 @@ + + #define BRIDGE_LOCK_INIT(_sc) do { \ + mtx_init(&(_sc)->sc_mtx, "if_bridge", NULL, MTX_DEF); \ +- cv_init(&(_sc)->sc_cv, "if_bridge_cv"); \ + } while (0) + #define BRIDGE_LOCK_DESTROY(_sc) do { \ + mtx_destroy(&(_sc)->sc_mtx); \ +- cv_destroy(&(_sc)->sc_cv); \ + } while (0) + #define BRIDGE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) + #define BRIDGE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) + #define BRIDGE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_OWNED) + #define BRIDGE_UNLOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_NOTOWNED) +-#define BRIDGE_LOCK2REF(_sc, _err) do { \ +- mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ +- if ((_sc)->sc_iflist_xcnt > 0) \ +- (_err) = EBUSY; \ +- else \ +- (_sc)->sc_iflist_ref++; \ +- mtx_unlock(&(_sc)->sc_mtx); \ +-} while (0) +-#define BRIDGE_UNREF(_sc) do { \ +- mtx_lock(&(_sc)->sc_mtx); \ +- (_sc)->sc_iflist_ref--; \ +- if (((_sc)->sc_iflist_xcnt > 0) && ((_sc)->sc_iflist_ref == 0)) \ +- cv_broadcast(&(_sc)->sc_cv); \ +- mtx_unlock(&(_sc)->sc_mtx); \ +-} while (0) +-#define BRIDGE_XLOCK(_sc) do { \ +- mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ +- (_sc)->sc_iflist_xcnt++; \ +- while ((_sc)->sc_iflist_ref > 0) \ +- cv_wait(&(_sc)->sc_cv, &(_sc)->sc_mtx); \ +-} while (0) +-#define BRIDGE_XDROP(_sc) do { \ +- mtx_assert(&(_sc)->sc_mtx, MA_OWNED); \ +- (_sc)->sc_iflist_xcnt--; \ +-} while (0) + + #define BRIDGE_INPUT(_ifp, _m) do { \ + KASSERT((_ifp)->if_bridge_input != NULL, \ diff --git a/scripts/cam_tag.sh b/scripts/cam_tag.sh new file mode 100755 index 0000000..c0d7173 --- /dev/null +++ b/scripts/cam_tag.sh @@ -0,0 +1,7 @@ +#!/usr/local/bin/bash +#shrinking the command Native Command Queue down to 1 effectively disabling queuing +for Disk in `camcontrol devlist | grep "ST8000DM" | cut -d"," -f2 | cut -d")" -f1`; +do + camcontrol tags $Disk -N 1 ; + camcontrol tags $Disk -v +done