Zabbix läuft nicht mehr auf OS 6

frater

Mitglied
Mitglied seit
23 Nov 2008
Beiträge
455
Punkte für Reaktionen
3
Punkte
18
Gerade hab ich ein 7390 für dass erste mahl mith OS6 geflashed.
Alles läuft aber nicht Zabbix.

Beim troubleshooting hab ich dies gefunden:
Code:
$DAEMON -c $DAEMON_CONFIG
zabbix_agentd: can't load library 'libubacktrace.so.0'[\CODE]

Ich suche jetzt weiter aber vielleicht ist jemand die das Antwort schon hat.
Ein 3370 habe ich vorgestern geflashed mit OS 6 und dieser hat kein problem....

Vielleicht habe ich etwas zuviel entfernt.
Mit 16 MB flash muss ich dass auch (die 3370 hat mehr)
 
Ist denn die Library (libubacktrace.so.0) da? Oder hast du vielleicht war benötigtes per "external" ausgelagert, was zu dem Zeitpunkt (noch) nicht da ist?
 
Ich kann kein datei mit der nahme libubacktrace.so.0 finden.... auch nicht auf der 3370 wo es funktioniert....
Mit google hab ich dass hier gefunden (für samba) http://freetz.org/ticket/2322

Ohne genau zu wissen wass ich mache habe ich dass hier hinzugefugt in "/home/freetz/trunk/make/zabbix_agentd/Config.in"

Code:
config FREETZ_PACKAGE_ZABBIX_AGENTD
        bool "Zabbix Agent 1.8.15"
        default n
        select FREETZ_BUSYBOX_WHO
        select FREETZ_LIB_libresolv
        depends on FREETZ_TARGET_UCLIBC_SUPPORTS_libubacktrace

Die firmware gibt immer dieselbe Fehler...

Wie kann ich kontrolieren ob dieser library anwesend ist...?

Kann zabbix nicht an die trunk hinzugefugt werden (und auch sudo)?
Da gibts ein zabbix 2.2 aber das ist nur ein binary....
Ich brauche die webif und die scripts zum ausfuhren... ich kenn mich nicht gut aus....
An die andere seite habe ich gut funktionierender scripts an zabbix hinzugefugt zum monitoring dsl, angeschlossene geräte und SIP.
 
Zuletzt bearbeitet:
Wann genau hast du das denn gebaut?
Im Trunk ist "make/zabbix/patches/070-drop_backtrace_dependency.patch" der m.E. die Abhängigkeit von dieser Lib entfernen sollte...
 
Dieser Zabbix package ist viel später hinzugefugt...
Ein viel früheres package 1.6 und danach 1.8.5 habe ich schon 3 Jahre in gebrauch.
Die 2.2 ist nur ein binary und ich kenn mich nicht genugend aus wie ich diese 2 zusammenfugen kann...

Diese patches gibt es nicht in die 1.8.5

Am liebsten hätte ich ein 2.2 Zabbix mit der WebIF....

Ich habe jetzt im folder make/zabbix ein symbolic link "files" nach ../zabbix_agentd/files gemacht...
Vielleicht funktioniert das
 
Zabbix binary (2.2) runs, but no webif nor configs....
I need some help to get it working as it did before.....
 
Ich versuche es. (Und bitte nicht auf eigene Beiträge antworten ;-))

EDIT:
Hier mal ein Versuch. Zumindest startet das bei mir.
Ich habe nach bestem Verstehen der Änderungen zum ServerActive sowie zur vereinfachten daemon configuration eingepflegt und die Parameter ServerPort, DisableActive und DisablePassive gelöscht.

Kurzanleitung:
Anhang in das Freetz-Verzeichnis speichern, dann
Code:
gzip -d zabbix_2.2_gui.patch.gz
patch -p0 < zabbix_2.2_gui.patch
# die ausführbaren Dateien ausführbar machen
chmod +x make/zabbix_agentd-cgi/files/root/usr/lib/cgi-bin/zabbix_agentd.cgi 
chmod +x make/zabbix_agentd-cgi/files/root/etc/init.d/rc.zabbix_agentd 
chmod +x make/zabbix_agentd-cgi/files/root/etc/default.zabbix_agentd/zabbix_agentd_conf
 

Anhänge

  • zabbix_2.2_gui.patch.gz
    4.7 KB · Aufrufe: 2
Zuletzt bearbeitet:
Vielen Dank.....
Ich habe auch mein eigener scripts hinzugefugt und die stehen jetzt in einen separaten folder....
Einige Sachen mache ich mit fwmod_custom, aber die kann man auch in ""make" machen

Gerne hätte ich noch deine Hilfe damit.... aber später...

Danke

Kann ich dich mein Folder schicken?
Dort habe ich support scripts geschrieben womit man ganz AVM spezifische Daten bekommen kannst...
Ich habe auch ein fwmod_custom, aber die sachen die ich dort mache sollte ich eigentlich in make machen...
Ich habe eigentlich nie etwas gemacht mit make und auch nicht mit patch....
 
Zuletzt bearbeitet:
Funktioniert die GUI jetzt so wie bisher? Dann würde ich die demnächst mal als "experimentell" einchecken. Was fehlt noch?
 
Ja, es funktioniert....
Vielleicht einige Standardwerte ändern, aber vielleicht kann dass in ein zusätzliche

"Allow all characters to be passed in arguments to user-defined parameters." brauche ich und auch "Error Information"


Mein eigener scripts funktionieren jetzt...
Gerne wurde ich die teilen mit euch....

Kann ich alles schicken?

Auch braucht es sudo...
Dieser ist immer noch nicht hunzugefugt, auch nicht experimentel...


Hier mein Modifikation von make/zabbix/Config.in

config FREETZ_PACKAGE_ZABBIX_AGENTD_SUPPORT
bool "agentd support"
depends on FREETZ_PACKAGE_ZABBIX_agentd
select FREETZ_PACKAGE_ZABBIX_AGENTD_CGI
select FREETZ_REPLACE_BUSYBOX
select FREETZ_BUSYBOX_MD5SUM
select FREETZ_BUSYBOX_FEATURE_SUID_CONFIG
select FREETZ_BUSYBOX_NETSTAT
select FREETZ_BUSYBOX_FEATURE_NETSTAT_WIDE
select FREETZ_BUSYBOX_FEATURE_NETSTAT_PRG
select FREETZ_BUSYBOX_AWK
select FREETZ_BUSYBOX_FEATURE_DATE_NANO
select FREETZ_PACKAGE_SUDO
select FREETZ_BUSYBOX_MKTEMP
default n
help
Zabbix agent support files.



####### USER-DEFINED MONITORED PARAMETERS #######
# Format: UserParameter=<key>,<shell command>
# Note that shell command must not return empty string or EOL only
UserParameter=net.ping[*], ping -c1 -W1 $1 2>/dev/null | grep -c 'bytes f'

UserParameter=net.ipv4.cksum,ifconfig | grep -B1 ' inet ' | md5sum | tr -cd 0-9 | cut -b1-10
UserParameter=net.ipv4,ifconfig | grep -B1 ' inet ' | grep -oE '(^[a-z0-9:]+|addr:[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)'
UserParameter=net.if.down[*],ifconfig $1 >/dev/null 2>&1 ; echo $?

UserParameter=listenport[*], netstat -ln | grep -c ':$1 '
UserParameter=net.netstat.cksum, netstat -lnt 2>/dev/null | sort | md5sum | tr -cd 0-9 | cut -b1-10
UserParameter=net.netstat, netstat -lnt 2>/dev/null | sort

UserParameter=net.tcpdump, sudo tcpdump -nc30 2>/dev/null | grep length | awk -F': ' '{print $1}'| grep -v '192\.168\..*192\.168\.'

# Freetz ctlmgr
UserParameter=ctrlmgr[*], sudo ctlmgr_ctl r $1 $2

# Freetz SIP
UserParameter=sip.active, sudo /sbin/sip.active
UserParameter=sip.reachable, sudo /sbin/sip.reachable
UserParameter=sip.reachability, sudo /sbin/sip.reachability
UserParameter=sip.configured, sudo /sbin/sip.configured
UserParameter=sip.flawed, sudo /sbin/sip.flawed
UserParameter=sip.info, sudo /sbin/sip.info

# Freetz DSL
UserParameter=dsl.upstream, sudo ctlmgr_ctl r sar status/dsl_us_rate
UserParameter=dsl.downstream, sudo ctlmgr_ctl r sar status/dsl_ds_rate

UserParameter=saturation.tx, adsl.saturation tx
UserParameter=saturation.rx, adsl.saturation rx

UserParameter=dsl.bytes.tx, dsl.bytes tx
UserParameter=dsl.bytes.rx, dsl.bytes rx

UserParameter=dsl.upsnr, sudo ctlmgr_ctl r sar status/us_margin
UserParameter=dsl.downsnr, sudo ctlmgr_ctl r sar status/ds_margin
UserParameter=dsl.upcrc, sudo ctlmgr_ctl r sar status/us_crc
UserParameter=dsl.downcrc, sudo ctlmgr_ctl r sar status/ds_crc
UserParameter=dsl.los, sudo ctlmgr_ctl r sar status/ds_los

Die Sachen die ich in fwmod_custom mache wurde ich gerne in ein make file haben wie es gehört.
Wenn ich ein solches Vorbild habe kann ich dass in Zukunft selbe.
Gerne möchte ich auch das es beim Trunk hinzugefugt wird...
Vielleicht haben anderen noch etwas daran oder wollen ausbreiten...

Ich schicke natürlich auch ein XML für die Zabbix Server.
 

Anhänge

  • modtrunk.tgz
    7.9 KB · Aufrufe: 6
Zuletzt bearbeitet:
Hier mal ein neuer Versuch. Alles weiter ohne "sudo" (also für eine Installation mit "AllowRoot").
Deine Skripte habe ich mal angepasst. Ein paar waren aus meiner Sicht noch zu vereinfachen, einige Befehle gingen garnicht.

Wäre dann etwas anzupassen, also in etwa:
Code:
# einmal das Skript ausführbar machen 
chmod +x /var/tmp/flash/zbx

# Deine UserParameter müssen dann noch 
# statt
UserParameter=saturation.tx, adsl.saturation tx

# jetzt so aussehen (kannst du natürlich anpassen, nur mal ein Anfang ;-)
UserParameter=saturation.tx, /tmp/flash/zbx_agentd_script  adsl_saturation TX

EDIT: Hab gerade gemerkt, dass ich da eine "fehlerhafte" Version geschickt habe. Diese sed-Zeile im get_if_counters muss so geändert werden:
Code:
[...]
get_if_counters(){
# $1 : Interface	$2: match string (RX or TX and keyword (bytes, errors ...))
	[ "${2:0:2}" != "RX" -a "${2:0:2}" != "TX" ] && RET="-1" || \
	RET=$(ifconfig $1 2>/dev/null | sed -n "s[B]/.*${2}:[/B]\([0-9]*\).*/\1/p")
	[ -n "$RET" ] && echo $RET || echo -1 
}
[...]
Hänge demnächst eine korrigierte Version an, aber damit keiner in den Fehler läuft...
 

Anhänge

  • zabbix_agentd-cgi.tgz
    7.1 KB · Aufrufe: 7
Zuletzt bearbeitet:
Hallo Maxmuster,

Schade dass ich nicht die Wirkung meine Skripte demonstrieren kann...
Sie funktionieren einwandfrei. In Zabbix sehe ich ob die LAN-interfaces ändern, SIP einwandfrei funktioniert, Geräte im Netzwerk anwesend sind (ping), saturation, bytes empfangen und gesendet....

Mittlerweile habe ich noch einiges angepasst und läuft jetzt auf 40 verschiedenen Fritzboxes und 8 verschiedene Modelle (7170, 7270v2, 7270v3, 7390, 7360, 7490, 3270 und 3370).
Eigentlich schon fast 2 Jahre...

Zabbix will ich nicht als root läufen lassen.
Die Zabbix Entwickler haben es so entworfen und trauen es daher implizit auch nicht...

Weil ich mit "make" nicht viel mache habe ich einiges in fwmod_custom gemacht.
Das ist nicht gut und vielleicht kannst du mir dabei helfen...

Wenn sudo in die trunk bekommt wäre auch schon gut und wird es einfacher zu teilen mit anderen....
 
Kann ja sein, dass die Skripte bei dir auf allen Boxen funktionieren, aber einige fand ich sehr "umständlich" (Saturation z.B.) und einige funktionieren überhaupt nicht auf einigen Boxen, z.B. deine Art, RX-Daten zu erheben (7270, FBF ):
Code:
root@fritz:/var/mod/root# grep -A3 internet /proc/net/avm_pa/vpids | grep RX | awk '{print $7}'
grep: /proc/net/avm_pa/vpids: No such file or directory
root@fritz:/var/mod/root#
, daher meine Anregungen, das über einfache und verbreitet vorhandene Befehle zu machen (hier z.B. über ifconfig für RX/TX Daten) oder die Möglichkeiten der Box selbst zu nutzen, statt das umständlich zu simulieren (die ctlmgr_ctl - Befehle für bps z.B zur Berechnung der saturation statt der "Simulation" einer Bandbreitenberechnung mit externen Dateien usw.).

Was du für dich selbst machst, ist ja vollkommen dir überlassen, so ein Paket soll aber universell sein. Da müssten dann die Skripte möglichst überall funktionieren. Zudem finde ich, wie schon geschrieben, es extrem unpraktisch, für jede Kleinigkeit ein einzelnes Skript auf die Box zu bringen.


Auf der FB laufen fast alle Programme als root und die Progammierer von Zabbix haben extra die Möglichkeit vorgesehen, das Programm auch so laufen zu lassen. Klar, auf einem "normalen" Server mag es ein sinnvoller Sicherheitsaspekt sein, ein von root gestartetes Programm "runterzustufen", auf einem Embedded Gerät muss man das m.E. etwas anders beurteilen, als dort.

Sudo in den Trunk könnte man ja überlegen, aber selbst dann würde ich immer "normale" Skripte für den "normalen" User anbieten.

Wem das zu unsicher ist, der muss halt die ganzen Änderungen für sich machen (wenn ich das richtig sehe, ist es mit sudo allein ja nicht getan, die ganze SUID-Geschichte muss man ja auch noch machen, und dann noch Programme dafür festlegen...).
 
Das die berechnung umständlich ist liegt an AVM.
Die Daten stimmen sonst nicht. Mann kann auch mit SNMP die interfaces abfragen aber diese Daten stimmen auch nicht. Auch nicht mit "ifconfig".

Ich habe jetzt auch eine Anpassung gemacht und berechne jetzt erstmahl die verschobene bytes und nutze dass wieder in Saturation....
Ich verstehe auch nicht warum ich auf alle AVM boxes dieser /proc/net/avm_pa/vpids habe und ihr nicht, aber ich habe ein PPPoA box dabei wo nur die Daten auf 0 bleiben...
In die Niederlanden ist DSL ein ATM Netzwerk (IPoA & PPPoA) und vielleicht in Deutschland gibts mehr PPPoE oder IPoE.
Ich denke das saturation in alle Umständen funktioniert wie ich es jetzt mache...

Ich verstehe das im Trunk alles universell muss sein...
sudo hinzufugen ist einfach für euch und liegt keiner im Wege

Ich mache nicht für jede Kleinigkeit ein einzelnes Skript. Ich versuche es immer nur mit "UserParameter" zu lösen und mache schon vieles mit "ctlmgr_ctl"

Zum Beispield die SNR kann ich jetzt voll im Zabbix machen und brauche nicht mahl die extra UserParameter.
Das ist nur ein "Legacy" weil ich es vorher mit showdslstat machte....

cat make/zabbix_agentd-support/files/root/sbin/dsl.bytes
Code:
#!/bin/sh

# the parameter rx or tx has to be given
echo "$1" | egrep -q '^(tx|rx)$' || exit 1

# Fetch the corresponding DSL-speed of physical layer
if [ "$1" = 'tx' ] ; then
  STATDIR=/sys/class/net/vdsl/statistics
  [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/adsl/statistics
  [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/dsl/statistics
  DSL_BYTES=`cat ${STATDIR}/${1}_bytes 2>/dev/null`
else
  DSL_BYTES=`grep -A3 internet /proc/net/avm_pa/vpids 2>/dev/null | grep RX | awk '{print $7}' | tr -cd '0-9'`
  if [ -z "${DSL_BYTES}" ] || [ "${DSL_BYTES}" = "0" ] ; then
    STATDIR=/sys/class/net/vdsl/statistics
    [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/adsl/statistics
    [ -e "${STATDIR}" ] || STATDIR=/sys/class/net/dsl/statistics
    DSL_BYTES=`cat ${STATDIR}/${1}_bytes 2>/dev/null`
  fi
fi
echo ${DSL_BYTES}



Code:
UserParameter=system.freetz, grep FirmwareVersion /var/config.def | awk -F\' '{print $2}'

UserParameter=net.ping[*], ping -c1 -W1 $1 2>/dev/null | grep -c 'bytes f'

UserParameter=net.ipv4.cksum,ifconfig | grep -B1 ' inet ' | md5sum | tr -cd 0-9 | cut -b1-10
UserParameter=net.ipv4,ifconfig | grep -B1 ' inet ' | grep -oE '(^[a-z0-9:]+|addr:[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)'
UserParameter=net.if.down[*],ifconfig $1 >/dev/null 2>&1 ; echo $?

UserParameter=listenport[*], netstat -ln | grep -c ':$1 '
UserParameter=net.netstat.cksum, netstat -lnt 2>/dev/null | sort | md5sum | tr -cd 0-9 | cut -b1-10
UserParameter=net.netstat, netstat -lnt 2>/dev/null | sort

UserParameter=net.tcpdump, sudo tcpdump -nc30 2>/dev/null | grep length | awk -F': ' '{print $1}'| grep -v '192\.168\..*192\.168\.'

# Freetz ctlmgr
UserParameter=ctrlmgr[*], sudo ctlmgr_ctl r $1 $2

# Freetz SIP
UserParameter=sip.active,     sudo /sbin/sip.active
UserParameter=sip.reachable,  sudo /sbin/sip.reachable
UserParameter=sip.reachability, sudo /sbin/sip.reachability
UserParameter=sip.configured, sudo /sbin/sip.configured
UserParameter=sip.flawed,     sudo /sbin/sip.flawed
UserParameter=sip.info,       sudo /sbin/sip.info

cat make/zabbix_agentd-support/files/root/sbin/adsl.saturation
Code:
#!/bin/sh

# You do need to turn on support for %N (nanoseconds) in busybox

# the parameter rx or tx has to be given
echo "$1" | egrep -q '^(tx|rx)$' || exit 1

# Create a file in /tmp to fetch the previous sample
SCRATCH=/tmp/${0##*/}.$1

# Fetch the corresponding DSL-speed of physical layer
if [ "$1" = 'rx' ] ; then
  DSL_SPEED=`sudo ctlmgr_ctl r sar status/dsl_ds_rate`
else
  DSL_SPEED=`sudo ctlmgr_ctl r sar status/dsl_us_rate`
fi

if [ -z "${DSL_SPEED}" ] || [ ${DSL_SPEED} -eq 0 ] ; then
  echo 0
  exit
fi

# Fetch date and Bytes from DSL-interface
NOW_TIME=`date +%s.%N`
NOW_BYTES=`dsl.bytes $1`

# On first run, these vars do not exist
LAST_BYTES=${NOW_BYTES}
LAST_TIME=0

# read previous values
[ -f ${SCRATCH} ] && . ${SCRATCH}

# Sanity check in case previous value is somehow off
LAST_BYTES=`echo "${NOW_BYTES} ${LAST_BYTES}" | awk '{if($1 > $2) {print $2} else print $1}'`

DIFF_BYTES=`echo "${NOW_BYTES} ${LAST_BYTES}" | awk '{print $1 - $2}'`
DIFF_TIME=`echo  "${NOW_TIME} ${LAST_TIME}"   | awk '{print $1 - $2}' | tr -cd '[0-9].'`

BITS_PER_SEC=0
[ "${DIFF_TIME}" = '0' ] || BITS_PER_SEC=`echo "${DIFF_BYTES} ${DIFF_TIME}" | awk '{printf"%.0f\n", 8 * $1 / $2}'`

# Write Bytes and Time to ${SCRATCH}
echo -e "LAST_BYTES=${NOW_BYTES}\nLAST_TIME=${NOW_TIME}" >${SCRATCH}

# There's some overhead going from ATM over DSL to Ethernet (PPPoA)... a bit less for PPPoE
# I don't know (yet) how to detect an IPoE connection. I don't have such a connection..... (not such a big deal)
NETTO=0.895

# showdsldstat | egrep -qi '(vlan|/PPPoE)' && NETTO=0.91

# echo "${BITS_PER_SEC} ${DSL_SPEED} ${NETTO}"
RETVAL=`echo "${BITS_PER_SEC} ${DSL_SPEED} ${NETTO}" | awk '{printf"%.0f\n", $1 / ($2 * $3 * 10)}' 2>/dev/null`
[ -z "${RETVAL}" ] && RETVAL=0
echo ${RETVAL}
 
Zuletzt bearbeitet:
Wie genau die Werte des ifconfig sind, weiß ich nicht, aber das ist ja auch zumindest für die Auslastung unerheblich, wenn man sich die nicht selbst berechnet, sondern die in der Box eh schon bereitgestellten Werte der bps durch die maximale Kapazität teilt ;-).

Der von dir abgefragte Wert scheint irgendwas mit AVMs PA (PacketAccelerator) zu tun zu haben. Der ist halt nicht in allen Firmwares drin.

Mein kurzer Test mit "meiner" Auslastung (bps) und darauf basierenden Saturation hat genau die gleichen Werte ergeben, wie im Webif (klar, ich nutze die gleiche Basis, weil ich die von AVM selbst berechneten Werte nutze).
In wiefern sind die denn bei dir ungenau? Hast du dir meinen Vorschlag für die Auslastung überhaupt mal angesehen? Welche Werte liefert das bei dir (ich habe allerdings keinen "Korrekturfaktor" drin, wie du)?

Code:
adsl_saturation(){
	if [ "${1:0:2}" = "RX" ]; then
		DS_VAL=$(( $(ctlmgr_ctl r nqos settings/stat/ds_current_bps | sed 's/,.*//') *8  ))
		DS_SPEED=$(ctlmgr_ctl r dslstatglobal status/in)
		echo "$((100* $DS_VAL / $DS_SPEED))"
	elif [ "${1:0:2}" = "TX" ]; then
		US_VAL=$(( $(ctlmgr_ctl r nqos settings/stat/current_bps | sed 's/,.*//')  *8  )) 
		US_SPEED=$(ctlmgr_ctl r dslstatglobal status/out)
		echo "$((100* $US_VAL / $US_SPEED))"
	else
		echo "-1"
	fi
}
Mir scheint das zumindest die "elegantere" Lösung ;-)

Mit den "vielen Skripte" beziehen ich mich auf alle von dir erstellten Skripte in /sbin (das sind immerhin acht).
Da halte ich es für sinnvoller, die alle in einer Datei zusammenzufassen (siehe mein Vorschlag), die dann auch bei Bedarf noch veränderbar und ergänzbar sind. Diese "Abfagescripte" statisch in die Firmware zu integrieren halte ich für zu aufwändig und zu unflexibel. Hätte ich das z.B. so auf meiner Box, könnte ich wegen des bei mir nicht funktionierenden Skriptes die Auswertungen nicht machen.

Und nochmal eine Nachfrage zum Sudo: sudo allein reicht, ohne irgendwelche setuids auf der Busybox?
 
Das ist sicherlich eleganter...
Aber ich weiß nicht das ich diese Daten durch "ctlmgr_ctl r nqos settings/stat/ds_current_bps" bekommen kann...

Auch dein Skript kann ich eleganter machen...

Ich wurde starten mit: ctlmgr_ctl r nqos settings/stat/ds_current_bps | awk -F, '{print $1 * 8}'

Die Werten waren ganz genau, aber jetzt bin ich mir nicht sicher mehr...
Ich werde mein Skript auch ersetzen mit ungefähr dein Beispiel...
Du gibts -1 züruck bei ein Fehler, aber ich wurde nichts geben...
Die Werte bekommt "unsupported" und dafür gibts auch ein Trigger....

cat /tmp/dsl.saturation
Code:
#!/bin/sh

DSL='dsl_ds_rate'
BPS='ds_current_bps'
if [ "$1" = 'tx' ] ; then
  DSL='dsl_us_rate'
  BPS='current_bps'
fi

TRAFFIC=`  sudo ctlmgr_ctl r nqos settings/stat/${BPS} | awk -F, '{print $1 * 8}' 2>/dev/null`
DSL_SPEED=`sudo ctlmgr_ctl r sar  status/${DSL}`

echo ${TRAFFIC} ${DSL_SPEED} | awk '{printf"%.0f\n", $1 / ($2 * 10)}' 2>/dev/null

Nach einiger Tests bin ich davon überzeugt das mein früherer umständliches Skript genauerer Daten abgibt...
Aber eigentlich ist das auch nicht ganz wichtig... Ich will nur wissen ob da etwas passiert was ich lösen soll....
Portabilität ist wichtiger...


sudo reicht....

Die scripts die beziehung haben auf sip kann man fast nicht mit etwas algemeines in Zabbix machen...
Dann werden die berechnungen in Zabbix sehr umständlich... Auch sind die scripts ganz komfortabel beim abfragen auf der CLI

Ich habe jetzt für mein eigenes Teil dieses in make/zabbix/Config.in

Code:
config FREETZ_PACKAGE_ZABBIX_AGENTD_SUPPORT
        bool "agentd support"
        depends on FREETZ_PACKAGE_ZABBIX_agentd
        select FREETZ_PACKAGE_ZABBIX_AGENTD_CGI

        select FREETZ_REMOVE_AHA                if FREETZ_AVM_HAS_AHA
        select FREETZ_REMOVE_FHEM               if FREETZ_AVM_HAS_FHEM

        select FREETZ_PACKAGE_AVM_FIREWALL      if !FREETZ_AVM_HAS_AR7CFG_V12_MIN
        select FREETZ_PACKAGE_AVM_FORWARDING    if FREETZ_AVM_HAS_AR7CFG_V12_MIN
        select FREETZ_REPLACE_KERNEL            if FREETZ_REPLACE_KERNEL_AVAILABLE
        select FREETZ_PACKAGE_DROPBEAR
        select FREETZ_PACKAGE_SUDO
        select FREETZ_ADD_ETCSERVICES
        select FREETZ_REPLACE_BUSYBOX
        select FREETZ_BUSYBOX_MD5SUM
        select FREETZ_BUSYBOX_FEATURE_SUID_CONFIG
        select FREETZ_BUSYBOX_NETSTAT
        select FREETZ_BUSYBOX_FEATURE_NETSTAT_WIDE
        select FREETZ_BUSYBOX_FEATURE_NETSTAT_PRG
        select FREETZ_BUSYBOX_AWK
        select FREETZ_BUSYBOX_FEATURE_DATE_NANO
        select FREETZ_BUSYBOX_MKTEMP
        default n
        help
                Zabbix agent support files.

Beim 16MB Modelle wurde ich gerne die AHA und FHEM raus. Weisst du welches 'if' ich dafür benötige?
Es ist nur um Raum zu sparen....
 
Zuletzt bearbeitet:
Auch dein Skript kann ich eleganter machen...
Aber klar, ich fand das auch nur "eleganter", nicht "am elegantesten" ;-), ganz sicher geht es immer besser, einfacher und eleganter. Ich kann z.B. (wie du siehst) kein awk.

Du gibts -1 züruck bei ein Fehler, aber ich wurde nichts geben...
Das war nur für mich. Ich find es besser, am Rückgabewert einen Fehler zu erkennen.
Bei einer fehlgeschlagenem Abfrage, die auch im "Normalfall" "0" zurückzugeben könnte, weiß ich nicht, ob das ein "echter" Wert ist. Aber wenn Zabbix damit klar kommt...

Wich schon geschrieben, ich wollte Anregungen geben und benötige Feedback, damit das in ein Paket wandern kann.

o.k., da bin ich schon dran. Die aktuelle Version (1.8.10p2) macht bei mir noch Probleme, aber die letzte 1.7-er Version sollte reichen.
Kommt die Tage.

Die scripts die beziehung haben auf sip kann man fast nicht mit etwas algemeines in Zabbix machen...
Ja, da fand ich nur das "feste" Durchsuchen von 10 SIP Einträgen etwas unglücklich. Mein Vorschlag dabei war auf "ctlmgr_ctl r sip settings/sip/count" zurückzugreifen.
Das spart bei weniger als 10 und geht auch bei mehr ;-)

Auch sind die scripts ganz komfortabel beim abfragen auf der CLI
Klar, aber ob ich nun "sip.active" oder "meinscript sip_active" eingebe, finde ich persönlich nicht so dramatisch.
Das werden wir aber nicht endgültig auflösen können, für das Paket würde ich eine flexible Lösung suchen, bei der dieses Skript (oder auch mehrere) editierbar sind. Vielleicht fällt mir noch was dazu ein.

Ich habe jetzt für mein eigenes Teil dieses in make/zabbix/Config.in

Auch das finde ich (sorry) nicht so toll, wenn ein Paket mir plötzlich Dinge aus der Firmware löscht. Es mag ja sein, dass dieses Paket für dich einige Wichtigkeit hat, aber "zabbix" kann nicht der Maßstab für alle Freetz-Einstellungen sein ;-)

Meine Meinung nach gut:
- Wählen bestimmter sinnvoller Busybox-Apps

Meine Meinung nach ungut, weil es in keiner direkten Beziehung zu dem Paket steht:
- Remove von AHA/FEM
- Firewall oder Forwarding anwählen
- Replace Kernel
- Dropbear wählen

Diese Dinge müsstest du schon "von Hand" anwählen, die kommen sicher nicht in ein Paket.

Für dich selbst kannst du natürlich bauen, was du willst.
Beim 16MB Modelle wurde ich gerne die AHA und FHEM raus. Weisst du welches 'if' ich dafür benötige?
Es ist nur um Raum zu sparen....
Freetz sucht sich die Größe aus dem var/install file, ich kenne keine Variable, die das im Menu für alle Boxen zur Verfügung stellte
 
Ich verstehe das so etwas nicht im algemeine geht, aber ich have mehrere Modelle und wenn ich zum Beispiel ein image mache für ein 7270 und danach für ein 7390 dan ist "remove AHA" und "remove FHEM" nicht mehr selektiert und wird die image zu gross...

Mit die firewall dasselbe aber dan bemerke ich das zu spät und habe ich ein image womit ich unmöglich ein forward nach die Fritzbox selber machen kann... (da gibt es ein Beziehung zwischen firewall und Zabbix, aber dieser gehört eigentlich zum Zabbix agent...)

Ich wurde gerne wissen wie man die Sachen die ich jetzt im fwmod_custom mache (chmod usw...) in make file mache.

Beim SIP habe ich bemerkt das es nicht immer sequentiell läuft. Vielleicht ein bug beim AVM?

Hasst du vielleicht ein bessere Quelle zum abfragen ctrlmgr?
Ich habe nach count gesucht damals (denke ich)...

Heute war wieder etwas Los mit unsere SIP-provider und die scripts haben schon wieder ihr Wert gezeigt....

Darf ich dir nochmals danken für die Muhe. Ich bin ganz froh das jetzt Zabbix 2.2 mit webif integriert ist und ich mein teil jetzt etwas struktureller machen kann...
 
Zuletzt bearbeitet:
Du kannst die Configs ja unter einem "schlauen" Namen abspeichern und dann wieder laden, wenn es wieder die gleiche Box ist.
Firewall usw. sind ja nur einmal nötig, um Forwardings auf die Box selbst einzustellen und trotzdem wählen auch andere Progamme das nicht, sondern wer es braucht, wählt es ;-).

Die Frage mit dem SIP hab ich nicht ganz verstanden :confused:

Ansonsten: Hier mal mein sudo-Paket. Das registiert auch gleich eine "sudoers"-Datei, so dass der Part schonmal "weg" kann.
Wenn du das mal testen könntest ...
 

Anhänge

  • sudo_1.7.10.tgz
    1.7 KB · Aufrufe: 1
Ich habe kein ROM geflashed, nur ein "make"
Mein fwmod_custom erwartete ein /etc/sudoers Datei und ein /etc/sudoers.d folder
Ich weiss nicht ob dieser /etc/sudoers im ende da ist...
ich denke eigentlich schon....

Ist dort dieser linie in?

Code:
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

Dieser /etc/sudoers.d muss ein Folder sein die beschreibbar sein muss, aber nur für root.
Ich muss jetzt auch herausfinden wie ich dort ein Datei bekomme /etc/sudoers.d/zabbix mit ein webif wie die zabbix.include...


Ich habe dort jetzt ein uneditierbare Datei
Dieser wird nur gemacht wenn ich die zabbix_agentd-support selektiere...
# cat /etc/sudoers.d/zabbix
Code:
zabbix ALL=(ALL) NOPASSWD: /bin/netstat
zabbix ALL=(ALL) NOPASSWD: /usr/bin/tcpdump
zabbix ALL=(ALL) NOPASSWD: /bin/grep
zabbix ALL=(ALL) NOPASSWD: /sbin/ifconfig
zabbix ALL=(ALL) NOPASSWD: /bin/ping
zabbix ALL=(ALL) NOPASSWD: /sbin/adsl.saturation
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.info
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.active
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.flawed
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.configured
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.reachable
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.reachability
zabbix ALL=(ALL) NOPASSWD: /usr/bin/ctlmgr_ctl
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.