PDA

View Full Version : telnet to zabbix_agentd


MRG
15-02-2006, 01:55
I open a telnet connect to port 10050 of my zabbix agentd server and i sent a memory[free] (or anything for that matter) and get nothing in return. I have logs set on debug and it is not showing any errors, just the usual cycle of things. BTW - this agent is not reporting anything...any ideas?

elkor
15-02-2006, 01:57
I must confess, I haven't bothered to sniff the protocol yet :o

is it a simple thing alexei? or a binary beast?

MRG
15-02-2006, 02:01
Elkor,

could this have some kind of issue to do with name resolution? I have defined the ips/names on both servers in the /etc/hosts

I just can't figure out why zabbix_agentd wont report anything at all. Like I said, the server is working because the agent on there is reporting fine.

MRG
15-02-2006, 02:13
also...

When the agent is checking for active checks on the server it is getting a ZBX_EOF .... while would it not be getting the list of checks?

elkor
15-02-2006, 02:17
do you have items defined for the host on the zabbix server?

what are the type of those items?

I'm thinking the protocol between server-> agent might be a little more complicated.. such as sending a code for the check type or something (to cut down on bandwidth)

MRG
15-02-2006, 02:25
Lol. in zabbix_agentd.conf the Hostname= parameter is kind of unclear. I was under the impression it was for the hostname of the server, not the agent. I didn't realize that it was actually the agent's hostname until I sniffed the SQL query on the server when it was performing the active check.

All is good :)

And I must say Zabbix is an amazing piece of work! Hands down better than some of the other pieces of garbage on the market like that hacked together bigsister.. thanks guys!

elkor
15-02-2006, 03:01
glad you got it running!

Markus
16-02-2006, 00:26
Initial testing showed that the Zabbix Server to Agent protocol for "passive" checks doesn't seem particularly complicated: The server simply sends the item key followed by '\n' to the agent and the agent replies with the current value. It's all in ASCII. It took me about ten minutes to write a little example Python program to query the 'agent.version'.

Markus

elkor
16-02-2006, 01:17
thanks for the info!

I was going to say that I was surprised that it was so simplistic but in retrospect I'm not. granted.. it's so much easier this way.

I'm so used to dealing with proprietary protocols and such (I worked for dow jones and telerate for years troubleshooting custom protocol glitches) that I immediatly think that anything with less than 255 distinct values (primary keys) can be sent in a single byte as a bitmap with only the variable information being sent in ascii.

it may sound silly but when you save even 10 bytes per transmission (and it would arguably be much more given the new syntax) and you make 30 checks per minute on 200 servers you are talking a fair amount of bandwidth.

bah.. gigabit making everything sloppy ;)