Настройка программы ATSlog

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка программы ATSlog

Сообщение RomA »

В этой статье мы рассмотрим настройку программы для сбора статистики с офисной АТС LDK300. Программа называется ATSlog. Адрес проекта http://atslog.com
По большому счету наша задача заключается в настройке демона, который будет забирать с АТС логи звонков и писать их в базу данных. Вебинтерфейс у этой программы не очень удобный и анализировать полученные записи мы будем другой программой. Итак приступим

Код: Выделить всё

stat# whereis atslog
atslog: /usr/ports/comms/atslog
stat# cd /usr/ports/comms/atslog
stat# make install clean
В списке возможный параметров выбираем

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                    Options for atslog 2.1.1_2                      │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │            [X] LIBWRAP  Enable TCP wrapper support             │ │  
                      │ │            [X] MYSQL    Enable MySQL support                   │ │  
                      │ │            [ ] PGSQL    Enable PostgreSQL support              │ │  
                      │ │            [X] WWW      Install web interface                  │ │  
                      │ │            [X] WWWGD    Graphic reports                        │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

У меня все поставилось без проблем. в конце установки было написано как настраивать программу. Этими советами и воспользуемся. Приступаем к редактированию /usr/local/etc/atslog.conf - там ничего неочевидного - прописал пароль в БД (придумать), пути и директории... Хочу обратить ваше внимание что рядом лежит рускоязычный файл конфига - потому проблем возникнуть не должно... Оговорюсь только что данные я снимать буду по езернету, потому в конфиге прописал port=rtcp:192.168.1.11:23 (192.168.1.11 адрес мой АТС)
Между делом создаем то, чего у нас нет...

Код: Выделить всё

 mkdir /var/log/atslog
Сохранили. теперь на основании этого файла надо создать БД и таблицы. Для этого есть специальный скрипт, который попросит у вас логин и пароль рута к БД

Код: Выделить всё

stat# /usr/local/share/atslog/sql/install-sql.pl /usr/local/etc/atslog.conf

ATSlog SQL database installer/updater

Database type: (mysql or postgresql) [mysql]: 
Database manager [root]: 
Manager's password []: password_root
Database host [localhost]: 
Database name [atslog]: 
Database user [atslog]: 
User's password [password_user]: 
Connecting to 'DBI:mysql:database=mysql;' as 'root'...
Creating database...OK
Creating user...OK
Creating tables...OK
Inserting data...OK
Patching configuration file...
Done :)
stat#
Теперь дадим разрешение запустить сборщик статистики - для этого в файл /etc/rc.conf впишем atslogd_enable="YES" после чего и пробуем запустить

Код: Выделить всё

stat# /usr/local/etc/rc.d/atslogd start
ATSLog is started
stat#
Проверить получилось что нить или нет можно посмотрев в лог

Код: Выделить всё

stat# cat /var/log/atslog/atstart.log 
Wed Aug 18 11:16:33 MSD 2010 atslogd[97725]: Starting
Wed Aug 18 11:16:33 MSD 2010 atslogd[97725]: Connected to 192.168.1.11:23

stat# cat calls.log 
Welcome to LDK-300 system. Press enter.
Your address is 192.168.0.6. Your port number is 6.
31758794 COL 093:27 03 St:dialing   (00) EVT :DE 05 45 08 02 80 91 (U4)
31758794 D>27 03, C1 00 00
31758794 D>27 03, C5 00 00
31758794 COL 065:26 05 St:ds-talk   (00) Ev-I:smsg proc  P1:  DE P2:   0 EVT: 61 <- 93,61
31758794 C>26 05, DE 05 45 08 02 80 91
31758796 COL 065:26 05 St:ds-talk   (00) EVT :DF 01 4D (U7)
Итак, к АТС мы подключились и какой-то бред к нам сыплется. ну это в моем случае... в вашем можите ничего и не увидеть, так как на LDK300 по умолчанию SMDR выключен. Потому чапаем в 177 программу и включаем нужные нам опции - там тоже все понятно и прозрачно. да и вообще больше включим - подробней увидем)))) Так же стоит зайти в 175 программу и посмотреть на какой порт АТС кидает логи - вполне возможно что это компорт (по умолчанию) и нам этот параметр следует изменить на TELNET1 Перезагружать АТС не надо - все начинает писаться сразу. Для того что бы убедиться что записи пошли падать в БД я зашел через phpMyAdmin в нашу БД и в таблице calls увидел звонки пользователей.

Теперь на все это хочется посмотреть как нить красиво - для этого нам понадобится вебинтерфейс программы. Наших потребностей он не покрывает, но для "посмотреть" вполне сгодится. Да и делать то особо ничего не надо ln -s /usr/local/www/atslog /usr/home/www/stat/atslog (ваш путь будет наверняка отличаться) и правим файл /usr/local/www/atslog/include/config.inc.php на предмет пароля к БД идем на веб http://stat.stniva.ru/atslog/ - в качестве логина и пароля по умолчинию используется atslog

Вот таким нехитрым способом у меня настроена статистика звонков по АТС. Отмечу еще некоторые детали
1) в конфиге вебморды раскоментировал переменную в которой содержатся коды мобильных операторов - она там в конце находится - это позволило отфильтровать звонки на мобильные
2) каждый пользователь может зайти под своим телефонным номером в статистику и посмотреть когда и куда он звонил - мне кажется удобно
3) в "параметры линии" сразу обозвал свои линии - стало удобнее смотреть через кого прошел звонок
4) если вам кажется что информация не обновилась - нажмите кнопку "обновить" - это слево в самом верху - все обновится - удобно
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Re: Настройка программы ATSlog

Сообщение RomA »

Скриншотики вебинтерфейса
Вложения
популярные номера
популярные номера
5.jpg (71.71 КБ) 7910 просмотров
отчетики
отчетики
4.jpg (494.93 КБ) 7910 просмотров
листинг звонков
листинг звонков
2.jpg (158.27 КБ) 7910 просмотров
Грефическое представление данных
Грефическое представление данных
3.jpg (56.42 КБ) 7910 просмотров
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Мониторинг работы ATSlog

Сообщение RomA »

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

Задача:
Есть программа ATSlog, которая периодически "падает"

Теория:
Выбор пал на систему мониторинга zabbix и её возможность удалённо выполнять команды

План:
1) поставить на мониторинг программу
2) выполнять запуск, если программа не запущена

Решение:
Первая задача которую надо решить - это как получить доступ к программе. Есть много путей - мо же пролегал через установку утилитки sudo, которая используется для того, что бы дать права определенному пользователю запускать от имени другого пользователя какие-то программы. Ставим

Код: Выделить всё

cd /usr/ports/security/sudo
make install clean
после установки пойдем в конфугурационый файл /usr/local/etc/sudoers где подправим следующие строки

Код: Выделить всё

## Same thing without a password
zabbix ALL=(ALL) NOPASSWD: ALL
Defaults env_reset,logfile=/var/log/sudo.log,!syslog,authenticate,loglinelen=160
То есть я пользователю zabbix даю права на все программы что бы он мог с ними работать, и пароль спрашивать у него не будет. А так же я перенаправляю лог в определённый файл - если этого не сделать, то весь /var/log/messages забьётся сообщениями от sudo и там будет не разобраться.

Теперь поправим конфиг zabbix-агента - для этого идём в /usr/local/etc/zabbix/zabbix_agentd.conf где включаем удалённое управление, а так же ставим на мониториг обьект

Код: Выделить всё

### Option: EnableRemoteCommands
EnableRemoteCommands=1
#
#####
# Status ATSlog
#####
UserParameter=atslog.stat,/usr/local/bin/sudo -u root /usr/local/etc/rc.d/atslogd status | grep not | wc -l
#
Перезапускаем агента

Код: Выделить всё

/usr/local/etc/rc.d/zabbix_agentd stop
/usr/local/etc/rc.d/zabbix_agentd start
Всё. с настройкой сервера мы закончили - теперь идём в вебуправление
Создадим "элемент данных" - Настройка -> Узлы сети -> (левая колоночка) Выбираем наш сервер -> (третья колоночка) "элементы данных" -> проваливаемся в неё -> (с права вверху) Создать элемент данных
1.jpg
1.jpg (142.32 КБ) 7876 просмотров
Дабавляем
2.jpg
2.jpg (108.43 КБ) 7876 просмотров
Новый элемент
3.jpg
3.jpg (108.41 КБ) 7876 просмотров
Сохраняем это всё и идём настраивать тригеры по аналогии с элементами
4.jpg
4.jpg (140.31 КБ) 7876 просмотров
Создаём
5.jpg
5.jpg (114.36 КБ) 7876 просмотров
Сам тригер
6.jpg
6.jpg (61.8 КБ) 7876 просмотров
Теперь надо создать новое действие на этот тригер
7.jpg
7.jpg (75.57 КБ) 7876 просмотров
Обратим внимание что действие - Удаленная команда
8.jpg
8.jpg (107.17 КБ) 7876 просмотров
А вот так выглядит сама эта команда
9.jpg
9.jpg (33.46 КБ) 7876 просмотров
В меня всё получилось. я попробовал положить сервер

Код: Выделить всё

stat# ./atslogd stop
ATSlog is stopped
stat# /usr/local/etc/rc.d/atslogd status
atslogd not started.
, подождал - сервер запустился.

Код: Выделить всё

stat# /usr/local/etc/rc.d/atslogd status
atslogd started. Process PID is 86682
В логе /var/log/zabbix/agentd.log я увидел такую замечательную строчку

Код: Выделить всё

ATSLog is started
Очень замечательно. теперь у меня больше не будет прерываться сбор статистики
Ответить