LINUX.ORG.RU

Сообщения maison999

 

Nagios SNMP trap

Форум — General

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

 , ,

maison999 ()

Get data from web page

Форум — Web-development

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

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

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

 , , ,

maison999 ()

upgrade zabbix

Форум — General

Всем привет, нужно сделать 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

Форум — General

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

Есть 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

Форум — General

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

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

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

 ,

maison999 ()

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

Форум — General

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

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

 ,

maison999 ()

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

Форум — General

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

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

На выводе

6
32
13
2
11
5
10
12
5
26

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

 ,

maison999 ()

Nagios check

Форум — General

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

 , ,

maison999 ()

Zabbix JMX calculated items

Форум — General

Привет, нужна ваша помощь. Есть 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 файла

Форум — General

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

 , ,

maison999 ()

Zabbix keys

Форум — General

Всем привет, помогите разобратся, в заббикс добавил вот такой ключ - 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

Форум — General

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

 , , ,

maison999 ()

Parsing xml website

Форум — General

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

<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

Форум — General

Всем привет, нужна ваша помощь. Надо вытягивать информацию с 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 ()

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

Форум — General

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

 ,

maison999 ()

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

Форум — Admin

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

 ,

maison999 ()

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

Форум — Web-development

Всем привет, нужно искать совпадение и если 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

Форум — Web-development

Всем привет, такая проблема, нужно скачать 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

Форум — Web-development

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

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

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

 

maison999 ()

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

Форум — Web-development

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

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

 ,

maison999 ()

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