Ad Widget

Collapse

Monitoring Jenkins over JMX

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mobilesfinks
    Junior Member
    • Jan 2014
    • 13

    #1

    Monitoring Jenkins over JMX

    Приветствую коллеги.
    Появилась задача мониторить Jenkins. Решил это настроить через zabbix. Поставил на jenkins плагин для интеграции с zabbix. Настроил на zabbix-java-gateway на zabbix-server хосте. Добавил шаблон с гита, добавил хост с интерфейсом JMX. Запросы пошли.
    В логах java-gateway видно что при Discovery:Jobs возвращается пустой ответ. При Discovery:Nodes имена Нод возвращаются нормально, но при запросе данных по нодам идут java эксепшены.

    Поставил плагин мониторинга на самом Jenkins мастер хосте. Там видно что в MBean есть org.hudsonci.plugin.zabbix: Discovery И в этом разделе видно, что Jobs сформировано и имеет данные, но вот в заббик сервер не прилетает ничего.
    Пример эксепшена с одной из нод:
    ссылка на pastebin Эксепшн

    Пример запрос-ответа с Jobs
    Code:
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG com.zabbix.gateway.SocketProcessor - starting to process incoming connection
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG c.z.gateway.BinaryProtocolSpeaker - reading Zabbix protocol header
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG c.z.gateway.BinaryProtocolSpeaker - reading 8 bytes of data length
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG c.z.gateway.BinaryProtocolSpeaker - reading 143 bytes of request data
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG c.z.gateway.BinaryProtocolSpeaker - received the following data in request: {
            "request":"java gateway jmx",
            "conn":"10.10.25.22",
            "port":12345,
            "keys":["jmx[\"org.hudsonci.plugin.zabbix:type=Discovery\",\"Jobs\"]"]}
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG com.zabbix.gateway.SocketProcessor - dispatched request to class com.zabbix.gateway.JMXItemChecker
    2015-01-22 15:05:52.780 [pool-1-thread-3] DEBUG com.zabbix.gateway.JMXItemChecker - connecting to JMX agent at service:jmx:rmi:///jndi/rmi://10.10.25.22:12345/jmxrmi
    2015-01-22 15:05:52.803 [pool-1-thread-3] DEBUG com.zabbix.gateway.ItemChecker - getting value for item 'jmx["org.hudsonci.plugin.zabbix:type=Discovery","Jobs"]'
    2015-01-22 15:05:52.807 [pool-1-thread-3] DEBUG com.zabbix.gateway.ItemChecker - received value '{"data":[]}' for item 'jmx["org.hudsonci.plugin.zabbix:type=Discovery","Jobs"]'
    2015-01-22 15:05:52.810 [pool-1-thread-3] DEBUG c.z.gateway.BinaryProtocolSpeaker - sending the following data in response: {"response":"success","data":[{"value":"{\"data\":[]}"}]}
    2015-01-22 15:05:52.810 [pool-1-thread-3] DEBUG com.zabbix.gateway.SocketProcessor - finished processing incoming connection
    
    
    2015-01-22 15:06:52.782 [pool-1-thread-4] DEBUG com.zabbix.gateway.SocketProcessor - starting to process incoming connection
    2015-01-22 15:06:52.783 [pool-1-thread-4] DEBUG c.z.gateway.BinaryProtocolSpeaker - reading Zabbix protocol header
    2015-01-22 15:06:52.783 [pool-1-thread-4] DEBUG c.z.gateway.BinaryProtocolSpeaker - reading 8 bytes of data length
    2015-01-22 15:06:52.783 [pool-1-thread-4] DEBUG c.z.gateway.BinaryProtocolSpeaker - reading 143 bytes of request data
    2015-01-22 15:06:52.783 [pool-1-thread-4] DEBUG c.z.gateway.BinaryProtocolSpeaker - received the following data in request: {
            "request":"java gateway jmx",
            "conn":"10.10.25.22",
            "port":12345,
            "keys":["jmx[\"org.hudsonci.plugin.zabbix:type=Discovery\",\"Jobs\"]"]}
    2015-01-22 15:06:52.783 [pool-1-thread-4] DEBUG com.zabbix.gateway.SocketProcessor - dispatched request to class com.zabbix.gateway.JMXItemChecker
    2015-01-22 15:06:52.783 [pool-1-thread-4] DEBUG com.zabbix.gateway.JMXItemChecker - connecting to JMX agent at service:jmx:rmi:///jndi/rmi://10.10.25.22:12345/jmxrmi
    2015-01-22 15:06:52.805 [pool-1-thread-4] DEBUG com.zabbix.gateway.ItemChecker - getting value for item 'jmx["org.hudsonci.plugin.zabbix:type=Discovery","Jobs"]'
    2015-01-22 15:06:52.808 [pool-1-thread-4] DEBUG com.zabbix.gateway.ItemChecker - received value '{"data":[]}' for item 'jmx["org.hudsonci.plugin.zabbix:type=Discovery","Jobs"]'
    2015-01-22 15:06:52.811 [pool-1-thread-4] DEBUG c.z.gateway.BinaryProtocolSpeaker - sending the following data in response: {"response":"success","data":[{"value":"{\"data\":[]}"}]}
    2015-01-22 15:06:52.811 [pool-1-thread-4] DEBUG com.zabbix.gateway.SocketProcessor - finished processing incoming connection
    Может у кого идеи будут почему Jobs не отдаются?
  • sperr0w
    Member
    • Oct 2014
    • 44

    #2
    Для того, чтобы работал zabbix-integration-plugin, нужно поставить также jmx-monitoring-plugin.

    В zabbix-integration-plugin леджат JSON с данными о джобах и нодах, а также этот плагин генерит Zabbix трапы по поводу статуса джобов.

    В плагине jmx-monitoring-plugin должны находиться mbean с метриками по каждому джобу.

    У меня проблема возникла именно на этом этапе... После компиляции и установки плагина jmx-monitoring-plugin, в mbean появились метрики Hudson и Nodes с одной нодой Masterб но никаких упоминаний о Job и их метриках.

    Кроме того, если посмотреть на файл Plugin.java,

    мы вообще не увидим в нем регистрации метрик о Job.

    Не понимаю, как это все должно работать...

    Comment

    Working...