Главная
 
npofopr.ucoz.ruЧетверг, 2025-07-17, 04:57:30



Приветствую Вас Гость | RSS
Главная
Меню сайта

Форма входа

Категории раздела
postfix [3]
console [2]
ssh [1]
jabber [1]
DHCP [2]
apache [4]
vhcs [1]
pptp [2]
server [7]
ftp [1]
trafic [1]
ip [1]
LDAP [1]
squid [1]
squid

Главная » Статьи » linux » jabber

SendXMPP: Мониторим сервер с помощью Jabber

SendXMPP - это Perl-скрипт для отправки сообщений на XMPP (Jabber) сервер. Работает почти так же, как программа mail при отправке почты. SendXMPP можно использовать для отправки сообщения на xmpp сервер для предупреждения или уведомления пользователей.

Итак, для начала нам нужно поставить SendXMPP. Для Debian/Ubuntu это можно сделать так:

sudo aptitude install sendxmpp

Готово. Теперь надо настроить SendXMPP, чтобы он знал на какой сервер под каким логином и паролем ему коннектиться. Для этого нужно создать файл ~/.sendxmpprc и записать в него настройки:

vim ~/.sendxmpprc
servername@jabber.domain.ru:5222 PaSSwD

Тут servername@jabber.domain.ruservername@jabber.domain.ru:5222 - логин, сервер и порт, PaSSwD - пароль.
Теперь нужно выставить на него такие права, чтобы этот файл мог читать только тот юзер, от имени которого будет зпапускаться SendXMPP:

chmod 400 ~/.sendxmpprc

Все, готово. Установка и настройка закончены.

Теперь пара примеров по использованию SendXMPP.
Пример 1:
Задача: Узнать когда процессор сервера будет под большой нагрузкой.
Решение: Запихнуть в кронтаб вот этот однострочник, чтобы каждые 5 сек. выполнялся:

if [[ $(ps aux | awk '{print $3}' | sort -nr | head -n 1 | sed 's/\..*//g' ) -ge 70 ]] ;\
then ps aux | awk '$3>70' | sendxmpp -s 'CPU Load > 70%' admin@jabber.domain.ru ; \
fi

НО(!) имей ввиду, что это просто пример, в реальной жизни такой однострочник не стоит использовать, т.к. если какой-либо процесс загрузит проц, то тебе будут постоянно идти сообщения, что не есть гуд. В реальной жизни надо сделать провеку, т.е. типа если уже отправлено сообщение, то "поднимаем флаг" и больше не отправляем, когда нагрузка спала, "опускаем флаг".

Пример 2:
Задача: Нужно отслеживать все подключения к SSH-серверу.
Решение: Создать файл /etc/ssh/sshrc с содержанием:

echo "Date:\t\t$(date +%d.%m.%Y\ %H:%M:%S)\nRemote Host:\t$SSH_CONNECTION\nUser:\t\t$USER\nShell:\t\t$SSH_TTY" |\
sendxmpp -s 'SSH Login on GLPI Server' -r 'GLPI Server' -u UserName -j jabber.domain.ru:5222 -p 'PaSSwD' admin@jabber.domain.ru

Теперь при любом подключении будет приходить сообщение в jabber с указанием даты, времени, ip подключившегося, имя этого юзера и на какой шелл он повесился.

Пояснения ключей:
-s - тема сообщения (у меня русские буквы не отображает, в теле все хорошо)
-r - ресурс
-u - имя юзера, для логина на jabber-сервер
-j - адрес jabber-сервера и его порт
-p - пароль

ЗЫЖ: Если у кого бедет проблема с русской кодировкой попробуйте открыть файл sendxmpp, найти строки

use Net::XMPP;
use Getopt::Long;
use strict;

и сразу после них добавить строку

use encoding 'koi8-r';

или

use encoding 'utf-8';

Возможно поможет. Я не пробовал, т.к. у меня с русскими в Gajim'е все хорошо, кроме темы сообщения, а тут они мне и не нужны.

Категория: jabber | Добавил: npofopr (2009-07-20)
Просмотров: 1372 | Теги: Jabber, linux | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Поиск


Copyright MyCorp © 2025
Сделать бесплатный сайт с uCoz