Add standard SSL options to mysql input (#2933)
This commit is contained in:
parent
193e8fa5ad
commit
cb5a12de3d
|
@ -1528,6 +1528,11 @@
|
||||||
# ## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
|
# ## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
|
||||||
# interval_slow = "30m"
|
# interval_slow = "30m"
|
||||||
|
|
||||||
|
# ## Optional SSL Config (will be used if tls=custom parameter specified in server uri)
|
||||||
|
# ssl_ca = "/etc/telegraf/ca.pem"
|
||||||
|
# ssl_cert = "/etc/telegraf/cert.pem"
|
||||||
|
# ssl_key = "/etc/telegraf/key.pem"
|
||||||
|
|
||||||
|
|
||||||
# # Read metrics about network interface usage
|
# # Read metrics about network interface usage
|
||||||
# [[inputs.net]]
|
# [[inputs.net]]
|
||||||
|
|
|
@ -81,6 +81,11 @@ This plugin gathers the statistic data from MySQL server
|
||||||
#
|
#
|
||||||
## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
|
## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
|
||||||
interval_slow = "30m"
|
interval_slow = "30m"
|
||||||
|
|
||||||
|
## Optional SSL Config (will be used if tls=custom parameter specified in server uri)
|
||||||
|
ssl_ca = "/etc/telegraf/ca.pem"
|
||||||
|
ssl_cert = "/etc/telegraf/cert.pem"
|
||||||
|
ssl_key = "/etc/telegraf/key.pem"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Measurements & Fields
|
## Measurements & Fields
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
|
"github.com/influxdata/telegraf/internal"
|
||||||
"github.com/influxdata/telegraf/plugins/inputs"
|
"github.com/influxdata/telegraf/plugins/inputs"
|
||||||
|
|
||||||
"github.com/go-sql-driver/mysql"
|
"github.com/go-sql-driver/mysql"
|
||||||
|
@ -36,11 +37,14 @@ type Mysql struct {
|
||||||
GatherFileEventsStats bool `toml:"gather_file_events_stats"`
|
GatherFileEventsStats bool `toml:"gather_file_events_stats"`
|
||||||
GatherPerfEventsStatements bool `toml:"gather_perf_events_statements"`
|
GatherPerfEventsStatements bool `toml:"gather_perf_events_statements"`
|
||||||
IntervalSlow string `toml:"interval_slow"`
|
IntervalSlow string `toml:"interval_slow"`
|
||||||
|
SSLCA string `toml:"ssl_ca"`
|
||||||
|
SSLCert string `toml:"ssl_cert"`
|
||||||
|
SSLKey string `toml:"ssl_key"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var sampleConfig = `
|
var sampleConfig = `
|
||||||
## specify servers via a url matching:
|
## specify servers via a url matching:
|
||||||
## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify]]
|
## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify|custom]]
|
||||||
## see https://github.com/go-sql-driver/mysql#dsn-data-source-name
|
## see https://github.com/go-sql-driver/mysql#dsn-data-source-name
|
||||||
## e.g.
|
## e.g.
|
||||||
## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"]
|
## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"]
|
||||||
|
@ -97,6 +101,11 @@ var sampleConfig = `
|
||||||
#
|
#
|
||||||
## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
|
## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
|
||||||
interval_slow = "30m"
|
interval_slow = "30m"
|
||||||
|
|
||||||
|
## Optional SSL Config (will be used if tls=custom parameter specified in server uri)
|
||||||
|
ssl_ca = "/etc/telegraf/ca.pem"
|
||||||
|
ssl_cert = "/etc/telegraf/cert.pem"
|
||||||
|
ssl_key = "/etc/telegraf/key.pem"
|
||||||
`
|
`
|
||||||
|
|
||||||
var defaultTimeout = time.Second * time.Duration(5)
|
var defaultTimeout = time.Second * time.Duration(5)
|
||||||
|
@ -135,6 +144,16 @@ func (m *Mysql) Gather(acc telegraf.Accumulator) error {
|
||||||
if !initDone {
|
if !initDone {
|
||||||
m.InitMysql()
|
m.InitMysql()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tlsConfig, err := internal.GetTLSConfig(m.SSLCert, m.SSLKey, m.SSLCA, false)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("E! MySQL Error registering TLS config: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if tlsConfig != nil {
|
||||||
|
mysql.RegisterTLSConfig("custom", tlsConfig)
|
||||||
|
}
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
|
||||||
// Loop through each server and collect metrics
|
// Loop through each server and collect metrics
|
||||||
|
|
Loading…
Reference in New Issue