monitoring bits
This commit is contained in:
parent
d21ff661ac
commit
008ae3a2e7
|
@ -0,0 +1,239 @@
|
||||||
|
##############################################################################
|
||||||
|
# Global #
|
||||||
|
#----------------------------------------------------------------------------#
|
||||||
|
# Global settings for the daemon. #
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
#Hostname "localhost"
|
||||||
|
FQDNLookup false
|
||||||
|
#BaseDir "/var/lib/collectd"
|
||||||
|
#PluginDir "/usr/lib/collectd"
|
||||||
|
TypesDB "/usr/share/collectd/types.db" "/etc/collectd/openwrt.db"
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------#
|
||||||
|
# Interval at which to query values. This may be overwritten on a per-plugin #
|
||||||
|
# base by using the 'Interval' option of the LoadPlugin block: #
|
||||||
|
# <LoadPlugin foo> #
|
||||||
|
# Interval 60 #
|
||||||
|
# </LoadPlugin> #
|
||||||
|
#----------------------------------------------------------------------------#
|
||||||
|
Interval 30
|
||||||
|
|
||||||
|
#Timeout 2
|
||||||
|
#ReadThreads 5
|
||||||
|
# avoid race conditions if multiple datapoints are packed in a single packet
|
||||||
|
WriteThreads 1
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
LoadPlugin syslog
|
||||||
|
<Plugin syslog>
|
||||||
|
LogLevel info
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
# now start collecting
|
||||||
|
LoadPlugin cpu
|
||||||
|
|
||||||
|
# free space
|
||||||
|
LoadPlugin df
|
||||||
|
<Plugin df>
|
||||||
|
# Ignore listed filesystems
|
||||||
|
IgnoreSelected true
|
||||||
|
# and select all virtual crap
|
||||||
|
FSType bdev
|
||||||
|
FSType binfmt_misc
|
||||||
|
FSType cgroup
|
||||||
|
FSType cpuset
|
||||||
|
FSType debugfs
|
||||||
|
FSType devpts
|
||||||
|
FSType devtmpfs
|
||||||
|
FSType hugetlbfs
|
||||||
|
FSType mqueue
|
||||||
|
FSType pipefs
|
||||||
|
FSType proc
|
||||||
|
FSType pstore
|
||||||
|
FSType ramfs
|
||||||
|
FSType rootfs
|
||||||
|
FSType rpc_pipefs
|
||||||
|
FSType securityfs
|
||||||
|
FSType sockfs
|
||||||
|
FSType sysfs
|
||||||
|
FSType tmpfs
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
# IOPS
|
||||||
|
LoadPlugin disk
|
||||||
|
|
||||||
|
# LOADAVG
|
||||||
|
LoadPlugin load
|
||||||
|
|
||||||
|
# Ram utilisation
|
||||||
|
LoadPlugin memory
|
||||||
|
|
||||||
|
# SWAP
|
||||||
|
LoadPlugin swap
|
||||||
|
|
||||||
|
# Logged in
|
||||||
|
LoadPlugin users
|
||||||
|
|
||||||
|
# traffic
|
||||||
|
LoadPlugin interface
|
||||||
|
|
||||||
|
# temp, voltage, current, fans via ipmi
|
||||||
|
# all sensors monitored by default
|
||||||
|
LoadPlugin ipmi
|
||||||
|
<Plugin ipmi>
|
||||||
|
# disable some sensors collection
|
||||||
|
IgnoreSelected true
|
||||||
|
Sensor "VRM 2 processor_module (9.2)"
|
||||||
|
Sensor "VRM 1 processor_module (9.1)"
|
||||||
|
Sensor "Power Supply 1 power_supply (10.1)"
|
||||||
|
Sensor "Power Supply 2 power_supply (10.2)"
|
||||||
|
Sensor "Power Supplies power_supply (10.3)"
|
||||||
|
Sensor "UID Light system_chassis (23.1)"
|
||||||
|
Sensor "Int. Health LED system_chassis (23.2)"
|
||||||
|
Sensor "Ext. Health LED system_chassis (23.3)"
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
# pick up the lm_sensors stuff
|
||||||
|
LoadPlugin sensors
|
||||||
|
|
||||||
|
# IRQ
|
||||||
|
LoadPlugin irq
|
||||||
|
|
||||||
|
# nginx stats
|
||||||
|
LoadPlugin nginx
|
||||||
|
<Plugin nginx>
|
||||||
|
URL "http://localhost/of2016status"
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
# now lets listen/send some data here and there
|
||||||
|
# def port 25826
|
||||||
|
LoadPlugin network
|
||||||
|
<Plugin network>
|
||||||
|
# multicast
|
||||||
|
Listen "239.192.74.66"
|
||||||
|
Listen "ff18::efc0:4a42"
|
||||||
|
# All local interfaces
|
||||||
|
#Listen "0.0.0.0"
|
||||||
|
# listen on test vlans
|
||||||
|
#Listen "10.200.0.1"
|
||||||
|
#Listen "10.203.0.1"
|
||||||
|
#Listen "10.204.0.1"
|
||||||
|
|
||||||
|
# listen on prod vlans
|
||||||
|
#Listen "10.100.0.1"
|
||||||
|
#Listen "10.103.0.1"
|
||||||
|
#Listen "10.104.0.1"
|
||||||
|
Listen "*"
|
||||||
|
ReportStats true
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
# entropy statistics
|
||||||
|
LoadPlugin entropy
|
||||||
|
|
||||||
|
# and finaly save the data in graphite
|
||||||
|
LoadPlugin write_graphite
|
||||||
|
<Plugin write_graphite>
|
||||||
|
<Node "localhost">
|
||||||
|
Host "localhost"
|
||||||
|
Port "10001"
|
||||||
|
Protocol "tcp"
|
||||||
|
Prefix "received."
|
||||||
|
LogSendErrors true
|
||||||
|
# store raw numbers and let frontend deal with them
|
||||||
|
StoreRates false
|
||||||
|
# be verbose with metrics store
|
||||||
|
AlwaysAppendDS true
|
||||||
|
</Node>
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
LoadPlugin ConnTrack
|
||||||
|
LoadPlugin ContextSwitch
|
||||||
|
|
||||||
|
|
||||||
|
### try to monitor the switches too (SNMP)
|
||||||
|
LoadPlugin snmp
|
||||||
|
<Plugin snmp>
|
||||||
|
# data points
|
||||||
|
<Data "std_traffic">
|
||||||
|
Type "if_octets"
|
||||||
|
Table true
|
||||||
|
Instance "IF-MIB::ifName"
|
||||||
|
Values "IF-MIB::ifHCInOctets" "IF-MIB::ifHCOutOctets"
|
||||||
|
</Data>
|
||||||
|
|
||||||
|
<Data "std_errors">
|
||||||
|
Type "if_errors"
|
||||||
|
Table true
|
||||||
|
Instance "IF-MIB::ifName"
|
||||||
|
Values "IF-MIB::ifInErrors" "IF-MIB::ifOutErrors"
|
||||||
|
</Data>
|
||||||
|
|
||||||
|
# now gather my minnion
|
||||||
|
<Host "coresw">
|
||||||
|
Address "10.20.0.11"
|
||||||
|
Version 2
|
||||||
|
Community "password"
|
||||||
|
Collect "std_traffic" "std_errors"
|
||||||
|
Interval 60
|
||||||
|
</Host>
|
||||||
|
|
||||||
|
<Host "mrvocsw">
|
||||||
|
Address "10.20.0.21"
|
||||||
|
Version 2
|
||||||
|
Community "password"
|
||||||
|
Collect "std_traffic" "std_errors"
|
||||||
|
Interval 60
|
||||||
|
</Host>
|
||||||
|
|
||||||
|
<Host "srvocsw">
|
||||||
|
Address "10.20.0.22"
|
||||||
|
Version 2
|
||||||
|
Community "password"
|
||||||
|
Collect "std_traffic" "std_errors"
|
||||||
|
Interval 60
|
||||||
|
</Host>
|
||||||
|
|
||||||
|
<Host "receptionsw">
|
||||||
|
Address "10.20.0.26"
|
||||||
|
Version 2
|
||||||
|
Community "password"
|
||||||
|
Collect "std_traffic" "std_errors"
|
||||||
|
Interval 60
|
||||||
|
</Host>
|
||||||
|
|
||||||
|
<Host "nocsw">
|
||||||
|
Address "10.20.0.23"
|
||||||
|
Version 2
|
||||||
|
Community "password"
|
||||||
|
Collect "std_traffic" "std_errors"
|
||||||
|
Interval 60
|
||||||
|
</Host>
|
||||||
|
|
||||||
|
<Host "uplinksw">
|
||||||
|
Address "172.31.42.64"
|
||||||
|
Version 2
|
||||||
|
Community "password"
|
||||||
|
Collect "std_traffic" "std_errors"
|
||||||
|
Interval 60
|
||||||
|
</Host>
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
# monitor unbound by exec
|
||||||
|
####LoadPlugin exec
|
||||||
|
####<Plugin exec>
|
||||||
|
#### Exec "unbound" "/usr/local/bin/unbound-collectd.sh"
|
||||||
|
####</Plugin>
|
||||||
|
|
||||||
|
# See collectd.conf(5)
|
||||||
|
LoadPlugin unixsock
|
||||||
|
|
||||||
|
<Plugin unixsock>
|
||||||
|
SocketFile "/tmp/collectd.sock"
|
||||||
|
SocketGroup "nagios"
|
||||||
|
SocketPerms "0770"
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
|
LoadPlugin uptime
|
||||||
|
LoadPlugin processes
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
stations value:GAUGE:0:256
|
||||||
|
signal_noise_mw value:GAUGE:0:U
|
||||||
|
signal_power_mw value:GAUGE:0:U
|
||||||
|
|
|
@ -0,0 +1,302 @@
|
||||||
|
# possible values : production, development
|
||||||
|
app_mode = development
|
||||||
|
|
||||||
|
#################################### Paths ####################################
|
||||||
|
[paths]
|
||||||
|
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
|
||||||
|
;data = /var/lib/grafana
|
||||||
|
#
|
||||||
|
# Directory where grafana can store logs
|
||||||
|
;logs = /var/log/grafana
|
||||||
|
#
|
||||||
|
# Directory where grafana will automatically scan and look for plugins
|
||||||
|
;plugins = /var/lib/grafana/plugins
|
||||||
|
|
||||||
|
#################################### Server ####################################
|
||||||
|
[server]
|
||||||
|
# Protocol (http or https)
|
||||||
|
;protocol = http
|
||||||
|
|
||||||
|
# The ip address to bind to, empty will bind to all interfaces
|
||||||
|
http_addr = 127.0.0.1
|
||||||
|
|
||||||
|
# The http port to use
|
||||||
|
;http_port = 80
|
||||||
|
|
||||||
|
# The public facing domain name used to access grafana from a browser
|
||||||
|
domain = eric.openfest.org
|
||||||
|
|
||||||
|
# Redirect to correct domain if host header does not match domain
|
||||||
|
# Prevents DNS rebinding attacks
|
||||||
|
enforce_domain = true
|
||||||
|
|
||||||
|
# The full public facing url
|
||||||
|
#root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
|
||||||
|
root_url = %(protocol)s://%(domain)s/grafana/
|
||||||
|
|
||||||
|
# Log web requests
|
||||||
|
;router_logging = false
|
||||||
|
|
||||||
|
# the path relative working path
|
||||||
|
;static_root_path = public
|
||||||
|
|
||||||
|
# enable gzip
|
||||||
|
;enable_gzip = false
|
||||||
|
|
||||||
|
# https certs & key file
|
||||||
|
;cert_file =
|
||||||
|
;cert_key =
|
||||||
|
|
||||||
|
#################################### Database ####################################
|
||||||
|
[database]
|
||||||
|
# Either "mysql", "postgres" or "sqlite3", it's your choice
|
||||||
|
;type = sqlite3
|
||||||
|
;host = 127.0.0.1:3306
|
||||||
|
;name = grafana
|
||||||
|
;user = root
|
||||||
|
;password =
|
||||||
|
|
||||||
|
# For "postgres" only, either "disable", "require" or "verify-full"
|
||||||
|
;ssl_mode = disable
|
||||||
|
|
||||||
|
# For "sqlite3" only, path relative to data_path setting
|
||||||
|
;path = grafana.db
|
||||||
|
|
||||||
|
#################################### Session ####################################
|
||||||
|
[session]
|
||||||
|
# Either "memory", "file", "redis", "mysql", "postgres", default is "file"
|
||||||
|
;provider = file
|
||||||
|
|
||||||
|
# Provider config options
|
||||||
|
# memory: not have any config yet
|
||||||
|
# file: session dir path, is relative to grafana data_path
|
||||||
|
# redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana`
|
||||||
|
# mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name`
|
||||||
|
# postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable
|
||||||
|
;provider_config = sessions
|
||||||
|
|
||||||
|
# Session cookie name
|
||||||
|
;cookie_name = grafana_sess
|
||||||
|
|
||||||
|
# If you use session in https only, default is false
|
||||||
|
;cookie_secure = false
|
||||||
|
|
||||||
|
# Session life time, default is 86400
|
||||||
|
;session_life_time = 86400
|
||||||
|
|
||||||
|
#################################### Analytics ####################################
|
||||||
|
[analytics]
|
||||||
|
# Server reporting, sends usage counters to stats.grafana.org every 24 hours.
|
||||||
|
# No ip addresses are being tracked, only simple counters to track
|
||||||
|
# running instances, dashboard and error counts. It is very helpful to us.
|
||||||
|
# Change this option to false to disable reporting.
|
||||||
|
reporting_enabled = false
|
||||||
|
|
||||||
|
# Set to false to disable all checks to https://grafana.net
|
||||||
|
# for new vesions (grafana itself and plugins), check is used
|
||||||
|
# in some UI views to notify that grafana or plugin update exists
|
||||||
|
# This option does not cause any auto updates, nor send any information
|
||||||
|
# only a GET request to http://grafana.net to get latest versions
|
||||||
|
check_for_updates = false
|
||||||
|
|
||||||
|
# Google Analytics universal tracking code, only enabled if you specify an id here
|
||||||
|
;google_analytics_ua_id =
|
||||||
|
|
||||||
|
#################################### Security ####################################
|
||||||
|
[security]
|
||||||
|
# default admin user, created on startup
|
||||||
|
;admin_user = admin
|
||||||
|
|
||||||
|
# default admin password, can be changed before first start of grafana, or in profile settings
|
||||||
|
;admin_password = admin
|
||||||
|
|
||||||
|
# used for signing
|
||||||
|
secret_key = aepuTheic8ierahY8Oochae7xop7eeni
|
||||||
|
|
||||||
|
# Auto-login remember days
|
||||||
|
;login_remember_days = 7
|
||||||
|
;cookie_username = grafana_user
|
||||||
|
;cookie_remember_name = grafana_remember
|
||||||
|
|
||||||
|
# disable gravatar profile images
|
||||||
|
disable_gravatar = true
|
||||||
|
|
||||||
|
# data source proxy whitelist (ip_or_domain:port separated by spaces)
|
||||||
|
;data_source_proxy_whitelist =
|
||||||
|
|
||||||
|
[snapshots]
|
||||||
|
# snapshot sharing options
|
||||||
|
external_enabled = false
|
||||||
|
;external_snapshot_url = https://snapshots-origin.raintank.io
|
||||||
|
;external_snapshot_name = Publish to snapshot.raintank.io
|
||||||
|
|
||||||
|
#################################### Users ####################################
|
||||||
|
[users]
|
||||||
|
# disable user signup / registration
|
||||||
|
allow_sign_up = false
|
||||||
|
|
||||||
|
# Allow non admin users to create organizations
|
||||||
|
allow_org_create = false
|
||||||
|
|
||||||
|
# Set to true to automatically assign new users to the default organization (id 1)
|
||||||
|
;auto_assign_org = true
|
||||||
|
|
||||||
|
# Default role new users will be automatically assigned (if disabled above is set to true)
|
||||||
|
;auto_assign_org_role = Viewer
|
||||||
|
|
||||||
|
# Background text for the user field on the login page
|
||||||
|
;login_hint = email or username
|
||||||
|
|
||||||
|
# Default UI theme ("dark" or "light")
|
||||||
|
;default_theme = light
|
||||||
|
|
||||||
|
#################################### Anonymous Auth ##########################
|
||||||
|
[auth.anonymous]
|
||||||
|
# enable anonymous access
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
# specify organization name that should be used for unauthenticated users
|
||||||
|
org_name = OpenFest 2018
|
||||||
|
|
||||||
|
# specify role for unauthenticated users
|
||||||
|
org_role = Viewer
|
||||||
|
|
||||||
|
#################################### Github Auth ##########################
|
||||||
|
[auth.github]
|
||||||
|
enabled = false
|
||||||
|
;allow_sign_up = false
|
||||||
|
;client_id = some_id
|
||||||
|
;client_secret = some_secret
|
||||||
|
;scopes = user:email,read:org
|
||||||
|
;auth_url = https://github.com/login/oauth/authorize
|
||||||
|
;token_url = https://github.com/login/oauth/access_token
|
||||||
|
;api_url = https://api.github.com/user
|
||||||
|
;team_ids =
|
||||||
|
;allowed_organizations =
|
||||||
|
|
||||||
|
#################################### Google Auth ##########################
|
||||||
|
[auth.google]
|
||||||
|
enabled = false
|
||||||
|
;allow_sign_up = false
|
||||||
|
;client_id = some_client_id
|
||||||
|
;client_secret = some_client_secret
|
||||||
|
;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
|
||||||
|
;auth_url = https://accounts.google.com/o/oauth2/auth
|
||||||
|
;token_url = https://accounts.google.com/o/oauth2/token
|
||||||
|
;api_url = https://www.googleapis.com/oauth2/v1/userinfo
|
||||||
|
;allowed_domains =
|
||||||
|
|
||||||
|
#################################### Auth Proxy ##########################
|
||||||
|
[auth.proxy]
|
||||||
|
enabled = false
|
||||||
|
;header_name = X-WEBAUTH-USER
|
||||||
|
;header_property = username
|
||||||
|
;auto_sign_up = true
|
||||||
|
|
||||||
|
#################################### Basic Auth ##########################
|
||||||
|
[auth.basic]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
#################################### Auth LDAP ##########################
|
||||||
|
[auth.ldap]
|
||||||
|
enabled = false
|
||||||
|
;config_file = /etc/grafana/ldap.toml
|
||||||
|
|
||||||
|
#################################### SMTP / Emailing ##########################
|
||||||
|
[smtp]
|
||||||
|
enabled = false
|
||||||
|
;host = localhost:25
|
||||||
|
;user =
|
||||||
|
;password =
|
||||||
|
;cert_file =
|
||||||
|
;key_file =
|
||||||
|
;skip_verify = false
|
||||||
|
;from_address = admin@grafana.localhost
|
||||||
|
|
||||||
|
[emails]
|
||||||
|
welcome_email_on_sign_up = false
|
||||||
|
|
||||||
|
#################################### Logging ##########################
|
||||||
|
[log]
|
||||||
|
# Either "console", "file", "syslog". Default is console and file
|
||||||
|
# Use space to separate multiple modes, e.g. "console file"
|
||||||
|
;mode = console, file
|
||||||
|
|
||||||
|
# Either "trace", "debug", "info", "warn", "error", "critical", default is "info"
|
||||||
|
;level = info
|
||||||
|
|
||||||
|
# For "console" mode only
|
||||||
|
[log.console]
|
||||||
|
;level =
|
||||||
|
|
||||||
|
# log line format, valid options are text, console and json
|
||||||
|
;format = console
|
||||||
|
|
||||||
|
# For "file" mode only
|
||||||
|
[log.file]
|
||||||
|
;level =
|
||||||
|
|
||||||
|
# log line format, valid options are text, console and json
|
||||||
|
;format = text
|
||||||
|
|
||||||
|
# This enables automated log rotate(switch of following options), default is true
|
||||||
|
;log_rotate = true
|
||||||
|
|
||||||
|
# Max line number of single file, default is 1000000
|
||||||
|
;max_lines = 1000000
|
||||||
|
|
||||||
|
# Max size shift of single file, default is 28 means 1 << 28, 256MB
|
||||||
|
;max_size_shift = 28
|
||||||
|
|
||||||
|
# Segment log daily, default is true
|
||||||
|
;daily_rotate = true
|
||||||
|
|
||||||
|
# Expired days of log file(delete after max days), default is 7
|
||||||
|
;max_days = 7
|
||||||
|
|
||||||
|
[log.syslog]
|
||||||
|
;level =
|
||||||
|
|
||||||
|
# log line format, valid options are text, console and json
|
||||||
|
;format = text
|
||||||
|
|
||||||
|
# Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used.
|
||||||
|
;network =
|
||||||
|
;address =
|
||||||
|
|
||||||
|
# Syslog facility. user, daemon and local0 through local7 are valid.
|
||||||
|
;facility =
|
||||||
|
|
||||||
|
# Syslog tag. By default, the process' argv[0] is used.
|
||||||
|
;tag =
|
||||||
|
|
||||||
|
|
||||||
|
#################################### AMQP Event Publisher ##########################
|
||||||
|
[event_publisher]
|
||||||
|
;enabled = false
|
||||||
|
;rabbitmq_url = amqp://localhost/
|
||||||
|
;exchange = grafana_events
|
||||||
|
|
||||||
|
;#################################### Dashboard JSON files ##########################
|
||||||
|
[dashboards.json]
|
||||||
|
;enabled = false
|
||||||
|
;path = /var/lib/grafana/dashboards
|
||||||
|
|
||||||
|
#################################### Internal Grafana Metrics ##########################
|
||||||
|
# Metrics available at HTTP API Url /api/metrics
|
||||||
|
[metrics]
|
||||||
|
# Disable / Enable internal metrics
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
# Publish interval
|
||||||
|
interval_seconds = 10
|
||||||
|
|
||||||
|
# Send internal metrics to Graphite
|
||||||
|
[metrics.graphite]
|
||||||
|
address = localhost:2003
|
||||||
|
prefix = grafana.%(instance_name)s.
|
||||||
|
|
||||||
|
#################################### Internal Grafana Metrics ##########################
|
||||||
|
# Url used to to import dashboards directly from Grafana.net
|
||||||
|
[grafana_net]
|
||||||
|
url = https://grafana.net
|
|
@ -0,0 +1,113 @@
|
||||||
|
[aggregator:top]
|
||||||
|
# filesystem organization
|
||||||
|
GRAPHITE_ROOT = /opt/graphite
|
||||||
|
GRAPHITE_CONF_DIR = /opt/graphite/conf
|
||||||
|
CONF_DIR = /opt/graphite/conf
|
||||||
|
GRAPHITE_STORAGE_DIR = /opt/graphite/storage
|
||||||
|
PID_DIR = /run/graphite
|
||||||
|
LOG_DIR = /var/log/graphite
|
||||||
|
LOCAL_DATA_DIR = /opt/graphite/storage
|
||||||
|
USER = graphite
|
||||||
|
|
||||||
|
# listeners
|
||||||
|
# echo ... | telnet
|
||||||
|
LINE_RECEIVER_INTERFACE = 127.0.0.1
|
||||||
|
LINE_RECEIVER_PORT = 10001
|
||||||
|
# programatic
|
||||||
|
PICKLE_RECEIVER_INTERFACE = 127.0.0.1
|
||||||
|
PICKLE_RECEIVER_PORT = 10101
|
||||||
|
|
||||||
|
#UDP Listener
|
||||||
|
ENABLE_UDP_LISTENER = True
|
||||||
|
UDP_RECEIVER_INTERFACE = 127.0.0.1
|
||||||
|
UDP_RECEIVER_PORT = 10001
|
||||||
|
|
||||||
|
# log connections?
|
||||||
|
LOG_LISTENER_CONNECTIONS = True
|
||||||
|
|
||||||
|
# how to relay: rules|consistent-hashing|aggregated-consistent-hashing
|
||||||
|
RELAY_METHOD = consistent-hashing
|
||||||
|
REPLICATION_FACTOR = 1
|
||||||
|
|
||||||
|
AGGREGATION_RULES = aggregation-rules.conf
|
||||||
|
REWRITE_RULES = rewrite-rules.conf
|
||||||
|
FORWARD_ALL = True
|
||||||
|
|
||||||
|
DESTINATIONS = 127.0.0.1:2004:a
|
||||||
|
|
||||||
|
# tuning/queue/capacity
|
||||||
|
# This defines the maximum "message size" between carbon daemons.
|
||||||
|
# You shouldn't need to tune this unless you really know what you're doing.
|
||||||
|
MAX_DATAPOINTS_PER_MESSAGE = 500
|
||||||
|
MAX_QUEUE_SIZE = 20000
|
||||||
|
# This is the percentage that the queue must be empty before it will accept
|
||||||
|
# more messages. For a larger site, if the queue is very large it makes sense
|
||||||
|
# to tune this to allow for incoming stats. So if you have an average
|
||||||
|
# flow of 100k stats/minute, and a MAX_QUEUE_SIZE of 3,000,000, it makes sense
|
||||||
|
# to allow stats to start flowing when you've cleared the queue to 95% since
|
||||||
|
# you should have space to accommodate the next minute's worth of stats
|
||||||
|
# even before the relay incrementally clears more of the queue
|
||||||
|
QUEUE_LOW_WATERMARK_PCT = 0.8
|
||||||
|
|
||||||
|
# Set this to False to drop datapoints when any send queue (sending datapoints
|
||||||
|
# to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
|
||||||
|
# default) then sockets over which metrics are received will temporarily stop accepting
|
||||||
|
# data until the send queues fall below QUEUE_LOW_WATERMARK_PCT * MAX_QUEUE_SIZE.
|
||||||
|
USE_FLOW_CONTROL = True
|
||||||
|
|
||||||
|
# Set this to True to enable whitelisting and blacklisting of metrics in
|
||||||
|
# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
|
||||||
|
# empty, all metrics will pass through
|
||||||
|
# USE_WHITELIST = False
|
||||||
|
|
||||||
|
# By default, carbon itself will log statistics (such as a count,
|
||||||
|
# metricsReceived) with the top level prefix of 'carbon' at an interval of 60
|
||||||
|
# seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
|
||||||
|
CARBON_METRIC_PREFIX = carbon
|
||||||
|
CARBON_METRIC_INTERVAL = 10
|
||||||
|
|
||||||
|
[cache:a]
|
||||||
|
# filesystem organization
|
||||||
|
GRAPHITE_ROOT = /opt/graphite
|
||||||
|
GRAPHITE_CONF_DIR = /opt/graphite/conf
|
||||||
|
CONF_DIR = /opt/graphite/conf
|
||||||
|
GRAPHITE_STORAGE_DIR = /opt/graphite/storage
|
||||||
|
PID_DIR = /run/graphite
|
||||||
|
LOG_DIR = /var/log/graphite
|
||||||
|
LOCAL_DATA_DIR = /opt/graphite/storage
|
||||||
|
USER = graphite
|
||||||
|
|
||||||
|
# cache / mem sizing
|
||||||
|
MAX_CACHE_SIZE = 500000
|
||||||
|
MAX_UPDATES_PER_SECOND = 500
|
||||||
|
MAX_UPDATES_PER_SECOND_ON_SHUTDOWN = 1500
|
||||||
|
MAX_CREATES_PER_MINUTE = 120
|
||||||
|
# WHISPER_SPARSE_CREATE = False
|
||||||
|
# delegate creation work to kernel (if available) falls back on posix calls
|
||||||
|
WHISPER_FALLOCATE_CREATE = True
|
||||||
|
# if running on shared disk and multiple caches write to same file
|
||||||
|
# WHISPER_LOCK_WRITES = False
|
||||||
|
|
||||||
|
# listeners
|
||||||
|
LINE_RECEIVER_INTERFACE = localhost
|
||||||
|
LINE_RECEIVER_PORT = 2003
|
||||||
|
ENABLE_UDP_LISTENER = False
|
||||||
|
UDP_RECEIVER_INTERFACE = localhost
|
||||||
|
UDP_RECEIVER_PORT = 2003
|
||||||
|
PICKLE_RECEIVER_INTERFACE = localhost
|
||||||
|
PICKLE_RECEIVER_PORT = 2004
|
||||||
|
# interface for bulk queries
|
||||||
|
CACHE_QUERY_INTERFACE = localhost
|
||||||
|
CACHE_QUERY_PORT = 2005
|
||||||
|
|
||||||
|
#some logging
|
||||||
|
LOG_LISTENER_CONNECTIONS = False
|
||||||
|
LOG_UPDATES = False
|
||||||
|
LOG_CACHE_HITS = False
|
||||||
|
LOG_CACHE_QUEUE_SORTS = False
|
||||||
|
|
||||||
|
CACHE_WRITE_STRATEGY = sorted
|
||||||
|
WHISPER_AUTOFLUSH = False
|
||||||
|
|
||||||
|
CARBON_METRIC_PREFIX = carbon
|
||||||
|
CARBON_METRIC_INTERVAL = 10
|
|
@ -0,0 +1,25 @@
|
||||||
|
import os, sys
|
||||||
|
sys.path.append('/mnt/graphite/webapp')
|
||||||
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'graphite.settings')
|
||||||
|
|
||||||
|
import django
|
||||||
|
|
||||||
|
if django.VERSION < (1, 4):
|
||||||
|
from django.core.handlers.wsgi import WSGIHandler
|
||||||
|
application = WSGIHandler()
|
||||||
|
else:
|
||||||
|
# From 1.4 wsgi support was improved and since 1.7 old style WSGI script
|
||||||
|
# causes AppRegistryNotReady exception
|
||||||
|
# https://docs.djangoproject.com/en/dev/releases/1.7/#wsgi-scripts
|
||||||
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
application = get_wsgi_application()
|
||||||
|
|
||||||
|
|
||||||
|
# READ THIS
|
||||||
|
# Initializing the search index can be very expensive, please include
|
||||||
|
# the WSGIImportScript directive pointing to this script in your vhost
|
||||||
|
# config to ensure the index is preloaded before any requests are handed
|
||||||
|
# to the process.
|
||||||
|
from graphite.logger import log
|
||||||
|
log.info("graphite.wsgi - pid %d - reloading search index" % os.getpid())
|
||||||
|
import graphite.metrics.search
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Relay destination rules for carbon-relay. Entries are scanned in order,
|
||||||
|
# and the first pattern a metric matches will cause processing to cease after sending
|
||||||
|
# unless `continue` is set to true
|
||||||
|
#
|
||||||
|
# [name]
|
||||||
|
# pattern = <regex>
|
||||||
|
# destinations = <list of destination addresses>
|
||||||
|
# continue = <boolean> # default: False
|
||||||
|
#
|
||||||
|
# name: Arbitrary unique name to identify the rule
|
||||||
|
# pattern: Regex pattern to match against the metric name
|
||||||
|
# destinations: Comma-separated list of destinations.
|
||||||
|
# ex: 127.0.0.1, 10.1.2.3:2004, 10.1.2.4:2004:a, myserver.mydomain.com
|
||||||
|
# continue: Continue processing rules if this rule matches (default: False)
|
||||||
|
|
||||||
|
# You must have exactly one section with 'default = true'
|
||||||
|
# Note that all destinations listed must also exist in carbon.conf
|
||||||
|
# in the DESTINATIONS setting in the [relay] section
|
||||||
|
[default]
|
||||||
|
default = true
|
||||||
|
destinations = 127.0.0.1:2004:a
|
|
@ -0,0 +1,36 @@
|
||||||
|
# This file defines regular expression patterns that can be used to
|
||||||
|
# rewrite metric names in a search & replace fashion. It consists of two
|
||||||
|
# sections, [pre] and [post]. The rules in the pre section are applied to
|
||||||
|
# metric names as soon as they are received. The post rules are applied
|
||||||
|
# after aggregation has taken place.
|
||||||
|
#
|
||||||
|
# The general form of each rule is as follows:
|
||||||
|
#
|
||||||
|
# regex-pattern = replacement-text
|
||||||
|
#
|
||||||
|
# For example:
|
||||||
|
#
|
||||||
|
# [post]
|
||||||
|
# _sum$ =
|
||||||
|
# _avg$ =
|
||||||
|
#
|
||||||
|
# These rules would strip off a suffix of _sum or _avg from any metric names
|
||||||
|
# after aggregation.
|
||||||
|
[pre]
|
||||||
|
\) = _
|
||||||
|
\( = _
|
||||||
|
# temperature-Temp_1_system_internal_expansion_board_16_5_/value.wsp
|
||||||
|
temperature-Temp_([0-9]+)_([a-zA-Z0-9_]+)__(.*)\. = Temp-\1_\2.
|
||||||
|
|
||||||
|
# nest under common port
|
||||||
|
if_errors-(.*).(rx|tx)$ = \1.errors.\2
|
||||||
|
if_octets-(.*).(rx|tx)$ = \1.octets.\2
|
||||||
|
|
||||||
|
# expand cisco naming
|
||||||
|
Vl([0-9]+) = Vlan\1
|
||||||
|
|
||||||
|
# rename tplink ports
|
||||||
|
port_([0-9]+)__Gigabit_(Fiber|Copper) = Gi\1
|
||||||
|
|
||||||
|
# rename tplink vlans
|
||||||
|
Vlan-interface([0-9]+) = Vlan\1
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Aggregation methods for whisper files. Entries are scanned in order,
|
||||||
|
# and first match wins. This file is scanned for changes every 60 seconds
|
||||||
|
#
|
||||||
|
# [name]
|
||||||
|
# pattern = <regex>
|
||||||
|
# xFilesFactor = <float between 0 and 1>
|
||||||
|
# aggregationMethod = <average|sum|last|max|min>
|
||||||
|
#
|
||||||
|
# name: Arbitrary unique name for the rule
|
||||||
|
# pattern: Regex pattern to match against the metric name
|
||||||
|
# xFilesFactor: Ratio of valid data points required for aggregation to the next retention to occur
|
||||||
|
# aggregationMethod: function to apply to data points for aggregation
|
||||||
|
#
|
||||||
|
[min]
|
||||||
|
pattern = \.min$
|
||||||
|
xFilesFactor = 0.1
|
||||||
|
aggregationMethod = min
|
||||||
|
|
||||||
|
[max]
|
||||||
|
pattern = \.max$
|
||||||
|
xFilesFactor = 0.1
|
||||||
|
aggregationMethod = max
|
||||||
|
|
||||||
|
[sum]
|
||||||
|
pattern = \.count$
|
||||||
|
xFilesFactor = 0
|
||||||
|
aggregationMethod = sum
|
||||||
|
|
||||||
|
[default_average]
|
||||||
|
pattern = .*
|
||||||
|
xFilesFactor = 0.5
|
||||||
|
aggregationMethod = average
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Schema definitions for Whisper files. Entries are scanned in order,
|
||||||
|
# and first match wins. This file is scanned for changes every 60 seconds.
|
||||||
|
#
|
||||||
|
# [name]
|
||||||
|
# pattern = regex
|
||||||
|
# retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...
|
||||||
|
|
||||||
|
# Carbon's internal metrics. This entry should match what is specified in
|
||||||
|
# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
|
||||||
|
[carbon]
|
||||||
|
pattern = ^carbon\.
|
||||||
|
retentions = 10:90d
|
||||||
|
|
||||||
|
[switches_snmp]
|
||||||
|
pattern = sw\.snmp\.
|
||||||
|
retentions = 60s:30d
|
||||||
|
|
||||||
|
[default_30s_6months]
|
||||||
|
pattern = .*
|
||||||
|
retentions = 30s:30d
|
|
@ -0,0 +1,20 @@
|
||||||
|
[Unit]
|
||||||
|
Description=carbon-aggregator instance %i (graphite)
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=graphite
|
||||||
|
Group=graphite
|
||||||
|
PrivateTmp=yes
|
||||||
|
# Run ExecStartPre with root-permissions
|
||||||
|
PermissionsStartOnly=true
|
||||||
|
ExecStartPre=-/bin/mkdir -p /run/graphite
|
||||||
|
ExecStartPre=/bin/chown -R graphite:graphite /run/graphite
|
||||||
|
ExecStartPre=/bin/rm -f /run/graphite/carbon-aggregator-%i.pid
|
||||||
|
ExecStart=/opt/graphite/bin/carbon-aggregator.py --instance=%i start
|
||||||
|
Type=forking
|
||||||
|
PIDFile=/run/graphite/carbon-aggregator-%i.pid
|
||||||
|
LimitNOFILE=128000
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,20 @@
|
||||||
|
[Unit]
|
||||||
|
Description=carbon-cache instance %i (graphite)
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=graphite
|
||||||
|
Group=graphite
|
||||||
|
PrivateTmp=yes
|
||||||
|
# Run ExecStartPre with root-permissions
|
||||||
|
PermissionsStartOnly=true
|
||||||
|
ExecStartPre=-/bin/mkdir -p /run/graphite
|
||||||
|
ExecStartPre=/bin/chown -R graphite:graphite /run/graphite
|
||||||
|
ExecStartPre=/bin/rm -f /run/graphite/carbon-cache-%i.pid
|
||||||
|
ExecStart=/opt/graphite/bin/carbon-cache.py --instance=%i start
|
||||||
|
Type=forking
|
||||||
|
PIDFile=/run/graphite/carbon-cache-%i.pid
|
||||||
|
LimitNOFILE=128000
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,19 @@
|
||||||
|
[Unit]
|
||||||
|
Description=carbon-relay instance %i (graphite)
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=graphite
|
||||||
|
Group=graphite
|
||||||
|
PrivateTmp=yes
|
||||||
|
# Run ExecStartPre with root-permissions
|
||||||
|
PermissionsStartOnly=true
|
||||||
|
ExecStartPre=-/bin/mkdir -p /run/graphite
|
||||||
|
ExecStartPre=/bin/chown -R graphite:graphite /run/graphite
|
||||||
|
ExecStartPre=/bin/rm -f /run/graphite/carbon-relay-%i.pid
|
||||||
|
ExecStart=/opt/graphite/bin/carbon-relay.py --instance=%i start
|
||||||
|
Type=forking
|
||||||
|
PIDFile=/run/graphite/carbon-relay-%i.pid
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,10 @@
|
||||||
|
Some files found in this directory are processed by uWSGI init.d script as
|
||||||
|
uWSGI configuration files.
|
||||||
|
|
||||||
|
On system boot for each configuration file new uWSGI daemon instance is started
|
||||||
|
with additional option. Name of this option is based on configuration file
|
||||||
|
extension. Path to configuration files is passed as option value.
|
||||||
|
|
||||||
|
See more detailed information at:
|
||||||
|
* /usr/share/doc/uwsgi/README.Debian.gz
|
||||||
|
* /etc/default/uwsgi
|
|
@ -0,0 +1,10 @@
|
||||||
|
[uwsgi]
|
||||||
|
processes = 2
|
||||||
|
socket = 127.0.0.1:3031
|
||||||
|
gid = www-data
|
||||||
|
uid = www-data
|
||||||
|
chdir = /opt/graphite/conf
|
||||||
|
#wsgi-file = /opt/graphite/conf/graphite.wsgi
|
||||||
|
pythonpath = /opt/graphite/webapp
|
||||||
|
env = DJANGO_SETTINGS_MODULE=graphite.settings
|
||||||
|
module = django.core.wsgi:get_wsgi_application()
|
Loading…
Reference in New Issue