专栏首页散尽浮华分布式监控系统Zabbix-3.0.3-完整安装记录(1)

分布式监控系统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运行的用户: [root@Zabbix-server ~]# groupadd zabbix [root@Zabbix-server ~]# useradd -g zabbix zabbix

安装libcurl和net-snmp: [root@Zabbix-server ~]# yum install net-snmp-devel curl-devel

安装Fping: [root@Zabbix-server ~]# cd /usr/local/src [root@Zabbix-server src]# wget -c http://fping.org/dist/fping-3.4.tar.gz [root@Zabbix-server src]# tar zxvf fping-3.4.tar.gz [root@Zabbix-server src]# cd fping-3.4 [root@Zabbix-server fping-3.4]# ./configure [root@Zabbix-server fping-3.4]# make && make install [root@Zabbix-server fping-3.4]# chown root:zabbix /usr/local/sbin/fping [root@Zabbix-server fping-3.4]# chmod 4710 /usr/local/sbin/fping

安装Zabbix Server: [root@Zabbix-server ~]# cd /usr/local/src [root@Zabbix-server src]# wget -c http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz [root@Zabbix-server src]# tar zxvf zabbix-3.0.3.tar.gz [root@Zabbix-server src]# cd zabbix-3.0.3 [root@Zabbix-server 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程序所用。 [root@Zabbix-server zabbix-3.0.3]# make && make install

Zabbix Server配置与启动 创建Zabbix数据库和MySQL用户: [root@Zabbix-server ~]# 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目录下 [root@Zabbix-server ~]# cd /usr/local/src [root@Zabbix-server src]# cd zabbix-3.0.3 [root@Zabbix-server zabbix-3.0.3]#cd database/mysql/ [root@Zabbix-server mysql]# pwd /usr/local/src/zabbix-3.0.3/database/mysql [root@Zabbix-server mysql]# ls data.sql images.sql schema.sql [root@Zabbix-server mysql]# mysql -uroot -p       #登陆mysql,进行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: [root@Zabbix-server ~]#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脚本,并编辑: [root@Zabbix-server ~]# cd /usr/local/src [root@Zabbix-server src]# cd zabbix-3.0.3 [root@Zabbix-server zabbix-3.0.3]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/ [root@Zabbix-server zabbix-3.0.3]# mkdir -p /usr/local/zabbix/logs [root@Zabbix-server zabbix-3.0.3]# chown -R zabbix:zabbix /usr/local/zabbix [root@Zabbix-server zabbix-3.0.3]# vim /etc/init.d/zabbix_server [root@Zabbix-server 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): [root@Zabbix-server ~]# vim /etc/sysconfig/iptables ... -A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT ...

[root@Zabbix-server ~]# /etc/init.d/iptables restart

启动Zabbix Server: [root@Zabbix-server ~]# service zabbix_server start                  #也可以直接/usr/local/zabbix/sbin/zabbix_server方式启动 Starting Zabbix Server: [ OK ]

停止Zabbix Server: [root@Zabbix-server ~]# service zabbix_server stop Stopping Zabbix Server: [ OK ]

配置开机自动启动: [root@Zabbix-server ~]# chkconfig --add zabbix_server [root@Zabbix-server ~]# chkconfig --level 35 zabbix_server on

Zabbix的Web前端 在安装目录将frontends拷贝到指定的web root: [root@Zabbix-server ~]# mkdir -p /data/www/zabbix [root@Zabbix-server ~]# cd /usr/local/src [root@Zabbix-server src]# cd zabbix-3.0.3 [root@Zabbix-server zabbix-3.0.3]#cp -a frontends/php/* /data/www/zabbix/ [root@Zabbix-server zabbix-3.0.3]# chown -R www:www /data/www/zabbix

Nginx配置: [root@Zabbix-server ~]# cat /usr/local/nginx/conf/vhost/zabbix.conf

server {
        listen       80;
        server_name  zabbix.zrwm.com;


        location / {
            root   /data/www/zabbix;
            index  index.php index.html index.htm ;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        
        location ~ \.php$ {
            root           /data/www/zabbix;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

       
    }

php.ini配置: [root@Zabbix-server ~]# 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 如下,查看是否包括了上面所提到的扩展模块 [root@Zabbix-server ~]# /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)PHP option "max_execution_time"	120	300	failed
# vim /data/php/lib/php.ini 
max_execution_time = 300    //修改为300

然后重启nginx(若是apache+php,就重启apache)

2)PHP bcmath	off		failed
解决办法:安装php的bcmath扩展
# yum install *bcmath* --skip-broken
# cd /data/software/php-5.6.30/ext/bcmath/
# /data/php/bin/phize
# ./configure --with-php-config=/data/php/bin/php-config
# make && make install
# vim /data/php/lib/php.ini     添加下面内容
.....
extension=/data/php/lib/php/extensions/no-debug-zts-20131226/bcmath.so

然后重启php(若是apache+php,就重启apache)

3)about always-populate-raw-post-data must be set -1 的问题:
   PHP option "always_populate_raw_post_data"	on	off	failed
解决办法:
# vim /data/vhosts/zabbix/include/classes/setup/CFrontendSetup.php      添加下面这一行
.......
        public function checkPhpAlwaysPopulateRawPostData() {
                $current = ini_get('always_populate_raw_post_data');
                $current = -1;                                             //添加这一行内容

                return [
                        'name' => _s('PHP option "%1$s"', 'always_populate_raw_post_data'),
                        'current' => ($current != -1) ? _('on') : _('off'),
                        'required' => _('off'),
                        'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
                        'error' => _s('PHP option "%1$s" must be set to "%2$s"', 'always_populate_raw_post_data', -1)
                ];

二、zabbix客户端的操作记录(192.168.1.7)

安装Zabbix,配置Zabbix agent: [root@bastion-IDC ~]# cd /usr/local/src/ [root@bastion-IDC src]# wget -c wget -c http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz/download [root@bastion-IDC src]# cd zabbix-3.0.3 [root@bastion-IDC zabbix-3.0.3]# ./configure --prefix=/usr/local/zabbix --enable-agent [root@bastion-IDC zabbix-3.0.3]# make && make install

[root@bastion-IDC zabbix-3.0.3]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

配置zabbix_agentd: [root@bastion-IDC ~]# groupadd zabbix [root@bastion-IDC ~]# useradd -g zabbix zabbix [root@bastion-IDC ~]# mkdir -p /usr/local/zabbix/logs [root@bastion-IDC ~]# chown zabbix:zabbix -R /usr/local/zabbix/ [root@bastion-IDC ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf [root@bastion-IDC ~]# 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启动脚本: [root@bastion-IDC ~]# 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: [root@bastion-IDC ~]# cat /etc/sysconfig/iptables ... -A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT ... [root@bastion-IDC ~]# /etc/init.d/iptables restart

启动zabbix_agentd: [root@bastion-IDC ~]# /etc/init.d/zabbix_agentd start Starting Zabbix Agent: [ OK ]

配置开机自动启动: [root@bastion-IDC ~]# chkconfig --add zabbix_agentd [root@bastion-IDC ~]# chkconfig --level 35 zabbix_agentd on

测试下zabbix agent是否正常工作: [root@bastion-IDC ~]# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf -t system.uptime system.uptime [u|68301]

==========================zabbix客户机一键安装和配置的脚本==============================

[root@yum ~]# vim zabbix_agent_install.sh 
#!/bin/bash
host=`hostname`
/usr/sbin/useradd zabbix
cd /usr/local/
/usr/bin/wget http://192.168.10.55/software/zabbix_agent.tar.gz
/bin/tar -zvxPf zabbix_agent.tar.gz
/bin/rm -f zabbix_agent.tar.gz

/bin/chown -R zabbix.zabbix zabbix/
touch /tmp/mounts.tmp
chown zabbix:zabbix /tmp/mounts.tmp

sed -i "s/Hostname=127.0.0.1/Hostname=`hostname`/g" /usr/local/zabbix/etc/zabbix_agentd.conf

/bin/cp zabbix/zabbix_agentd /etc/rc.d/init.d/
/bin/cp zabbix/zabbix_agentd /etc/init.d/
/bin/chmod 755 /etc/rc.d/init.d/zabbix_agentd
/bin/chmod 755 /etc/init.d/zabbix_agentd
chattr -ai /etc/sudoers
chmod 640 /etc/sudoers
echo "zabbix  ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
chmod 440 /etc/sudoers
chattr +ai /etc/sudoers
#/etc/init.d/zabbix_agentd start

/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
echo "/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf" >> /etc/rc.local

=========================================================================================
赋予脚本执行权限,并执行脚本进行安装和配置
[root@yum ~]# chmod 755 zabbix_agent_install.sh 
[root@yum ~]# sh -x zabbix_agent_install.sh

检查zabbix_agent的安装情况
[root@yum ~]# ll -d /usr/local/zabbix
drwxr-xr-x 9 zabbix zabbix 4096 12月 25 13:06 /usr/local/zabbix
[root@yum ~]# lsof -i:10050
COMMAND      PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
zabbix_ag 119763 zabbix    4u  IPv4 677580      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 119764 zabbix    4u  IPv4 677580      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 119765 zabbix    4u  IPv4 677580      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 119766 zabbix    4u  IPv4 677580      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 119767 zabbix    4u  IPv4 677580      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 119768 zabbix    4u  IPv4 677580      0t0  TCP *:zabbix-agent (LISTEN)
[root@yum ~]# ps -ef|grep zabbix_agent
zabbix   119763      1  0  2017 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
zabbix   119764 119763  0  2017 ?        00:17:05 /usr/local/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]                    
zabbix   119765 119763  0  2017 ?        00:01:47 /usr/local/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]      
zabbix   119766 119763  0  2017 ?        00:01:46 /usr/local/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]      
zabbix   119767 119763  0  2017 ?        00:01:47 /usr/local/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]      
zabbix   119768 119763  0  2017 ?        00:00:13 /usr/local/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]             
root     159646 159567  0 16:50 pts/0    00:00:00 grep zabbix_agent
=========================================================================================
上面脚本中的需要注意的:
1)在zabbix的server端将编译安装并配置好的目录(比如/usr/local/zabbix,里面包括zabbix_agent的配置)进行打包,打包后的命令为zabbix_agent.tar.gz
   (或者可以将server端zabbix编译安装和配置的目录只保留agent的部分进行打包),打包后存放地址为:http://10.0.8.40:8001/zabbix_agent.tar.gz
2)将zabbix_agentd.conf文件中的Hostname部分配置成agent客户机的主机名。由于我在线上部署了内网DNS域名环境,所有机器的DNS域名地址都修改为内网
   dns的地址,所以这里将Hostname直接修改为内网DNS解析后的主机域名就可以了。但是要千万注意:zabbix的web界面的"配置"->"主机"的主机名一定也要
   写成一致的主机名(两者配置一定要一致,要么都是ip,要么都是主机名)

-----------------------------------------------------------------------------------------------------------------------------

登录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命令 [root@Zabbix-server ~]# /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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分布式监控系统Zabbix-3.0.3-完整安装记录(3)-监控nginx,php,memcache,Low-level discovery磁盘IO

    前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如ngi...

    洗尽了浮华
  • 分布式监控系统Zabbix-添加windows监控主机

    大多数情况下,线上服务器都是linux系统,但是偶尔也会有些windows机器。下面简单介绍下zabbix添加windows监控机的操作: 1)下载windo...

    洗尽了浮华
  • zabbix问题记录

    zabbix部署好,在使用一段时间后,出现了不少报错,在此简单做一记录。 1)Zabbix监控界面报错“Lack of free swap space”解决 公...

    洗尽了浮华
  • 切换zabbix数据库

    将schema.sql images.sql data.sql 数据库从zabbix服务器上复制到/root路径下面

    WEi_
  • Zabbix 3.4编译安装全解读

    用户1456517
  • 分布式监控系统Zabbix-3.0.3-完整安装记录(3)-监控nginx,php,memcache,Low-level discovery磁盘IO

    前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如ngi...

    洗尽了浮华
  • 030.Zabbix分布式部署

    zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zab...

    木二
  • ZABBIX4.2+Grafana6.1部署

     版权声明: https://blog.csdn.net/Callousmaster/article/details/89556528

    拓荒者
  • CentOs7安装部署Zabbix3.4 原

    [root@localhost ~]# getenforce   Disabled                                     #...

    拓荒者
  • 分布式监控之Zabbix-Proxy

    Zabbix proxy 是一个或多个从监控设备收集监测数据和发送到zabbixserver 的进程,属于代表zabbix server 的运行,所有收集到的数...

    DevinGeng

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动