Translate

неділя, 19 січня 2014 р.

Speedtest from shell console

Існують різні способи для перевірки швидкості інтернет з'єднання і мабуть найбільш популярний - це speedtest.net. Проте для цього необхідний браузер із підтримкою adobe flash і середовище в котрому він власне зможе запускатись. Тому у якості альтернативи раджу спробувати speedtest-cli, консольну програму, що виконує абсолютно ті ж функції.

Установку speedtest-cli можна виконати декількома способами: наприклад через pip чи easy_install. Тому спершу встановимо python-pip:

# apt-get install python-pip

Та після скачаємо і установимо speedtest-cli:

# pip install speedtest-cli

Все готово для нашої початкової цілі, тому запускаємо:

$ speedtest
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Domashnya Merezha LLC (79.28.193.171)...
Selecting best server based on ping...
Hosted by LLC"Astelit" (Kiev) [2.52 km]: 10.649 ms
Testing download speed........................................
Download: 73.08 Mbit/s
Testing upload speed..................................................
Upload: 90.80 Mbit/s

неділя, 12 січня 2014 р.

Monitoring SNMP device with Cacti (setup and configuration)

Cacti - опенсорс моніторингова система, написана як фронтенд до утиліт RRDtool (RRD, Round-robin Database, кільцева база даних). RRDtool включають в себе можливість графічного відображення інформації, що зберігається; це може бути зміна в часі завантаження процесора, завантаження мережевого інтерфейсу і тд. 

Cacti є зручним інструментом для задання параметрів побудови графіків за допомогою RRDtool, а також має багато готових темплейтів для відображення звичних даних на кшталт використання ресурсів системи.

У статті я спробую описати його установку та конфігурацію.

Встановлюється все досить просто:

# apt-get update
# apt-get install snmpd cacti cacti-spine

Демон snmpd необхідно установити на всіх машинах, що будуть моніторитись.

Установщик запропонує обрати вебсервер з котрим буде працювати Cacti (Apache чи Lighttpd) та деякі інші питання, з якими необхідно погодитись. У якості веб-сервера я використав Apache.

субота, 11 січня 2014 р.

Script for reading file from last position

Цей скрипт можна використовувати для підрахунку кількості певних значень в текстовому файлі, проте не з початку файлу, а лише з моменту останньої перевірки, тобто зі збереженням позиції. Він може бути корисним у випадку коли необхідно просканувати великий лог помилок (наприклад, 1 ГБ тексту) для відображення останніх значень в системі моніторингу чи щось на зразок цього, адже переглядати повний лог заново буде затратно по ресурсам.

  1. #!/bin/bash
  2.  
  3. DATE=$(date +%Y-%m-%d)
  4.  
  5. PREV_LINE_STAT=/tmp/prev_last_line.tmp
  6. LOG_ORG=/var/log/exim4/main/log
  7. LINE=$(cat $LOG_ORG | wc -l)
  8. LOG=/tmp/log.tmp
  9.  
  10. if [ -f $PREV_LINE_STAT ]
  11. then
  12.         PREV_LINE=$(cat $PREV_LINE_STAT)
  13. else
  14.         PREV_LINE=0
  15. fi
  16.  
  17. declare -i LINE_RANGE
  18. LINE_RANGE=$LINE-$PREV_LINE
  19.  
  20.  
  21. if [ $LINE_RANGE -lt 0 ]
  22. then
  23.         LINE_RANGE=$LINE
  24. fi
  25.  
  26. tail -n $LINE_RANGE log > $LOG
  27.  
  28. echo $LINE_RANGE
  29.  
  30. for domain in "@mail.ru" "@yandex.ru" "@rambler.ru" "@gmail.com" "@ukr.net" "@yahoo.com"do
  31.         #Sent to separate domains
  32.         COUNT1=$(exigrep $domain $LOG | grep -E $DATE.*\"2[0-9][0-9] | wc -l)
  33.         COUNT2=$(exigrep $domain $LOG | grep -E $DATE.*:\ 5[0-9][0-9] | wc -l)
  34.  
  35.         echo "delivered to $domain"
  36.         echo $COUNT1
  37.         echo "deny by $domain"
  38.         echo $COUNT2
  39.  
  40. done
  41.  
  42. echo $LINE > $PREV_LINE_STAT