Показаны сообщения с ярлыком network. Показать все сообщения
Показаны сообщения с ярлыком network. Показать все сообщения

вторник, 21 февраля 2012 г.

Ведем статистику / мониторинг сервера с помощью программы Munin в Linux Debian/Ubuntu

В жизни каждого системного администратора рано или поздно наступает момент, когда глаз и рук уже не хватает уследить за всеми серверами, то там, то там возникают какие-то проблемы, а для решения их очень хочется узнать что же было "до этого". И именно здесь на выручку приходят они - великие и ужасные системы мониторинга.
Сама система состоит из двух независимых частей: сервера (сам munin), устанавливается на одну машину, куда и будут собираться все данные, и небольшого демона munin-node, который устанавливается на машины, которые мы будем мониторить. Сам этот демон представляет собой небольшой Perl-скрипт, который слушает 4949 порт с помощью Net::Server. При своём запуске он просматривает плагины, установленные в /etc/munin/plugins и запоминает их имена. Раз в 5 минут сервер munin подключается ко всем нодам, получает информацию от всех плагинов и сохраняет себе в базы rrdtool. Таким образом, для работы Munin'а не нужен даже MySQL.

Установка:

apt-get install munin

Желательно заглянуть в конфиг и включить авторизацию :)

Ограничение скорости (Up/Down)-load конкретной программы в Linux Ubuntu (Kubuntu)

Программа Trickle позволяет управлять скоростью доступа в интернет для каждой конкретной программы.
Trickle оценят пользователи с широким каналом доступа в интернет, но с помегабайтной оплатой трафика.

Устанавливается Trickle командой
sudo apt-get install trickle.

Использовать программу можно следующим образом:

trickle -d download-bandwidth -u upload-bandwidth command

Здесь download-bandwidth — скорость загрузки в Kb/s, upload-bandwidth — исходящая скорость в Kb/s, а command — имя программы, для которой устанавливаются ограничения.

Примеры использования:

trickle -d 100 wget http://cdimage.ubuntu.com/daily/current/precise-alternate-i386.iso

Установить лимит скорости в 100 Kb/s на скачивание файла из сети.

trickle -d 25 -u 15 firefox

Разрешить браузеру загружать страницы со скоростью, не превосходящей 25 Kb/s и отправлять данные в сеть не быстрее, чем на скорости15 Kb/s.

trickle -d 200 apt-get upgrade

Ограничить скорость загрузки обновлений дистрибутива 200 килобайтами в секунду.

sudo trickled -d 200 -u 100

Запустить trickle в режиме сервиса, ограничив суммарную скорость загрузки в 200 Kb/s, а на исходящую скорость ввести ограничение в 100 Kb/s. Ограничения распространяются на всех пользователей и все программы.

четверг, 9 июня 2011 г.

Ограничение скорости работы конкретного интерфейса

Простой шейпер для всего трафика через конкретный интерфейс
устанавливаем
sudo apt-get install wondershaper

Используем:
sudo wondershaper eth1 1024 1024

Скорость указывается в килобитах, в данном примере ограничение скорости будет 100 на 100 килобайт в секунду


среда, 1 июня 2011 г.

Ускоряемся или экономия трафика

Возможное ускорение и экономию трафика под Ubuntu Linux мы получим в связке:
pdnsd+adzapper+bfilter+polipo
Так как безлимитный интернет не у всех, поэтому всеми возможными способами будем экономить на трафике... Очень простенько напишу о своих действиях, а то ведь не винда, возможно и забуду к тому времени как снова понадобится, а может и поможет кому-нибудь.

### Кэширование DNS ###

Этот пункт опциональный, на любителя, я как-то сделал из любопытства и оставил... При неустойчивой связи разрешение доменных имен может происходить довольно долго и не всегда с первого раза. Помогает локальный кэширующий DNS сервер. К тому же это позволит чуть-чуть сэкономить на трафике, особенно если вы испльзуете gprs :) И не нужно думать, что это плохая идея для домашнего использоания, ведь даже в Chrome/Chromiume сделали "упреждающее чтение DNS для ускорения загрузки страниц", так что вполне сгодится :-) Proxy DNS Server (пакет pdnsd) как раз и создан для наших целей. Он кэширует запросы и хранит кэш на диске.

По умолчанию файл конфигурации /etc/pdnsd.conf игнорируется. Вместо него используется один из файлов из каталога /usr/share/pdnsd/, что задается параметром AUTO_MODE в файле /etc/default/pdnsd. Для ручной настройки этот параметр нужно закомментировать.

Далее правим /etc/pdnsd.conf, добавляя в секцию server адресами DNS серверов своего провайдера, остальное на ваше усмотрение:
server {
ip = 192.168.3.1
, 192.168.3.2
}
Для правильной работы в /etc/resolv.conf должна быть прописано лишь одна строка:
nameserver 127.0.0.1
Но Network Manager ее перезаписывает при подключении pptp (VPN), возможно есть и более правильные решения, но чтобы как-то это исправить в /etc/ppp/ip-up или /etc/ppp/ip-up.local, смотря как у вас настроено соединение, необходимо дописать (параметр sleep необязателен):
sleep 3
echo "nameserver 127.0.0.1" > /etc/resolv.conf
Совет от FOX: "Практика показала, что не стоит сюда (resolv.conf) также вписывать адреса DNS-серверов провайдера. Если сервера недоступны, pdnsd будет возвращать либо закэшированный ответ, либо - немедленно - ошибку. В случае ошибки приложения будут затем запрашивать сервера провайдера и ждать положенный таймаут, задержка не уменьшится. Если же приложения обращаются только к pdnsd, ответ, как было сказано выше, будет получен немедленно. И таймаут можно уменьшить, настроив соответствующий параметр. И доступность серверов будет проверять pdnsd, а не каждое приложение".

Проконтролировать работу можно с помощью команды pdnsd-ctl, например,
sudo pdnsd-ctl status
или
sudo pdnsd-ctl server linux.org.ru retest
N.B. Совет с перезаписью resolv.conf работает с 'sudo pon trion', при использовании nm-аплета гнома - не срабатывает.

### Прокси polipo ###

Нам нужен кэширующий прокси, чтобы немного сэкономить на трафике и ускорить просмотр страниц. Конечно, браузеры тоже кэшируют страницы и картинки, но хотелось бы иметь один общий кэш для всех имеющихся браузеров (Firefox, Chromium, Midori, Dillo)...

Ставим лёгкий, быстрый, удобный кеширующий прокси polipo и инструмент для борьбы с рекламой adzapper (он её просто вырезает):
sudo aptitude install polipo adzapper
Так же решил установить допольнительную фильтрацию рекламы с эвристическим анализом bfilter, так как в репах убунты не нашел, взял из Debian Lenny пакеты:
bfilter_1.1.4-1_i386.deb
bfilter-common_1.1.4-1_all.deb
libmozjs1d_1.9.0.18-1_i386.deb
Конфигурация Polipo по умолчанию вполне работоспособна (документация http://localhost:8123/), но нам нужны небольшие дополнения, правим конфиг:
sudo vim /etc/polipo/config
включаем инструмент для борьбы с рекламой, добавив следующую строку:
redirector = /usr/bin/adzapper
указывает родительский прокси на bfilter:
parentProxy = 127.0.0.1:8080
можете настроить список запрещенных URL здесь:
/etc/polipo/forbidden или ~/.polipo-forbidden
добавляем список некешируемых вещей:
uncachableFile = /etc/polipo/uncachable

\.(php[345]?|[sp]html|cgi|pl|py|[aj]sp)$
\?
/cgi-bin/
Не помню по умочанию или нет, но у меня так: proxyOffline = yes

перезапускаем настроенный прокси: sudo /etc/init.d/polipo restart
Браузер(ы) настраиваем на использоание прокси: 127.0.0.1:8123, конечно, если вы не меняли polipo порт по умолчанию.

### adzapper ###

Чтобы не получать вместо рекламы изображения с надписью "This ad is zapped" с сайта редиректора, в /etc/adzapper.conf изменим параметр:
ZAP_MODE="CLEAR"
Для обновления списков прописал в /etc/crontab строку:
30 19 * * 6 root /usr/share/doc/adzapper/examples/update-zapper
Как оказалось в конце файла /usr/bin/adzapper содержаться и фильтры, которые изменять нет смыслы, ведь при обновлении все исчезнет.

### bfilter ###

Для подключения правил блокировки рекламы от AbBlock Plus переносим модифицированные правила из
/usr/share/doc/bfilter-common/urls.local.example.gz в /etc/bfilter/urls.local

Советы по настройке bfilter-wiki
Advanced Configuration: URL Patterns

Сначала я настроил и долго использовал adzapper+polipo, потом добавил bfilter и с ним намного лучше и возможно adzapper уже не столь необходим, но пусть пока будет, ведь хуже от этого не станет. И очень жаль, что в репозиториях убунту нет bfilter - это отличный блокировщик рекламы.

bfilter может работать и как системный демон, и как пользовательское приложение. В последнем случае он показывает свою иконку в системном лотке и имеет полноценный графический интерфейс для конфигурирования.

N.B. И не забудьте подключить расширение AdBlockPlus и AdBlock+EHH для браузера Firefox и Chromium (в Midori встроенный) для вырезания рекламы и экономии трафика или не забывайте добавлять свои правила фильтрации в bfilter или polipo.

Как переименовать сетевые интерфейсы (eth2 в eth1)

Раньше с этим не сталкивался и даже не задумывался над этим вопросом пока все работало нормально: сетевая карта eth0 (motherboard) и eth1 (PCI). Но как оказалось имена сетевых интерфейсов в Linux компьютерах в последнее время стали привязываться к конкретным устройствам. Из-за этого после замены сетевой карты PCI, новая бала на eth2, а не eth1 как ожидалось. Это на работу не влияло, но мне не очень нравилось... Как оказалось собака зарыта в udev, который по умолчанию привязывает имена сетевых устройств к их MAC адресам. Например, в Ubuntu это находится в файле
sudo vim /etc/udev/rules.d/70-persistent-net.rules
Просто отредактируйте его по своему вкусу. Я удалил строку относящуюся к старой сетевой карте и переименовал eth2 в eth1 для новой :-)

воскресенье, 27 марта 2011 г.

Настройка сетевого интерфейса в Линукс: как быстро настроить сетевую карту в Linux

Несмотря на то, что во многих современных дистрибутивах есть красивые графические утилиты по настройке сетевой карты, в ряде случаев проще настроить всё руками в конфигах. Это очень просто - вписать несколько строчек в нужные конфиги.


Как посмотреть текущие настройки сетевой карты в Линукс
$ sudo ifconfig

В результате в консоль будет выдано что-то вроде:

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:104 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9387 (9.1 KiB) TX bytes:9387 (9.1 KiB)

eth0 Link encap:Ethernet HWaddr 00:0A:E4:53:AA:2D
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:21 Base address:0x2c00

Отсюда видно, что настроены два сетевых интерфейса: петлевой (loopback) под названием lo, и обычная сетевая карта (которая Ethernet) под обозначением eth0 ибо eth это ethernet [?], а 0 - номер устройства.

Причём если в интерфейс eth0 вставлен сетевой провод, идущий в свитч, будет написано RUNNING, то есть:

    inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::20e:2eff:feec:ef9f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Простая настройка сетевого интерфейса возможна командой:

    ifconfig eth0 192.168.1.5

Чтобы заглушить сетевой интерфейс, набираем:

    ifdown eth0

После этого небольшого вводного описания переходим к настройке простых сетей в Linux.


Настройка сетевого соединения в Линукс
Для этого потребуются права администратора и текстовый редактор. Так же нужно представлять, какой IP-адрес [?] следует присвоить сетевой карте, адрес шлюза и прочие параметры.

Сначала нужно выяснить, как называется сетевой интерфейс, соответствующий вашей сетевой карте. Делается это так: в консоли пишем

    dmesg | grep -i Eth

В результате должны получить что-то вроде (выделение моё):

    8139too Fast Ethernet driver 0.9.28
    eth0: RealTek RTL8139 at 0xdf822c00, 00:15:f2:51:ad:da, IRQ 21
    eth0: Identified 8139 chip type 'RTL-8101'

Так, похоже, что называется он eth0 и именно такое названием (у вас оно может быть другим, но идея та же). В этом примере дальше будет предполагаться, что интерфейс - eth0.


Настройка сетевого соединения со статическим IP
Для настройки статического сетевого соединения следует отредактировать файл:

    sudo nano /etc/network/interfaces

Перед тем, как его править, следует решить, какой IP-адрес назначается машине. Если вы подключаетесь к уже настроенной сети - хорошо бы посмотреть, какие настройки есть там. Например, если подключение происходит к CorvettTelecom, настройки вам дадут. Если же сеть самопальная, например из двух компьютеров, нижеследующий пример подойдёт.

В общем, при назначении статических адресов нужно указать: IP-адрес (address), маску подсети (netmask) и адрес шлюза (gateway). Для локальной сети файл /etc/network/interfaces нужно изменить так:

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 192.168.1.5
    netmask 255.255.255.0
    gateway 192.168.1.1

В этом примере назначен IP-адрес 192.168.1.5 сетевой карте eth0.


Настройка сетевого соединения с динамическим IP
Редактируем тот же файл, отвечающий в Линукс за сетевые настройки:

    sudo nano /etc/network/interfaces

Здесь всё проще: нужно лишь привести файл к виду:

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet dhcp

Так же можно настроить и из консоли:

    #dhcpcd eth0

Для этого в системе должен быть установлен пакет dhcp3-client

Два слова о беспроводных сетях
Чтобы изменить тип интерфейса

    wlanconfig ath0 destroy
    wlanconfig ath0 create wlandev wifi0
    wlanmode adhoc

Для того, чтобы посмотреть список сетей, набираем:

    iwlist ath0 scan

или

    wlanconfig ath0 list ap

Если есть открытая сеть и нужно к ней подключиться, набираем от рута:

    iwconfig ath0 essid SomeESSID

Для того, чтобы соединение шифровалось с использованием WEP, пишем:

    iwconfig ath0 key ...


Настройка адресов серверов имён (DNS, nameserver)
Если вы не настроите это, то сможете подключаться к ресурсам сети только по IP-адресам, что несколько неудобно. Для того, чтобы в Линукс прописать адреса серверов имён (DNS address), нужно отредактировать файл /etc/resolv.conf или создать его, если его нет.

    sudo nano /etc/resolv.conf

И прописать адреса следующим образом:

    nameserver 192.168.1.1
    nameserver 192.168.2.1

столько, сколько их нужно. Слово nameserver добавлять обязательно.


Чтобы изменения настройки сетевых интерфейсов вступили в силу...
... можно перезагрузиться, но это не наш метод. Без перезагрузки следует дать команду:

    sudo /etc/init.d/networking restart

Всё, после этого настойки вступают в силу для всех сетевых интерфейсов.

Источник