【zabbix2.2以上命令构成】/usr/local/src
★zabbix_server:Zabbix服务端的核心程序,zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
★zabbix_agentd:以独立进程的方式来启动,对应的配置文件为zabbix_agentd.conf。客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等
zabbix_agent:用超级服务(xinetd)的方式来启动的,对应的配置文件为zabbix_agent.conf
zabbix_get:zabbix_get是一个数据获取测试命令,相当于snmp中的snmpwalk。通常在server或者proxy端执行获取远程客户端信息的命令。通常用于为用户排错。
例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。比如:zabbix_get -s121.42.157.96 -p10050 -k"system.uptime"
zabbix_sender:zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_proxy:zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix_java_gateway:zabbix2.0之后引入的一个功能。Zabbix的Java采集服务端,用于JMX的监控方式。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
安装注意:
MySQL:5.0.3或者以上,推荐使用InnoDB引擎(TTLSA推荐使用MySQL,开源免费资料多)
PHP:5.3.0或者以上,zabbix早期版本支持5.2,但是2.2版本只支持到5.3
如果你需要通过Java网关来监控你的Java进程,那么还需要增加其他软件
Interfaces:主机接口: 包含Agent, SNMP, JMX and IPMI
zabbix_server——10051,zabbix agent默认端口10050,JavaGateway的端口号10052, snmp 161,jmx 12345,IMPI 623
Items:是从主机里面获取的所有数据,通常情况下叫itme为监控项,item由key+参数组成,
监控项中需要获取cpu信息,则需要一个对应的监控key:system.cpu.load。如果是获取网卡流量,那么获取网卡这个监控项需要key:net.if.in或者net.if.out。
zabbix_agent.conf是用超级服务(xinetd)的方式来启动的,
zabbix_agentd.conf是以独立进程的方式来启动的.比如:service zabbix_agentd start就是使用这个配置文件
各版本“环境要求”
https://www.zabbix.com/documentation/2.2/manual/installation/requirements
安装包安装方法
CentOS 6.4下快速部署”Zabbix 2.4“ http://www.linuxidc.com/Linux/2014-11/109909.htm
service sendmail start
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
编译【zabbix安装说明】
wget http://ncu.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.11/zabbix-2.2.11.tar.gz
服务器、客户端、代理服务器都是从zabbix-2.2.2.tar.gz 解压安装,配置需要各自激活才make && make install安装
编译安装zabbix
# ./configure --prefix=/usr/local/zabbix \ //指定安装目录
--enable-server \ //安装zabbix server
--enable-proxy \ //安装 Zabbix Proxy
--enable-agent \ //安装 Zabbix Agent
--with-mysql=/usr/local/mysql/bin/mysql_config \ //使用 mysql 做数据库服务器
--with-net-snmp \ //支持 SNMP
--with-libcurl //支持 curl,用于 web 监控
# make && make install
服务器安装:./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-libcurl --with-libxml2
CentOS6X:./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc
# make && make install
客户端编译配置:./configure --prefix=/usr/local/zabbix --enable-agent
代理服务器编译:./configure --prefix=/usr/local/zabbix --enable-proxy
zabbix_agentd.conf客户端配置文件全部相同,其中ServerActive是客户端主动推送数据
zabbix升级方法:备份--》重新安装--》启动
官方安装手册:https://www.zabbix.com/documentation/2.2/manual/installation/install,不过最好加参数“--prefix=/usr/local/zabbix”
【scp [email protected]:/tmp/zabbix2.2.tar.gz /usr/local/src
useradd zabbix -s /sbin/nologin
tar -zxf zabbix2.2.tar.gz;cd zabbix-2.2.11
./configure --prefix=/usr/local/zabbix --enable-agent
make && make install
cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
sed -i ‘s/sbin/zabbix\/sbin/g‘ /etc/init.d/zabbix_agentd
sed -i ‘s/Server=127.0.0.1/Server=115.28.204.183/g‘ /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i ‘s/ServerActive=127.0.0.1/ServerActive=115.28.204.183/g‘ /usr/local/zabbix/etc/zabbix_agentd.conf
echo "zabbix-agent 10050/tcp # Zabbix Agent" >> /etc/services
echo "zabbix-agent 10050/udp # Zabbix Agent" >> /etc/services
service zabbix_agentd start
chkconfig zabbix_agentd on
-A RH-Firewall-1-INPUT -s 115.28.204.183 -j ACCEPT】
【zabbix配置问题】
出现问题要多看运行日志
less /tmp/zabbix_server.log
less /tmp/zabbix_agentd.log
1、添加被控主机没有模板
添加模板要select再点add之后点save,不可以跳过add
2、添加的主机可用性红色报警
查看zabbix_agentd.log日志,服务器/客户端配置zabbix_agentd.conf是否正确。telnet服务器zabbix_agentd 10051与客户端10050端口,查看是否防火墙导致。从zabbix server上拷贝一份zabbix_agentd.conf,这个conf文件是所有平台都通用的,注意serverIP 最好不要使用127.0.0.1,使用eth0|1的IP地址。
3、zabbix_agentd加入开机启动二选一
chkconfig zabbix_server on
echo ‘/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &‘ >>/etc/rc.local
4、★Zabbix服务器端开启邮箱告警
a> 首先WEB控制台上新建媒介类型:Administratror->Media type-->"create"
type->"script"
sendmail.sh
b> [[email protected] alertscripts]# cat sendmail.sh
#!/bin/sh
export zabbixemailto=$1
export zabbixsubject=$2
export zabbixbody=$3
#echo "$3" | mail -s "$2" $1
echo "$zabbixbody" | mail -s "$zabbixsubject" $zabbixemailto
c> [[email protected] alertscripts]# cat /etc/mail.rc
##使用外部邮箱发送报警邮件,注意必须先卸载内置的mailx软件,重新编译安装mailx
set [email protected] smtp=smtp.sina.com
set [email protected] smtp-auth-password=kxe620edfs623
set smtp-auth=login
d> 在zabbix_server.conf配置文件指定脚本所在路径
“AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts”
e> 动作配置,先不要停用内置的动作,测试能正常发送邮件了可以再来关闭
Configuration->Action->新建动作
注意:如果要修改动作,记得要点下update更新再保存。
笔记:
create user ‘zabbix‘@‘%‘ identified by ‘kee5ftrthrtzabbi‘;
grant all privileges on zabbix.* to [email protected] identified by ‘kee5wsezabbi‘;
zabbix web Admin werwertgrth12fg
==============================================
1、zabbix服务器报错:
4467:20151216:074418.434 [Z3001] connection to database ‘zabbix‘ failed: [2002] Can‘t connect to local MySQL server through socket ‘/data/mysql/mysql.sock‘ (13)
4467:20151216:074418.435 Database is down. Reconnecting in 10 seconds.
原因是数据库没有安装好
2、php.ini功能函数putenv需要开启(删除“putenv”即可)
disable_functions = eval,passthru,system,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,syslog,symlink,popen,putenv
3、开启mysql监控模板
cp /usr/local/src/zabbix-2.2.10/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d
vi /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name=‘$1‘;" | HO
ME=/var/lib/zabbix /usr/local/mysql/bin/mysql -N | awk ‘{print $$2}‘
##编译安装的mysql需要写绝对路径
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length
+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from i
nformation_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=‘$
1‘")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=‘$2‘");" | HOME=/var/lib/za
bbix mysql -N
echo ‘Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/‘ >>/usr/local/zabbix/etc/zabbix_agentd.conf
4、监控进程方法
#proc.mem[<name>,<user>,<mode>,<cmdline>]
Memory used by a process. <name> process name (default: "all processes"). <user> user name (default: "all users"). <mode> possible values: avg, max, min, sum (default). <cmdline> filter by #command line (supports regex). Example: proc.mem[,root].
#proc.num[<name>,<user>,<state>,<cmdline>]
Number of processes. <name> and <user> same as in proc.mem item. <state> all (default), run, sleep, zomb. <cmdline> filter by command line (supports regex). Example: proc.num[apache2,www-data]. #On Windows, only <name> and <user> are supported.
#proc_info[<process>,<attribute>,<type>]
Different information about specific process(es)
比如要添加监控项目iker.jar
键值:proc.num[,root,all,iker.jar]
应用集:processes