Интеграция DosGate Collectd c Logstash

DosGate направляет всю свою статистику через Collectd, за счет этого он может нативно отправлять информацию в Logstash для дальнейшего хранения и обработки.

Настройка сервера DosGate

  • Требуется заменить содержимое файла /etc/collectd/collectd.conf.d/dosgate.conf.

  • Обратите внимание на graphite_host и logstash_host – эти записи нужно модифицировать в соответствии с вашей конфигурацией на IP-адреса хостов где расположены выбранные сервисы. Также, если требуется измените порты (2003 у graphite и 25826 у logstash) на которых сервисы работают.

Hostname "dosgate"

LoadPlugin write_graphite
<Plugin write_graphite>
        <Node "localhost">
                Host "graphite_host"
                Port "2003"
                Protocol "tcp"
        </Node>
</Plugin>

LoadPlugin unixsock
<Plugin unixsock>
        SocketFile "/var/run/collectd-unixsock"
        SocketPerms "0660"
        DeleteSocket false
</Plugin>

LoadPlugin network
<Plugin network>
        Server "logstash_host" "25826"
</Plugin>

TypesDB "/etc/collectd/collectd.conf.d/dosgate-types.db"
  • Перезапустите collectd, проверьте наличие plugin_load: plugin "network" successfully loaded в статусе
sudo systemctl restart collectd
sudo systemctl status collectd

Настройка сервера logstash

  • Создайте файл с typesdb, он должен быть идентичен файлу /etc/collectd/collectd.conf.d/dosgate-types.db с сервера DosGate. В нашем примере это /etc/logstash/conf.d/dosgate-types.db, его содержимое:
dgstats         packets:COUNTER:0:U     bytes:COUNTER:0:U
  • Добавьте DosGate в конфигурацию logstash по пути /etc/logstash/conf.d/*.conf. source_ip_fieldname - это название для сервера dosgate
input {
  udp {
    port => 25826
    buffer_size => 1452
    codec => collectd {
      typesdb => ['/etc/logstash/conf.d/dosgate-types.db']
    }
    type => collectd
    source_ip_fieldname => "dosgate"
  }
}
  • Перезапустите logstash, проверьте логи
sudo systemctl restart logstash
sudo tail -500 /var/log/logstash/logstash-plain.log