LINUX.ORG.RU

Сообщения maison999

 

Nagios SNMP trap

 , ,

Всем привет, настроил чтобы Нагиос ловил SNMP и выводил алерт, но проблема в том что если с одного хоста приходит два SNMP то в нагиосе отображается только последний, может кто знает как это можно исправить, если от одного хоста приходит несколько SNMP то что бы их всех одновременно видеть в Нагиосе. Буду очень благодарен в помощи

maison999
()

Get data from web page

 , , ,

Всем привет, может подобное кто то уже делал и подскажет...

Есть страница - https://developers.facebook.com/live_status/ Как с помощью GET или curl (или может есть какой то другой способ) можно вытянуть значение - API Error Rate (errors/call). Это значение постоянно меняется (). Эти данные будет использовать Nagios или zabbix.

Перемещено beastie из general

maison999
()

upgrade zabbix

 , ,

Всем привет, нужно сделать upgrade zabbix с 2.0 до 2.2. Zabbix лежит на /etc/zabbix

Когда собираю заббикс -

./configure  --enable-server --enable-agent  --enable-java --with-mysql --with-libcurl --with-iodbc --with-net-snmp --with-libxml2 --prefix=/etc/zabbix

он в /etc/zabbix, создал такие директории - etc - где лежат zabbix конфиги, sbin, lib, bin, share... хотя их там не должно быть.. Ну и после старта заббикс сервера апгрейд не происходит. Подскажите пожалуйста что я сделал не правильно

maison999
()

Zabbix API

 ,

Всем привет, нужна ваша помощь.

Есть zabbix_api запрос:


./zabbix_api.php history.get "{\"output\": \"extend\", \"itemids\": \"17912\", \"sortfield\": \"clock\", \"sortorder\": \"DESC\", \"limit\": \"10\"}"

Ответ

"jsonrpc":"2.0"
"result":[]
"id":1

Он должен вытягивать историю 10 проверок для этого итема, но для всех итемов работает кроме Outgoing/Incoming traffic. Данные по этих итемах отдаются и рисуются на графиках.

maison999
()

Работа с AWK

 ,

Всем привет, такая проблема, когда выполняю вот такую команду в командной строке:

awk '{print 100 * (12/123) - 100}'

Ничего не происходит. Переходит на новую строчку и никакого вывода.

maison999
()

Деление чисел на выходе

 ,

Всем привет, нужен ваш совет. Когда выполняю функцию, на выходе вот таких два значения

457
465
Как можно взять первое число и поделить на второе?

maison999
()

Суммирование в bash

 ,

Всем привет, помогите решить одну проблему, есть вот такой цикл:

cat test.sh | while read item; do 
      echo $item 
done

На выводе

6
32
13
2
11
5
10
12
5
26

как мне в цикле можно суммировать все значения, что бы на выводе выдало их суму.

maison999
()

Nagios check

 , ,

Всем привет. Есть nagios, который локально проверяет CPU load, и выдает алерт когда нагрузка прыгает выше 50. Можно ли сделать так, что бы нагиос выдавал алерт когда будет не только прыжок нагрузки, ну и нагрузка будет держаться на протяжении 15 минут?

maison999
()

Zabbix JMX calculated items

 , ,

Привет, нужна ваша помощь. Есть JMX item, который нормально отдает данные -

jmx["metrics:name=narod.ru.consumer.MetricsMessageProvider.complaints",minutes]
Делаю calculated item -
last("hostname:jmx[\"metrics:name=narod.ru.consumer.MetricsMessageProvider.complaints\",minutes]") / 2
И получаю вот такую ошибку -
Cannot evaluate function [last()]: item [hostname:jmx["metrics:name=narod.ru.consumer.MetricsMessageProvider.compl
Пробовал разные комбинации, но не работает, помогите понять в чем ошибка.

maison999
()

Автоматическое завершения после исполнения jar файла

 , ,

Всем привет, такая проблема - запускаю jar файл - java -jar file.jar Он выдает результат который мне нужно, но после этого не завершается, а так и остается в режиме ожидания. Как сделать так что бы он сам завершался после того как выдаст результат. Просто мне нужно дергать этот jar каждые 15 минут. Буду очень благодарен в помощи.

maison999
()

Zabbix keys

 , ,

Всем привет, помогите разобратся, в заббикс добавил вот такой ключ - report[1,2,3,The test A], но с помощью zabbix_get я ничего не получаю - zabbix_get -s 127.0.0.1 -k payout[1,2,3,The test A] - ZBX_NOTSUPPORTED. Как можно вытянуть значение ключа? P.S Скорее всего проблема в том что ключ не может быть с пробелами, но возможно есть способ что бы не менять ключ

maison999
()

Решения с zabbix

 , , ,

Всем привет, кто работал с zabbix, нужна ваша помощь. Например получаю данные по загрузки процессора (отображается на графике). Можно ли сдилать с помощью вычисляемые элементы данных, такой итем что бы брал загрузку процессора ровно неделю назад (с этого момента) и отдавал результат. Должно получится что на одном графике будет нагрузка на данный момент и нагрузка ровно неделю назад. Просто в формулах заббикса не нашел функции которая возвращает данные за определенное время, может есть другой способ

maison999
()

Parsing xml website

 , , ,

Всем привет, нужна ваша помощь, есть сайт на котором в таком формате отображаются данные:

<Site Label="site1" latitude="null" longitude="null" region="null">
      <Value Label="Mb/sec">178.17</Value>
      <Value Label="Reqs/sec">66.49</Value>
      <Value Label="Miss Mb/sec">23.27</Value>
</Site>
<Site Label="site2" latitude="null" longitude="null" region="null">
     <Value Label="Mb/sec">152.97</Value>
     <Value Label="Reqs/sec">30.81</Value>
      <Value Label="Miss Mb/sec">1.02</Value>
</Site>

Как мне в linux вытянуть только значение, например «Mb/sec» для site2 (чтобы вернуло только - 152.97)

Буду очень благодарен

maison999
()

Level3 cdn API

 , ,

Всем привет, нужна ваша помощь. Надо вытягивать информацию с cdn провайдера level3, с помощью API. Ключ API и секретный ключ есть. На офф сайте есть вот такой скрипт на python (перепробовал много разных вариантов с этим скриптом, но так и не понял как мне вытянуть инфу):


from datetime import datetime
import hmac
import hashlib
import base64
import urllib2, urllib
from xml.dom import minidom

class ForbiddenException(Exception):
    pass

def _convert(val):
    if isinstance(val, basestring):
        if val.isdigit():
            return int(val)
        try:
            return float(val)
        except:
            pass
    return val

class NodeTraverser(object):
    def __init__(self, node):
        self.node = node

    def keys(self):
        return self.node._attrs.keys()
    def children_keys(self):
        result = []
        for child in self.node.childNodes:
            result.append(child.tagName)
        return result

    @property
    def children(self):
        return [NodeTraverser(n) for n in self.node.childNodes]

    def getattribute(self, name):
        return self.node.getAttribute(name)
        
    def getnode(self, name):
        for child in self.node.childNodes:
            if child.tagName == name:
                return NodeTraverser(child)

    def __getattr__(self, name):
        if type(name) == int or name.isdigit():
            return self.children[int(name)]
        if self.node.hasAttribute(name):
            return self.getattribute(name)
        return self.getnode(name)
    __getitem__ = __getattr__
    @property
    def val(self):
        if self.node.nodeType == self.node.TEXT_NODE:
            return _convert(self.node.data)
        for node in self.node.childNodes:
            if node.nodeType == node.TEXT_NODE:
                return _convert(node.wholeText)
        return None
        
    def html(self):
        return self.node.toxml()

class XMLWrapper(object):
    def __init__(self, xml):
        self.xml = xml
        self.dom = minidom.parseString(xml)
        setattr(self, self.dom.documentElement.tagName, NodeTraverser(self.dom.documentElement))

class Level3Service(object):
    """
    Parameters :
        key_id(required)
        secret(required)
        service_url : optional that defaults to https://mediaportal.level3.com:443
        content_type : optional that defaults to text/xml
        resource : optional that defaults to /api/v1.0
        method : optional that defaults to GET
        wrap : optional that defaults to True. Will wrap the results in a friendly 
            class that allows you to easily retrieve the values from the xml(see example).
    
    Example Usages:
    
    >>> from level3 import Level3Service
    >>> service = Level3Service('<key id>', '<secret>')
    >>> result = service('rtm/<access group>', {'serviceType' : 'caching', 'accessGroupChildren' : 'false', 'geo' : 'none' })
    >>> result.accessGroup.missPerSecond.val
    50.67
    >>> result.accessGroup.metros[0].name
    Atlanta, GA
    >>> result.accessGroup.metros[0].region
    North America
    >>> result.accessGroup.metros[0].requestsPerSecond.val
    600.45
    """
    
    def __init__(self, key_id, secret, 
      service_url="",
      content_type='text/xml', resource="/api/v1.0", method="GET",
      wrap=True):
        self.key_id = key_id
        self.secret = secret
        self.service_url = service_url
        self.content_type = content_type
        self.resource = resource
        self.method = method
        
        self.current_date = datetime.utcnow()
        self.wrap = wrap
        
    def gen_new_date(self):
        self.current_date = datetime.utcnow()

    @property
    def formatted_date(self):
        return self.current_date.strftime("%a, %d %b %Y %H:%M:%S GMT")
        
    def generate_auth_string(self, method):
        authstring = "%s\n%s/%s/%s\n%s\n%s\n" % (
            self.formatted_date,
            self.service_url.rstrip('/'),
            self.resource.strip('/'),
            method.strip('/'),
            self.content_type,
            self.method
        )
        
        hash = hmac.new(self.secret, authstring, hashlib.sha1).digest()
        return "MPA %s:%s" % (self.key_id, base64.b64encode(hash))
        
    def __call__(self, method, options={}):
        self.gen_new_date()
        url = "https://ws.level3.com" +  self.service_url.rstrip('/') + '/' + self.resource.strip('/')
        url = url + '/' + method.strip('/')
        
        headers = {
            'Date' : self.formatted_date,
            'Authorization' : self.generate_auth_string(method),
            'Content-Type' : self.content_type
        }
        
        req_opts = {'headers' : headers}
        
        if options:
            encoded = urllib.urlencode(options)
            if self.method.upper() == 'GET':
                url += '?' + encoded
            else:
                req_opts['data'] = encoded
        
        req = urllib2.Request(url, **req_opts)
        try:
            result = urllib2.urlopen(req)
        except urllib2.HTTPError, ex:
            if ex.getcode() == 403:
                raise ForbiddenException("something went wrong authorizing this request. %s" % str(ex.readlines()))
            else:
                raise Exception("There was an erorr %s" % str(ex.readlines()))
        data = result.read()
        if self.wrap:
            data = XMLWrapper(data)
        return data



maison999
()

Удаленный доступ к серверу

 ,

Всем привет, подскажите пожалуйста, есть сервер с серым ip (ubuntu), на него я установил kvm виртуализацию. Подскжите, как можно удаленно подлючится к виртуальной машине на этом сервере. Что то типа динднс, ну или может какой то другой способ есть, буду очень благодарен

maison999
()

Nagios разница между двумя проверками

 ,

Привет. Помогите решить Нагис проверяет определенный файл на количество строк, мне как то нужно вытягивать разницу между двумя проверками, например: первый check = 10 строк, когда происходит вторая проверка то уже выводит не 10 файлов а разницу (если так и осталось 10 строк то выводит 0, если стало 15 то выводит 5). Когда третья проверка то уже сравнивает со второй проверкой. Как это можно сделать, буду очень благодарен

maison999
()

Python поиск по регулярным выражениям

 

Всем привет, нужно искать совпадение и если true то записывать в файл. Делаю так:

complaints = ['find', 'found']

for array in complaints:
                if comment['text'] == array:
                        f1 = open("/root/slot.txt", 'a')
                        f1.write(comment['text'] +"\n")

Но это работает только когда в comment['text'] находится только слово find или found, когда будет например - «i cant found» оно не срабатывает, подскажите как исправить, буду очень благодарен

maison999
()

Кэширование запроса в python

 

Всем привет, такая проблема, нужно скачать html страницу по url и найти определённый ссылки (которые раз в несколько часов меняются) с помощью regex и с этих ссылок вытянуть определённую часть. Делаю это так:

from urlparse import urlsplit
import urllib
import re

scratch = []
sock = urllib.urlopen("https://www.facebook.com/ScratchThatGame")
wsource = sock.read()
sock.close()
matchObj=re.findall("https://fbcdn-sphotos-[a-z]-a.akamaihd.net/hphotos-ak-ash3/t1.0-9/[0-9]+_[0-9]+_[0-9]+_n.[jpg|png]+", wsource)
if matchObj:
        for letter in matchObj:
                kal=re.findall("57[0-9]{13}", letter)
                for kal1 in kal:
                        scratch.append(kal1)

print scratch

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

maison999
()

Python поиск текста в HTML

 

Всем привет, нужна ваша помощь: Есть веб страница, содержимое получаю таким образом

import urllib
import re
sock = urllib.urlopen("https://www.facebook.com/ScratchThatGame")
wsource = sock.read()
sock.close()

Теперь в этом коде нужна найти все совпадения с - <img class=«scaledImageFitWidth img» src="???"

maison999
()

Бот для поиска совпадений

 ,

Всем привет, такая проблема, нужно анализировать стену на Facebook на наличие определенных слов (например - problems, dont load и тд) И если находит совпадение то выдавать предупреждение. Не могу придумать как искать совпадение на странице, все остальное уже придумал как реализовать. Находит совпадение, заносит в базу количество и нагиос сервер вытягивает. Если больше заданого порога то выдает алерт. Буду очень благодарен в помощи.

Перемещено true_admin из general

maison999
()

RSS подписка на новые темы