Changed the Windows Config file default location

Updated the default location of the configuration file on Windows from
C:\telegraf\telegraf.conf to C:\Program Files\Telegraf\telegraf.conf.
With this change includes updating the directions, including directing
that the executable be put into that same directory. Additionally, as
noted in the instructions, the location of the config file for the
service may be changed by specifying the location with the `-config`
flag at install time.
This commit is contained in:
Dennis Bellinger 2016-07-26 11:46:17 -04:00
parent a57781a3dc
commit 5b11934a1c
2 changed files with 23 additions and 12 deletions

View File

@ -78,7 +78,7 @@ The flags are:
-debug print metrics as they're generated to stdout -debug print metrics as they're generated to stdout
-quiet run in quiet mode -quiet run in quiet mode
-version print the version to stdout -version print the version to stdout
-service Control the service, ie, 'telegraf -service install' -service Control the service, ie, 'telegraf -service install (windows only)'
In addition to the -config flag, telegraf will also load the config file from In addition to the -config flag, telegraf will also load the config file from
an environment variable or default location. Precedence is: an environment variable or default location. Precedence is:
@ -110,6 +110,7 @@ var logger service.Logger
var stop chan struct{} var stop chan struct{}
var srvc service.Service var srvc service.Service
var svcConfig service.Config
type program struct{} type program struct{}
@ -201,6 +202,9 @@ func reloadLoop(stop chan struct{}, s service.Service) {
} }
if *fService != "" && runtime.GOOS == "windows" { if *fService != "" && runtime.GOOS == "windows" {
if *fConfig != "" {
(*svcConfig).Arguments = []string{"-config", *fConfig}
}
err := service.Control(s, *fService) err := service.Control(s, *fService)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@ -327,15 +331,14 @@ func (p *program) Stop(s service.Service) error {
func main() { func main() {
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
svcConfig := &service.Config{ svcConfig = &service.Config{
Name: "telegraf", Name: "telegraf",
DisplayName: "Telegraf Data Collector Service", DisplayName: "Telegraf Data Collector Service",
Description: "Collects data using a series of plugins and publishes it to" + Description: "Collects data using a series of plugins and publishes it to" +
"another series of plugins.", "another series of plugins.",
Arguments: []string{"-config", "C:\\Program Files\\Telegraf\\telegraf.conf"},
} }
svcConfig.Arguments = []string{"-config", "C:\\telegraf\\telegraf.conf"}
prg := &program{} prg := &program{}
s, err := service.New(prg, svcConfig) s, err := service.New(prg, svcConfig)
if err != nil { if err != nil {

View File

@ -4,15 +4,23 @@ Telegraf natively supports running as a Windows Service. Outlined below is are
the general steps to set it up. the general steps to set it up.
1. Obtain the telegraf windows distribution 1. Obtain the telegraf windows distribution
2. Create the directory C:\telegraf (if you install in a different location you 2. Create the directory `C:\Program Files\Telegraf` (if you install in a different
will need to edit `cmd/telegraf/telegraf.go` and change the config file location simply specify the `-config` parameter with the desired location)
location and recompile to use your location) 3. Place the executable and the config file into `C:\Program Files\Telegraf`
3. Place the executable and the config file into C:\telegraf 4. To install the service into the Windows Service Manager, run (as an
4. Run `C:\telegraf\telegraf.exe --service install` as an administrator administrator):
```ps
C:\Program Files\Telegraf\telegraf.exe --service install
```
5. Edit the configuration file to meet your needs 5. Edit the configuration file to meet your needs
6. Run `C:\telegraf\telegraf.exe --config C:\telegraf\telegraf.conf --test` to 6. To check that it works, run:
check that it works ```ps
7. Run `net start telegraf` to start collecting data C:\Program Files\Telegraf\telegraf.exe --config C:\Program Files\Telegraf\telegraf.conf --test
```
7. To start collecting data, run:
```ps
net start telegraf
```
## Other supported operations ## Other supported operations