• uwsgi基础——SNMP


    原文: http://projects.unbit.it/uwsgi/wiki/UseSnmp

    嵌入的 SNMP 服务

    uwsgi嵌入了一个小型的SNMP服务。你可以集成你的web apps到监控框架。

    为了开启snmp支持,你需要运行一个UDP服务器,选择一个snmp-community名字(这是一个很不好的SNMP认证系统):

    ./uwsgi -s :3031 -w staticfilesnmp --udp 127.0.0.1:2222 --snmp --snmp-community foo

    or

    ./uwsgi -s :3031 -w myapp --master --processes 4 --snmp=127.0.0.1:2222 --snmp-community foo

    (使用snmp选项传递udp地址更好一些;)

    这里会运行TCP端口3031和UDP端口2222,snmp弃用"foo"为社区名字

    注意SNMP服务实在主进程中启动,如果要监听私有port,你可以使用capabilities (on Linux) 或使用root运行--master-as-root 选择。

    staticfilesnmp.py文件包括一个简单的分发,结果导出一个计数器。

    uwsgi snmp服务导出2组信息,自定义和默认的。

    普通信息通过uwsgi服务自己管理,自定义的来自你的apps。

    基本访问信息是:

    1.3.6.1.4.1.35156.17

    that is

    iso.org.dod.internet.private.enterprise.unbit.uwsgi

    普通选项匹配:

    1.3.6.1.4.1.35156.17.1.x

    自定义:

    1.3.6.1.4.1.35156.17.2.x

    So to get the number of requests managed by the uWSGI server :

    snmpget -v2c -c foo 127.0.0.1:2222 1.3.6.1.4.1.35156.17.1.1

    1.1 is general.requests

    自定义的值有三个python方法:

    uwsgi.snmp_set_counter32(oidnum, value)
    uwsgi.snmp_set_counter64(oidnum, value)
    uwsgi.snmp_set_gauge(oidnum,value)

    所以,如果你想导出用户的当前日志,将oid作为40:

    uwsgi.snmp_set_gauge(40, users_logged_in)

    then

    snmpget -v2c -c foo 127.0.0.1:2222 1.3.6.1.4.1.35156.17.2.40

    配置系统snmp进程代理给uwsgi,将这些信息加入/etc/snmp/snmpd.conf:

    proxy -v 2c -c foo 127.0.0.1:2222 .1.3.6.1.4.1.35156.17
    view    systemview    included   .1.3.6.1.4.1.35156.17

    开启snmpd,系统snmpd进程可以使用uwsgi的oid树。

    snmpget -v2c -c public 127.0.0.1 1.3.6.1.4.1.35156.17.1.1
  • 相关阅读:
    PHP如何获取内网IP
    开源的世界并不纯净
    在linux下玩上了第一人称射击
    终于,在linux下上网了
    我的理想
    vista是什么
    我傻了一阵子
    又是大端小端!!!
    谈谈最近的编程状态
    如何快速发布你的C++Builder程序
  • 原文地址:https://www.cnblogs.com/wanself/p/2791326.html
Copyright © 2020-2023  润新知