Configuration

Location

The configuration file for goconserver is located at /etc/goconserver/server.conf. When the configuration is changed, reload using: systemctl restart goconserver.service. An example for the configuration could be found from Example Conf.

Tag For xCAT

xCAT generates a configuration file that includes a identifier on the first line. For example:

#generated by xcat Version 2.13.10 (git commit 7fcd37ffb7cec37c021ab47d4baec151af547ac0, built Thu Jan 25 07:15:36 EST 2018)

makegocons checks for this token and will not make changes to the configuration file if it exists. This gives the user the ability to customize the configuration based on their specific site configuration.

Multiple Output Plugins

goconserver support console redirection to multiple targets with file, tcp and udp logger plugins. The entry could be found like below:

console:
  # the console session port for client(congo) to connect.
  port: 12430

  logger:
    # for file logger
    file:
      # multiple file loggers could be specified
      # valid fields: name, logdir
      - name: default
        logdir: /var/log/goconserver/nodes/
      - name: xCAT
        logdir: /var/log/consoles

    tcp:
      - name: logstash
        host: briggs01
        port: 9653
        ssl_key_file: /etc/xcat/cert/server-cred.pem
        ssl_cert_file: /etc/xcat/cert/server-cred.pem
        ssl_ca_cert_file: /etc/xcat/cert/ca.pem

      - name: rsyslog
        host: sn02
        port: 9653

    udp:
      - name: filebeat
        host: 192.168.1.5
        port: 512

With the configuration above, the console log files for each node would be written in both /var/log/goconserver/nodes/<node>.log and /var/log/consoles/<node>.log. In addition, console log content will be redirected into remote services specified in the tcp and udp sections.

Verification

To check if goconserver works correctly, see the log file /var/log/goconserver/server.log.

  1. Check if TCP logger has been activated.

    When starting goconserver, if the log message is like below, it means the TCP configuration has been activated.

    {"file":"github.com/xcat2/goconserver/console/logger/tcp.go (122)","level":"info","msg":"Starting TCP publisher: logstash","time":"2018-03-02T21:15:35-05:00"}
    {"file":"github.com/xcat2/goconserver/console/logger/tcp.go (122)","level":"info","msg":"Starting TCP publisher: sn02","time":"2018-03-02T21:15:35-05:00"}
    
  2. Debug when encounter error about TCP logger

    If the remote service is not started or the network is unreachable, the log message would be like below.

    {"file":"github.com/xcat2/goconserver/console/logger/tcp.go (127)","level":"error","msg":"TCP publisher logstash: dial tcp 10.6.27.1:9653: getsockopt: connection refused","time":"2018-03-07T21:12:58-05:00"}
    

    Check the service status and the network configuration including the selinux and iptable rules. When the remote service works correctly, TCP or UDP logger of goconserver would recover automatically.

Reconnect Interval

If console node is defined with ondemand=false, when the console connection could not be established, goconserver would reconnect automatically. The interval time could be specified at

console:
  # retry interval in second if console could not be connected.
  reconnect_interval: 10

Performance Tuning

Adjust the worker numbers to leverage multi-core processor performance based on the site configuration.

global:
  # the max cpu cores for workload
  worker: 4

Debug

The log level for goconserver is defined in /etc/goconserver/server.conf

global:
  # debug, info, warn, error, fatal, panic
  log_level: info