Поиск по этому блогу

пятница, 9 сентября 2016 г.

Syslog per host

Дано:
Имеется порядко 150 устройств (коммутаторы, файерволы, сервера, оптимизаторы трафика и т.д.), необходимо собирать с них логи по-хостово. Логи будут складываться в папку с текущей датой, храниться 100 дней и папки старше 100 дней удалаться. В качестве имен файлов должны выступать hostname устройств. Два дня "сегодня" и "вчера" файлы не архивированы, остальные в архивированном виде, причем каждый лог-файл архивируется отдельно. Web-морды нет.

Решение:
Сервер будем разворачивать на VMware, для него выделены ресурсы:
  • CPU - 1 процессор Intel(R) Xeon(R) CPU E5606 @ 2.13GHz
  • Memory -2GB
  • HDD - 90GB

  • В качестве ОС будет использоваться Debian 8.2, а качетсве самого сборщика будет выступать штатный rsyslog (версия - 8.4.2). Диск размечен: 15GB выделено под корень и 75 GB под сами логи и примонтированы к /var.

    Необходимые настройки:
    # provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514

    ..........
    $FileOwner root
    $FileGroup root
    $FileCreateMode 0644 -> чтобы файл могли читать все пользователи
    $Umask 0022

    ..........
    #for dynamic create file per host
    $template DynFile,"/var/log/devices_logs/%$now%/%HOSTNAME%.log"

    ..........
    #for dynamic create file per host
    *.* ?DynFile


    Сам скрипт
    #!/bin/bash
    #определяем дату вчера и директорию "вчера"
    ydate=`date +%Y-%m-%d -d "yesterday"`
    #Запускаемархиватор. Каждый лог-файл в директории станет архивом.
    /usr/bin/find $1 /var/log/devices_logs/$ydate/ -exec /bin/gzip -9 {} \;
    #удаляем папки старше N дней (100)
    find /var/log/devices_logs -type d -mtime +100 -exec rm -rf {} \;

    Добавляем этот скрипт в крон, будем запускать его каждый день в 23:59
    59 23 * * * root /root/rotetion_log
    Если в качетсве имен фалов будут не hostname, а ip адрес, то в файле /etc/host необходимо создать запись вида ip address          hostname

    P.S. в день валится порядка 500-700МБ логов, сжимается все это дело где-то до 30-50МБ.
    P.P.S. здесь нет никакого секретного знания, просто заметка для себя. Оставляйте свои дополнения в комментариях, если где-то ошибся поправлю.

    Cisco Ironport невозможно установить соединение на HTTPS порт

    Используя в сети, в качестве прокси, Cisco IronPort столкнулся с такой проблемой.
    Обращаясь на порт 8888, в браузере получаем такую ошибку ERR_BAD_SSL_CLIENT_AUTH_CERT.

    В логах прокси она выгляди так:
    1471205494.766 0 136.y.x.18 TCP_DENIED/407 516 CONNECT tunnel://z.x.y.kz:8888/ - NONE/- - OTHER-NONE-Cusctomer_Identities_name-NONE-NONE-NONE-NONE <-> -

    В Web Tracking это выглядело так:

    Идем в Web Security Manager - Access Policies находим Global Policy


    Нажимаем на No blocked items и в поле HTTP Connect Ports дописываем требуемый нам порт, конкретно 8888

    После добавления порта, результат в Web Tracking изменился и сайт соответственно успешно открывается. На рисунке можно заметить, что в поле policy теперь стоит Allow, да и трафик уже не нулевой.