一,首先配置防火墙
1,添加zabbix 服务端的端口,如下配置:
<code>[root@AppServerB conf]</code><code># vi /etc/sysconfig/iptables</code>
<code> </code>
<code>-A INPUT -p udp --dport 10051 -m state --state NEW,ESTABLISHED -j ACCEPT</code>
<code>-A INPUT -p tcp -m tcp --dport 18091 -m state --state NEW,ESTABLISHED -j ACCEPT</code>
<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT</code>
<code># Generated by iptables-save v1.4.7 on Fri May 22 16:42:47 2015</code>
<code>*filter</code>
<code>:INPUT ACCEPT [0:0]</code>
<code>:FORWARD ACCEPT [0:0]</code>
<code>:OUTPUT ACCEPT [312404188:85274465529]</code>
<code>-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</code>
<code>-A INPUT -p icmp -j ACCEPT</code>
<code>-A INPUT -p udp --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT</code>
<code>-A INPUT -p udp --dport 161 -m state --state NEW,ESTABLISHED -j ACCEPT</code>
<code>-A INPUT -s 192.168.1.244 -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT</code>
<code>-A INPUT -s 192.168.1.244 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT</code>
<code>(只添加192.168.1.244服务器的访问)</code>
2,重启防火墙,使配置生效。
<code>[root@AppServerB conf]</code><code># service iptables restart</code>
<code>iptables: Setting chains to policy ACCEPT: filter [ OK ]</code>
<code>iptables: Flushing firewall rules: [ OK ]</code>
<code>iptables: Unloading modules: [ OK ]</code>
<code>iptables: Applying firewall rules: [ OK ]</code>
<code>[root@AppServerB conf]</code><code># service iptables status</code>
<code>Table: filter</code>
<code>Chain INPUT (policy ACCEPT)</code>
<code>num target prot opt </code><code>source</code> <code>destination </code>
<code>1 ACCEPT all -- 0.0.0.0</code><code>/0</code> <code>0.0.0.0</code><code>/0</code> <code>state RELATED,ESTABLISHED </code>
<code>2 ACCEPT icmp -- 0.0.0.0</code><code>/0</code> <code>0.0.0.0</code><code>/0</code>
<code>3 ACCEPT udp -- 0.0.0.0</code><code>/0</code> <code>0.0.0.0</code><code>/0</code> <code>udp dpt:123 state NEW,ESTABLISHED </code>
<code>4 ACCEPT udp -- 0.0.0.0</code><code>/0</code> <code>0.0.0.0</code><code>/0</code> <code>udp dpt:161 state NEW,ESTABLISHED </code>
<code>5 ACCEPT udp -- 192.168.1.244 0.0.0.0</code><code>/0</code> <code>state NEW udp dpts:10050:10051 </code>
<code>6 ACCEPT tcp -- 192.168.1.244 0.0.0.0</code><code>/0</code> <code>state NEW tcp dpts:10050:10051</code>
注意,如果防火墙关闭的话,以上步骤可以省略。
二,安装zabbix_agentd的步骤及方法:
方法一:直接从官网上下载安装
1.1,安装zabbix_agentd需要从官网上下载相对应的软件,http://www.zabbix.com/download2.php
我使用的是2.0.8
1.2,把下载的包上传到所加的linux服务器上。我上传的路径是/tmp/install/
<code>[root@AppServerB zabbix_agent]</code><code># ll /tmp/install/</code>
<code>total 452</code>
<code>-rw-r--r--. 1 root root 178068 Aug 25 12:47 net-snmp-utils-5.5-49.el6_5.3.x86_64.rpm</code>
<code>-rw-r--r--. 1 root root 279646 Sep 11 13:10 zabbix_agents_2.0.8.linux2_6.amd64.</code><code>tar</code><code>.gz</code>
1.3,创建zabbix用户和组:
<code>[root@AppServerA conf]</code><code># groupadd zabbix</code>
<code>[root@AppServerA conf]</code><code># useradd -g zabbix zabbix</code>
1.4,解压下载的软件包:
<code>[root@AppServerB install]# tar zxvf zabbix_agents_2.0.8.linux2_6.amd64.tar.gz -C /usr/local/zabbix_agent</code>
<code>sbin/zabbix_agent</code>
<code>sbin/zabbix_agentd</code>
<code>bin/zabbix_get</code>
<code>bin/zabbix_sender</code>
<code>conf/zabbix_agent.conf</code>
<code>conf/zabbix_agentd.conf</code>
<code>conf/zabbix_agentd/userparameter_examples.conf</code>
<code>conf/zabbix_agentd/userparameter_mysql.conf</code>
方法二:通源码编译安装,具体如下:
2.1,添加用户群组
<code>[root@server98 zabbix-3.4.3]</code><code># groupadd zabbix</code>
<code>[root@server98 zabbix-3.4.3]</code><code># useradd -g zabbix zabbix</code>
<code>[root@server98 zabbix-3.4.3]</code><code># tail -1 /etc/passwd</code>
<code>zabbix:x:1000:1000::</code><code>/home/zabbix</code><code>:</code><code>/bin/bash</code>
2.2,解压安装包,并编译安装
<code>root@server98 tmp]</code><code># tar xf zabbix-3.4.3.tar.gz </code>
<code>[root@server98 tmp]</code><code># cd zabbix-3.4.3</code>
<code>[root@server98 zabbix-3.4.3]</code><code># ./configure --prefix=/usr/local/zabbix --enable-agent</code>
<code>[root@server98 zabbix-3.4.3]</code><code># make install</code>
三,zabbix_agent相关配置
1,编辑解压出来的zabbix_agentd.conf文件,修改下面的参数:
<code>Hostname=本机名 </code><code>//</code><code>在本机上用</code><code>hostname</code><code>查看的结果必须和服务端添加的相同</code>
<code>ServerActive=192.168.99.99 </code><code>//</code><code>服务端的ip</code>
<code>Server=Zabbix Server IP </code><code>//zabbix</code><code>服务器的ip</code>
<code>LogFile=本机agentd日志保存文件</code>
<code>SourceIP=本机IP</code>
<code>ListenPort=10050</code>
2,修改/etc/services增加服务器的端口号:
<code>[root@AppServerB conf]</code><code># cat >> /etc/services </code>
<code>zabbix-agent 10050</code><code>/tcp</code> <code>Zabbix Agent</code>
<code>zabbix-agent 10050</code><code>/udp</code> <code>Zabbix Agent</code>
<code>zabbix-trapper 10051</code><code>/tcp</code> <code>Zabbix Trapper</code>
<code>zabbix-trapper 10051</code><code>/udp</code> <code>Zabbix Trapper</code>
<code>EOF</code>
Ctrl+c 直接退出。
3,启动客户端:
<code>[root@AppServerB conf]</code><code>#</code>
<code> </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agent</code>
查看服务是否启动:
<code>[root@AppServerB conf]</code><code># ps -ef|grep zabbix</code>
<code>zabbix 6640 1 0 13:45 ? 00:00:00 </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agentd</code><code>.conf</code>
<code>zabbix 6641 6640 0 13:45 ? 00:00:00 </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agentd</code><code>.conf</code>
<code>zabbix 6642 6640 0 13:45 ? 00:00:00 </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agentd</code><code>.conf</code>
<code>zabbix 6643 6640 0 13:45 ? 00:00:00 </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agentd</code><code>.conf</code>
<code>zabbix 6644 6640 0 13:45 ? 00:00:00 </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agentd</code><code>.conf</code>
<code>zabbix 6645 6640 0 13:45 ? 00:00:00 </code><code>/usr/local/zabbix_agent/sbin/zabbix_agentd</code> <code>-c </code><code>/usr/local/zabbix_agent/conf/zabbix_agentd</code><code>.conf</code>
<code>root 6659 3755 0 13:45 pts</code><code>/0</code> <code>00:00:00 </code><code>grep</code> <code>zabbix</code>
4,在服务端通过zabbix_agent工具进行和客户端进行测试。
<code>[root@localhost ~]</code><code># zabbix_get -s192.168.1.250 -p10050 -k"system.uptime" </code>
<code>1980619</code>
返回数值,说明配置正确。
5,把zabbix_agentd配置成服务,把以下脚本考到/etc/init.d/zabbix_agentd下:
<code>[root@server98 zabbix-3.4.3]</code><code># cp /tmp/zabbix-3.4.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/</code>
<code>[root@server98 init.d]</code><code># chmod +x zabbix_agentd </code>
<code>[root@server98 init.d]</code><code># ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/</code>
<code>[root@server98 init.d]</code><code># ln -s /usr/local/zabbix/bin/zabbix_* /usr/local/bin/</code>
<code>[root@server98 init.d]</code><code># chkconfig --add zabbix_agentd</code>
<code>[root@server98 init.d]</code><code># /etc/init.d/zabbix_agentd start</code>
<code>Starting zabbix_agentd (via systemctl): [ 确定 ]</code>
<code>[root@server98 init.d]</code><code># ps -ef|grep zabbix</code>
<code>zabbix 29301 1 0 15:28 ? 00:00:00 </code><code>/usr/local/sbin/zabbix_agentd</code>
<code>zabbix 29302 29301 0 15:28 ? 00:00:00 </code><code>/usr/local/sbin/zabbix_agentd</code><code>: collector [idle 1 sec]</code>
<code>zabbix 29303 29301 0 15:28 ? 00:00:00 </code><code>/usr/local/sbin/zabbix_agentd</code><code>: listener </code><code>#1 [waiting for connection]</code>
<code>zabbix 29304 29301 0 15:28 ? 00:00:00 </code><code>/usr/local/sbin/zabbix_agentd</code><code>: listener </code><code>#2 [waiting for connection]</code>
<code>zabbix 29305 29301 0 15:28 ? 00:00:00 </code><code>/usr/local/sbin/zabbix_agentd</code><code>: listener </code><code>#3 [waiting for connection]</code>
<code>zabbix 29306 29301 0 15:28 ? 00:00:00 </code><code>/usr/local/sbin/zabbix_agentd</code><code>: active checks </code><code>#1 [idle 1 sec]</code>
<code>root 29308 11763 0 15:28 pts</code><code>/1</code> <code>00:00:00 </code><code>grep</code> <code>--color=auto zabbix</code>
一下是备用脚本2.x版本的,3.x版本的详见附件。
<code>#!/bin/bash</code>
<code>#</code>
<code># chkconfig: - 55 45</code>
<code># description: zabbix_agentd </code>
<code># probe: false</code>
<code># Source function library.</code>
<code>. </code><code>/etc/rc</code><code>.d</code><code>/init</code><code>.d</code><code>/functions</code>
<code># Source networking configuration.</code>
<code>. </code><code>/etc/sysconfig/network</code>
<code># Check that networking is up. If you are running without a network, comment this out.</code>
<code>[ </code><code>"${NETWORKING}"</code> <code>= </code><code>"no"</code> <code>] && </code><code>exit</code> <code>0</code>
<code>RETVAL=0</code>
<code>progdir=</code><code>"/usr/local/zabbix/sbin/"</code>
<code>prog=</code><code>"zabbix_agentd"</code>
<code>FULLPATH=$progdir/$prog</code>
<code>CONF_FILE=</code><code>"/usr/local/zabbix/conf/zabbix_agentd.conf"</code>
<code>action $</code><code>"starting $prog: "</code> <code>$FULLPATH -c $CONF_FILE</code>
<code>start() {</code>
<code> </code><code># Start daemons.</code>
<code> </code><code>if</code> <code>[ -n </code><code>"`/sbin/pidof $prog`"</code> <code>]; </code><code>then</code>
<code> </code><code>echo</code> <code>-n </code><code>"$prog: already running"</code>
<code> </code><code>failure $</code><code>"$prog start"</code>
<code> </code><code>echo</code>
<code> </code><code>return</code> <code>1</code>
<code> </code><code>fi</code>
<code> </code><code>echo</code> <code>-n $</code><code>"Starting $prog: "</code>
<code> </code><code># we can't seem to use daemon here - emulate its functionality</code>
<code> </code><code>su</code> <code>-c $progdir$prog - $USER </code>
<code> </code><code>RETVAL=$?</code>
<code> </code><code>usleep 100000</code>
<code> </code><code>if</code> <code>[ -z </code><code>"`/sbin/pidof $progdir$prog`"</code> <code>]; </code><code>then</code>
<code> </code><code># The child processes have died after fork()ing, e.g.</code>
<code> </code><code># because of a broken config file</code>
<code> </code><code>RETVAL=1</code>
<code> </code><code>[ $RETVAL -</code><code>ne</code> <code>0 ] && failure $</code><code>"$prog startup"</code>
<code> </code><code>[ $RETVAL -</code><code>eq</code> <code>0 ] && </code><code>touch</code> <code>/var/lock/subsys/</code><code>$prog && success $</code><code>"$prog startup"</code>
<code> </code><code>echo</code>
<code> </code><code>return</code> <code>$RETVAL</code>
<code>}</code>
<code>stop() {</code>
<code> </code><code>RETVAL=0</code>
<code> </code><code>pid=</code>
<code> </code><code># Stop daemons.</code>
<code> </code><code>echo</code> <code>-n $</code><code>"Stopping $prog: "</code>
<code> </code><code>pid=`</code><code>/sbin/pidof</code> <code>-s $prog`</code>
<code> </code><code>if</code> <code>[ -n </code><code>"$pid"</code> <code>]; </code><code>then</code>
<code> </code><code>kill</code> <code>-TERM $pid</code>
<code> </code><code>else</code>
<code> </code><code>failure $</code><code>"$prog stop"</code>
<code> </code><code>echo</code>
<code> </code><code>return</code> <code>1</code>
<code> </code><code>[ $RETVAL -</code><code>ne</code> <code>0 ] && failure $</code><code>"$prog stop"</code>
<code> </code><code>[ $RETVAL -</code><code>eq</code> <code>0 ] && </code><code>rm</code> <code>-f </code><code>/var/lock/subsys/</code><code>$prog && success $</code><code>"$prog stop"</code>
<code>restart() {</code>
<code> </code><code>stop</code>
<code># wait for forked daemons to die</code>
<code> </code><code>usleep 1000000</code>
<code> </code><code>start</code>
<code># See how we were called.</code>
<code>case</code> <code>"$1"</code> <code>in</code>
<code> </code><code>start)</code>
<code> </code><code>start</code>
<code> </code><code>;;</code>
<code> </code><code>stop)</code>
<code> </code><code>stop</code>
<code> </code><code>restart)</code>
<code> </code><code>restart</code>
<code> </code><code>condrestart)</code>
<code> </code><code>[ -f </code><code>/var/lock/subsys/</code><code>$prog ] && restart</code>
<code> </code><code>*)</code>
<code> </code><code>echo</code> <code>$</code><code>"Usage: $0 {start|stop|restart|condrestart}"</code>
<code> </code><code>exit</code> <code>1</code>
<code>esac</code>
<code>exit</code> <code>$?</code>
6,给zabbix_agentd添加可执行的的权限并添加到到服务自启动。
[root@AppServerA zabbix]# chmod +x /etc/init.d/zabbix_agented
[root@AppServerA zabbix]# chkconfig --add zabbix_agentd
[root@AppServerA init.d]# chkconfig zabbix_agented on
本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1693795