分布式监控系统Zabbix-3.0.3-完整安装记录(1)
分布式监控系统Zabbix-3.0.3的安装记录
环境说明
zabbix-server:192.168.1.30 #zabbix的服务端(若要监控本机,则需要配置本机的Zabbix agent,下面会提到)
zabbix-agent:192.168.1.7 #zabbix的客户端(被监控端,需要配置Zabbix agent,下面会提到)
一、zabbix-server端的操作记录(192.168.1.30 )
zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均是/usr/local)
创建Zabbix运行的用户:
[[email protected] ~]# groupadd zabbix
[[email protected] ~]# useradd -g zabbix zabbix
安装libcurl和net-snmp:
[[email protected] ~]# yum install net-snmp-devel curl-devel
安装Fping:
[[email protected] ~]# cd /usr/local/src
[[email protected] src]# wget -c http://fping.org/dist/fping-3.4.tar.gz
[[email protected] src]# tar zxvf fping-3.4.tar.gz
[[email protected] src]# cd fping-3.4
[[email protected] fping-3.4]# ./configure
[[email protected] fping-3.4]# make && make install
[[email protected] fping-3.4]# chown root:zabbix /usr/local/sbin/fping
[[email protected] fping-3.4]# chmod 4710 /usr/local/sbin/fping
安装Zabbix Server:
[[email protected] ~]# cd /usr/local/src
[[email protected] src]# wget -c http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz
[[email protected] src]# tar zxvf zabbix-3.0.3.tar.gz
[[email protected] src]# cd zabbix-3.0.3
[[email protected] zabbix-3.0.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl
注意:编译时最好带上--enable-java这个参数,方便后续监控tomcat程序所用。
[[email protected] zabbix-3.0.3]# make && make install
Zabbix Server配置与启动
创建Zabbix数据库和MySQL用户:
[[email protected] ~]# mysql -p
........
mysql> create schema zabbix character set utf8;
Query OK, 1 row affected (0.05 sec)
mysql> create user 'zabbix'@'%' identified by '123456';
Query OK, 0 rows affected (0.16 sec)
mysql> grant all on zabbix.* to 'zabbix'@'%';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
导入Zabbix初始数据:
切换到zabbix的解压目录下,这里是/usr/local/src目录下
[[email protected] ~]# cd /usr/local/src
[[email protected] src]# cd zabbix-3.0.3
[[email protected] zabbix-3.0.3]#cd database/mysql/
[[email protected] mysql]# pwd
/usr/local/src/zabbix-3.0.3/database/mysql
[[email protected] mysql]# ls
data.sql images.sql schema.sql
[[email protected] mysql]# mysql -uroot -p #登陆mysql,进行zabbix初始数据导入(记得要先"use zabbix"库之后再导入)
mysql> set sql_log_bin=0;
mysql> source ./schema.sql;
mysql> source ./images.sql;
mysql> source ./data.sql;
mysql> set sql_log_bin=1;
编辑/usr/local/zabbix/etc/zabbix_server.conf:
[[email protected] ~]#vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=192.168.1.30
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306
FpingLocation=/usr/local/sbin/fping
从安装目录拷贝zabbix_server脚本,并编辑:
[[email protected] ~]# cd /usr/local/src
[[email protected] src]# cd zabbix-3.0.3
[[email protected] zabbix-3.0.3]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
[[email protected] zabbix-3.0.3]# mkdir -p /usr/local/zabbix/logs
[[email protected] zabbix-3.0.3]# chown -R zabbix:zabbix /usr/local/zabbix
[[email protected] zabbix-3.0.3]# vim /etc/init.d/zabbix_server
[[email protected] zabbix-3.0.3]# cat /etc/init.d/zabbix_server
...
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
CONF_FILE="/usr/local/zabbix/etc/zabbix_server.conf"
...
start() {
...
daemon $ZABBIX_BIN -c $CONF_FILE
...
}
调整防火墙规则(开放端口10051):
[[email protected] ~]# vim /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
...
[[email protected] ~]# /etc/init.d/iptables restart
启动Zabbix Server:
[[email protected] ~]# service zabbix_server start #也可以直接/usr/local/zabbix/sbin/zabbix_server方式启动
Starting Zabbix Server: [ OK ]
停止Zabbix Server:
[[email protected] ~]# service zabbix_server stop
Stopping Zabbix Server: [ OK ]
配置开机自动启动:
[[email protected] ~]# chkconfig --add zabbix_server
[[email protected] ~]# chkconfig --level 35 zabbix_server on
Zabbix的Web前端
在安装目录将frontends拷贝到指定的web root:
[[email protected] ~]# mkdir -p /data/www/zabbix
[[email protected] ~]# cd /usr/local/src
[[email protected] src]# cd zabbix-3.0.3
[[email protected] zabbix-3.0.3]#cp -a frontends/php/* /data/www/zabbix/
[[email protected] zabbix-3.0.3]# chown -R www:www /data/www/zabbix
Nginx配置:
[[email protected] ~]# cat /usr/local/nginx/conf/vhost/zabbix.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
php.ini配置:
[[email protected] ~]# cat /usr/local/php5/etc/php.ini
...
memory_limit = 128M
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
session.auto_start = 0 ; //必须为0
mbstring.func_overload = 0
...
注:PHP需要至少开启扩展:gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
如下,查看是否包括了上面所提到的扩展模块
[[email protected] ~]# /usr/local/php5/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
[Zend Modules]
访问Web界面http://zabbix.zrwm.com,进行相关web配置,配置完成后使用默认用户admin(密码:zabbix)登陆即可.
在上面zabbix检索的时候可能出现的错误
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
如果登录zabbix后,出现下面报错
1 2 3 4 5 6 7 8 |
|
==========zabbix登录密码忘记了,重置密码==========
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
二、zabbix客户端的操作记录(192.168.1.7)
安装Zabbix,配置Zabbix agent:
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget -c wget -c http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz/download
[[email protected] src]# cd zabbix-3.0.3
[[email protected] zabbix-3.0.3]# ./configure --prefix=/usr/local/zabbix --enable-agent
[[email protected] zabbix-3.0.3]# make && make install
[[email protected] zabbix-3.0.3]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
配置zabbix_agentd:
[[email protected] ~]# groupadd zabbix
[[email protected] ~]# useradd -g zabbix zabbix
[[email protected] ~]# mkdir -p /usr/local/zabbix/logs
[[email protected] ~]# chown zabbix:zabbix -R /usr/local/zabbix/
[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
[[email protected] ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf
...
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.1.30
ListenPort=10050
ServerActive=192.168.1.30
Hostname=192.168.1.7 [#在192.168.1.7本机的/etc/hosts里做主机映射:“ip hostname”][也可以设置公网ip]
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
...
配置Zabbix Agent启动脚本:
[[email protected] ~]# cat /etc/init.d/zabbix_agentd
...
prog="Zabbix Agent"
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
CONF_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"
...
start() {
...
daemon $ZABBIX_BIN -c $CONF_FILE
...
}
...
开启防火墙端口10050:
[[email protected] ~]# cat /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
...
[[email protected] ~]# /etc/init.d/iptables restart
启动zabbix_agentd:
[[email protected] ~]# /etc/init.d/zabbix_agentd start
Starting Zabbix Agent: [ OK ]
配置开机自动启动:
[[email protected] ~]# chkconfig --add zabbix_agentd
[[email protected] ~]# chkconfig --level 35 zabbix_agentd on
测试下zabbix agent是否正常工作:
[[email protected] ~]# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf -t system.uptime
system.uptime [u|68301]
==========================zabbix客户机一键安装和配置的脚本==============================
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
-----------------------------------------------------------------------------------------------------------------------------
登录zabbix,先在“配置”-“主机”里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等.
注意:下图中的“主机名称”要和zabbix_agentd.conf文件中设置的“Hostname”后面的名称一致!
配置过一段时间后,观察下监控图效果出来了没:
------------------------------------------------------------------------
在zabbix界面中,默认要查看多个主机的监控数据时需要不停的切换。其实可以在一个页面中批量查看多个主机的监控项的数据,这就需要使用Screen方法(Screen 的方法是将每个item的graph放到一个屏幕上,即在聚合图形里选择要放在一个screen里的图形,事先创建一个拓扑图。注意选择磁盘空间监控项的图形时,图形样式调整“层积“显示),但是看起来不够明晰;最好是将各机器的同一item放到同一个graph里。比如一个Nginx的组里有10台机器,将这10台机器的内存使用率放到一个graph里,方便在测试时查看。
在zabbix的前端要创建此类的graph只能通过手工一个一个的加,不能创建此类的templates。在网上有批量创建Screen的针对API的python脚本。
-------------------------------------------------------------------------------------------------------------------------
zabbix监控获取数据的途径有简单检查,zabbix agent,snmp。可以通过zabbix agent获取客户机的cpu、内存、磁盘io等监控数据;但是对于交互机(打印机,路由器等网络设备)的监控就要用到snmp协议,snmp通过特定的oid值来获取对应的数据。交换机需要开启snmp协议,通过snmpwalk 可以抓取到数据就可以了(snmpwalk -v 2c -c public *.*.*.*)
------------------------------------------------------------------------------------------------------------------------
使用zabbix的ICMP Ping模版实现对客户端网络状态的监控
如上正确安装及配置fping,然后在服务端进行zabbix用户测试fping命令
[[email protected] ~]# /usr/local/sbin/fping www.baidu.com
www.baidu.com is alive //说明命令返回成功。
接着在zabbix监控界面里添加主机设置,并选择添加模版template icmp ping。然后点开这个模块,可以选择想要的监控项的图形,效果如下:
-----------------------------------------Zabbix监控项CPU Load数值与服务器上uptime的实际值不符合--------------------------------------
现象说明:
zabbix监控项cpu load的数值跟被监控机本地uptime显示的负载值对不上,前者数值小于后者。
产生原因:
现在服务器的cpu基本都是多核的,但zabbix监控项cpu load参数里默认显示的是一个核心的参数,
而不是总和,所以两者数值对不上。
解决办法:
"配置"->"模板"->"Template OS Linux"->"监控项"->"Processor load (1 min average per core)"
点开,将system.cpu.load[percpu,avg1]改为system.cpu.load[all,avg1],即将percpu改为all。
其余5 min和15 min的load监控项的改法一样!保存等几分钟即可显示。
-----------------------------------添加网络监控项的触发器(报警设置)--------------------------------
注意:
网络监控的默认单位是bps,监控报警一般看的是Mbps,需要转为为bps。比如超过8M报警,那触发器的值即为8*1024*1024=8388608
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************