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
原文地址:https://www.cnblogs.com/wanself/p/2791326.html