2014-11-04 4 views
5

Есть ли что-нибудь для мониторинга установок SaltStack, кроме галита? Я его установил, но это не совсем то, что мы ищем.Мониторинг SaltStack

Было бы неплохо, если бы у нас была веб-гига или даже ежедневная электронная почта, в которой показывался статус всех миньонов. Я очень удобен в написании сценариев, но я не знаю, что делать с скриптом.

У кого-нибудь есть идеи?

+0

Возможно, этот плагин Nagios - это то, что вы ищете: https://github.com/jryberg/nagios-plugins/tree/master/check_salt-minion – Dirk

ответ

1

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

Другой простой тест будет запустить что-то вроде:

salt --output=json '*' test.ping 

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

0

Мне пришлось написать свое собственное. Насколько мне известно, нет ничего, что сделает это, и halite не работает для того, что мне нужно.

Если вы знаете Python, довольно легко написать приложение для мониторинга соли. Например, у моего приложения был поток, который время от времени обновлял список хостов из соляных ключей и несколько потоков, которые выполняли различные команды против этого списка, чтобы проверить, что они были. Нити монитора обновили словарь с меткой времени и успехом/неудачей для каждого хоста после их запуска. Он был взломан вместе с цветным отображением HTML, чтобы отразить статус каждого узла. Мне понадобилось около полудня, чтобы написать его.

Если вы не хотите использовать Python, вы можете с болью сделать что-то похожее на этот неэффективный, быстрый, непроверенный взлом с помощью инструментов командной строки в bash.

minion_list=$(salt-key --out=txt|grep '^minions_pre:.*'|tr ',' ' ') # You' 
for minion in ${minion_list}; do 
    salt "${minion}" test.ping 
    if [ $? -ne 0 ]; then 
     echo "${minion} is down." 
    fi 
done 

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

2

Не абсолютный ответ, но мы разрабатываем седло, что является заменой и улучшением галита. Одна из его особенностей - показать статус всех ваших миньонов. Вы можете дать ему попробовать: Saltpad Project page on Github

5

В случае путем мониторинга вы имеете в виду операционной соли, вы можете попробовать одно из следующих действий:

Эти графические интерфейсы позволят вам не просто знать, живы ли миньоны. Они позволят вам работать с ними так же, как и с сольным клиентом.

И в случае, если с помощью мониторинга вы имеете в виду только ли мастер соли и соли миньоны и работает, вы можете использовать решения для мониторинга общего назначения, как:

На самом деле, эти инструменты могут контролировать различные Services на хостов они знают о. хоста может быть любой машиной, которая имеет IP-адрес и обслуживания может быть любым ресурсом, которые могут быть запрошены через основной ОС. Пример хоста может быть сервер, маршрутизатор, принтер ... И пример службы может быть память, диск, процесс, ...

1

Другим вариантом может быть использование salt.runners.manage функции, которая приходит с функцией status.

Для того, чтобы напечатать статус всех известных соляных миньонов вы можете запустить это на мастер соли:

salt-run manage.status 
salt-run manage.status tgt="webservers" expr_form="nodegroup" 
0

галита был амортизируются в пользу платной версии Ui, грустно, но правда - еще saltstack делает работа. Я бы предположил, что ваш лучший мониторинг будет тем, который вы можете написать сами, к счастью, есть проект salt-api (который, я считаю, был частью halite, не уверен в этом), я бы рекомендовал вам использовать его с tornado as it's better than cherry version ,

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

Использование Почтальон/Curl/независимо:

проверить, если апи жив : - не разместить данные (только увидеть, если апи жив) - получить просьбой об http://masterip:8000/

Логин (вам нужно взять маркер возвращается здесь, чтобы сделать большинство операций): - пост в http://masterip:8000/login - (х -www-form-urlencoded данные в почтальоне), raw:
Имя пользователя: YOURUSERNAME
пароль: ВАШ ПАРОЛЬ
eauth: Пэм

  • им с помощью РАМ, так что я есть пользователь с YOURUSERNAME и ВАШ ПАРОЛЬ добавил на мой мастер-сервера (как обычный пользователь, то, как Пэм рабочий)

получить приспешников, http://masterip:8000/minions (вы должны размещать маркер от операций входа),

получить все рабочие места, http://masterip:8000/jobs (вы п нужно размещать маркер от операции входа),

Так в основном, если вы хотите сделать что-нибудь с контролем saltstack просто играть с этой солью-апи & получить то, что вы хотите , saltstack имеет выходные форматы, поэтому вы можете получить все данные даже в виде json (если ваш фронтэнд похож на javascript) - он позволяет запускать cmd или все, что вам нужно, и мониторинг оставлен вам (если вы не переключитесь с сообщества на версии pro) или если вы не хотите использовать указанную соляную панель (которая, извините, ребята, последний раз обновлялась год назад в соответствии с репо).

кстати. вам может потребоваться изменить этот порт 8000 на что-то другое в зависимости от версии соляной раковины/торнадо/конфига.