zabbix2.2.3 Centos6.5安装

1、zabbix简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等

Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
官方也提供了安装资料:http://www.zabbix.com/wiki/howto/monitor

Zabbix的架构

2、zabbix 安装

系统:CentOS release 6.5
内核:Linux agent 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
zabbix版本:zabbix-2.2.3

zabbix是有php语言开发,需要lnmp环境或者lamp

1.yum安装LAMP环境

yum -y install gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstringphp-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel ja va-devel

2、配置LAMP使用环境, 编辑/etc/php.ini文件,修改以下内容

date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 32M
max_input_time = 300
memory_limit = 128M
mbstring.func_overload = 2

启动httpd、mysqld服务

# chkconfig mysqld on
# chkconfig httpd on 
# service mysqld start
# service httpd start

3.下载并安装zabbix服务端

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz

创建zabbix用户

# groupadd zabbix
# useradd zabbix -g zabbix

安装zabbix

# tar xf zabbix-2.2.3.tar.gz
# cd zabbix-2.2.3
# ./configure --prefix=/usr --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 --enable-java

报错如下:
checking for SSH2 support... no
configure: error: SSH2 library not found

解决办法:
yum -y install libssh2-devel

上面一个报错解决了,继续./configure,又出现如下错误:
checking for LDAP support... no
configure: error: Invalid LDAP directory - unable to find ldap.h

解决办法:
yum -y install openldap openldap-devel

make

make install

4.添加zabbix 到系统服务文件

# vi /etc/services(在rhel/centos系列中,下面的服务参数可以不用添加,默认已经有了)
zabbix-agent    10050/tcp               # Zabbix Agent
zabbix-agent    10050/udp               # Zabbix Agent
zabbix-trapper  10051/tcp               # Zabbix Trapper
zabbix-trapper  10051/udp               # Zabbix Trapper

5.导入zabbix数据库

[root@zabbix zabbix-2.2.3]# mysqladmin -uroot password 'abc123,' 
[root@zabbix zabbix-2.2.3]# mysqladmin -uroot password 'abc123,'   
[root@zabbix zabbix-2.2.3]# mysql -uroot -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;

测试下连接是否正常

[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

导入数据库文件

[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/schema.sql
[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/images.sql
[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/data.sql

6.创建zabbix日志目录

# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix

7.设置zabbix启动脚本

[root@zabbix zabbix-2.2.3]# cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
[root@zabbix zabbix-2.2.3]# chmod 755 /etc/init.d/zabbix_*
[root@zabbix zabbix-2.2.3]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#" /etc/init.d/zabbix_server
[root@zabbix zabbix-2.2.3]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#" /etc/init.d/zabbix_agentd

8.编辑/etc/zabbix/zabbix_server.conf文件,修改以下参数

LogFile=/var/log/zabbix/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
StartPollers=160 (测试环境默认值即可)
StartTrappers=20 (测试环境默认值即可)
StartPingers=100 (测试环境默认值即可)
StartDiscoverers=120 (测试环境默认值即可)
MaxHousekeeperDelete=5000 (测试环境默认值即可)
CacheSize=1024M (测试环境默认值即可)
StartDBSyncers=16 (测试环境默认值即可)
HistoryCacheSize=1024M (测试环境默认值即可)
TrendCacheSize=1024M (测试环境默认值即可)
HistoryTextCacheSize=512M (测试环境默认值即可)
AlertScriptsPath=/etc/zabbix/alertscripts
LogSlowQueries=1000

修改完成后可通过以下命令进行查看:
grep -Ev "(#|^$)" /etc/zabbix/zabbix_server.conf

9.编辑/etc/zabbix/zabbix_agentd.conf文件,修改以下参数

LogFile=/var/log/zabbix/zabbix_agentd.log
EnableRemoteCommands=0
Server=127.0.0.1,172.16.10.72  #zabbix服务端IP
StartAgents=8
ServerActive=172.16.10.72:10051
Hostname=Zabbix server
Timeout=30
Include=/etc/zabbix/zabbix_agentd.conf.d/
UnsafeUserParameters=1

修改完成后可通过以下命令进行查看:
grep -Ev "(#|^$)" /etc/zabbix/zabbix_agentd.conf

10.拷贝zabbix网页文件到apache目录

[root@zabbix zabbix-2.2.3]# cp -r ./frontends/php/ /var/www/html/zabbix
[root@zabbix zabbix-2.2.3]# chown -R apache.apache /var/www/html/zabbix

11.开启zabbix服务

root@zabbix zabbix-2.2.3]# chkconfig zabbix_server on
[root@zabbix zabbix-2.2.3]# chkconfig zabbix_agentd on
[root@zabbix zabbix-2.2.3]# service zabbix_server start
Starting zabbix_server:                                    [  OK  ]
[root@zabbix zabbix-2.2.3]# service zabbix_agentd start
Starting zabbix_agentd:                                    [  OK  ]

#查看zabbix服务是否启动
[root@zabbix zabbix-2.2.3]# netstat -antpl|grep zabbix
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      22542/zabbix_agentd 
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      22473/zabbix_server 
tcp        0      0 :::10050                    :::*                        LISTEN      22542/zabbix_agentd 
tcp        0      0 :::10051                    :::*                        LISTEN      22473/zabbix_server

12.通过web页面配置zabbix

service iptables stop #暂时关闭防火墙

打开浏览器,访问:http://172.16.100.16/zabbix,不出意外,会看到如下页面

Paste_Image.png

点击next,进入下一步

Paste_Image.png

解决方法:

yum install php-mbstring
service httpd restart
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

到此web页面配置完毕,已经到了登陆界面,zabbix的默认登陆账号是admin,密码是zabbix

Paste_Image.png
Paste_Image.png

登录后发现一个报错:zabbbix server is not running:the information displayed may not be current

经过排查,发现是selinux惹的祸

解决办法:关闭selinux

setenforce 0
查看10051端口是否开启,如未启动

/etc/init.d/zabbix_server start

开启后10051端口又自动关闭,查看日志

cat /var/log/zabbix/zabbix_server.log 

报错连接数据库失败


Paste_Image.png

是由于连接到数据库的数量比较多,mysql 默认的连接数是100,一般设置到500~1000比较合适,我们可以调大这个值:修改/etc/my.cnf这个文件,在[mysqld]中新增max_connections=1000
然后重启mysql和zabbix_server zabbix_agent

Paste_Image.png

刷新页面

Paste_Image.png

添加中文支持,默认是没有中文选项

Paste_Image.png
Paste_Image.png

原来zabbix默认把对中文的支持给关闭了,我们需要修改zabbix的php源文件. 修改站点根目录下include/locales.inc.php文件.

Paste_Image.png
Paste_Image.png

更改为

Paste_Image.png

重启zabbix服务

Paste_Image.png

监控图形出现乱码

Paste_Image.png

1.从windows下控制面板->字体->选择一种中文字库例如“楷体” 【复制-粘贴出来,然后拷贝到zabbix服务器上】

将这个文件拷贝到zabbix的数据目录的fonts目录下

之前部署的zabbix数据目录是/var/www/html/zabbix/fonts
[root@Zabbix-server fonts]# pwd /var/www/html/zabbix/fonts
[root@Zabbix-server fonts]#ls

将上面从windows的“控制面板”----“字体”里下载下来的simkai.ttf文件拷贝到这里。并且将之前的字体文件DejaVuSans.ttf移动到别处
[root@Zabbix-server fonts]# ls simkai.ttf

然后,接着修改代码include/defines.inc.php文件中的字体配置,将里面关于字体设置从DejaVuSans替换成simkai

Paste_Image.png

———————————————分割线—————————————————
本文参考:http://www.cnblogs.com/Eivll0m/p/3807604.html
常见报错 :https://www.iyunv.com/thread-25966-1-1.html
在linux系统中,几乎所有运行的服务都会产生相对就的日志(log),所运行的程序在出错时都会有错误提示,即使没有任何提示也可以通过“echo $”来查看运行是否成功。使用zabbix已经有一段时间了,整理一下遇到过的问题和解决的方法以。

zabbix的日志存放在/tmp下,服务器端对应的日志是zabbix_server.log,被监控端对应的日志是zabbix_agentd.log.

一,zabbix服务是否已经开启成功

查看系统是否已经有zabbix进程正在运行 # ps aux |grep zabbix 查看系统是否已监听zabbix server和zabbix agent所使用的10050、10051端口 # netstat -nplut |grep zabbix 如果没有,则开启:#/etc/init.d/zabbix_server_ctl start #/etc/init.d/zabbix_agent_ctl start特别需要注意的是:每次修改完配置文件之后都需要重新启动对应的zabbix server或者zabbix agentd。

部分运行脚本在做restart时无法关闭zabbix导致服务无法重新启动,可用kill的命令把zabbix相关的进程杀掉再启动。

二、zabbix_server.log出现的提示

2009:20121023:193549.354 Sending list of active checks to [192.168.30.3] failed: host [CentOS-3] not found

这是因为zabbix_agentd.conf配置文件中的Hostname与web中的主机名对应。

三、网页中了出现的错误

(1)

Get value from agent failed: cannot connect to [[192.168.30.2]:10050]: [111] Connection refused

192.168.30.2是我的zabbix server服务器,本身也有监控自己本身的agent功能。出现这种错误是因为忘记在zabbix服务器开户zabbix_agentd。在Last 20 issues中也有提示

Last 20 issues

Host
Issue
Last change
Age
Ack
Actions

Zabbix server

Server Zabbix server is unreachable
23 Oct 2012 18:42:14

6m 57s
No

解决方法:开启zabbix_agentd即可。

(2)

Get value from agent failed: cannot connect to [[192.168.30.3]:10050]: [113] No route to host

看提示“No route to host”,与网络连接有关。排除的方法如下:

a)查看192.168.30.3这台机器是否已开机

b)在zabbix server端向这台机器ping,看网络是否通

c)用telnet 登录10050和10051端口,看该主机是否允许这两个端口通讯

d)查看iptables防火墙规则是否拦截10050、10051端口

(3)

网页中不停地有以下红色提示:

zabbix server is not running: the information displayed may not be current.

zabbix 遇到上面的问题

可以从以下几个方面入手检查,当然先查日志,如果不想查日志,先检查下面几项是否正常

  1. selinux是否关闭。

  2. zabbix web目录下面 $ZBX_SERVER 是否为ip,如果是localhost,ping下localhost是否能解析。

3.查看php的fsockopen模块是否启用。

zabbix server is running | No.

查看/tmp/zabbix_server.log和/tmp/zabbix_agent.log无任何异常。看zabbix_server和zabbix_agent进程、端口都正常……几翻google以后并尝试,终于得到了解决!

http://www.zabbix.com/forum/showthread.php?t=23878&page=3 这里面有说到zabbix受selinux的影响而已有这种错误提示。

http://www.zabbix.com/forum/showthread.php?t=25321 这里面说到了修改hostname为IP的做法。

我具体的做法是:

①查看selinux产生的log,确实有错误提示:

tail -f /var/log/audit/audit.log

type=AVC msg=audit(1351863204.990:32): avc: denied { name_connect } for pid=1575 comm="httpd" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket

type=SYSCALL msg=audit(1351863204.990:32): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfd494b0 a2=b76b0ad8 a3=d items=0 ppid=1434 pid=1575 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

②然后让selinux允许它通过

setsebool -P httpd_can_network_connect on③编辑zabbix.conf.php文件,把$ZBX_SERVER的值改为本机的IP地址

$ZBX_SERVER = '192.168.30.2'; #######用IP代替hostname

④OK

四、

tail /tmp/zabbix_server.log 显示

50952:20141012:195519.884 One child process died (PID:51233,exitcode/signal:255). Exiting ...

表示一个子进程死掉,是一个zabbix内存溢出错误 (此错误同样会造成上面红色的闪烁)

更正:

vim /etc/zabbix/zabbix_server.conf

CacheSize=512M

修改此值后OK

五、 tail /tmp/zabbix_server.log 显示

2552:20141012:211700.552 [Z3001] connection to database 'zabbix' failed: [1040] Too many connections

是由于连接到数据库的数量比较多,mysql 默认的连接数是100,一般设置到500~1000比较合适,我们可以调大这个值:修改/etc/my.cnf这个文件,在[mysqld]中新增max_connections=1000

然后重启mysql和zabbix_server zabbix_agent

用户自定义脚本监控:

a)

有时候用户自定义的脚本运行的时间可能比较长,如超过10秒的20秒的。这时在执行zabbix_agentd -p 或者zabbix_agentd -t时就可能出现“Alarm clock”,从而得不到想要的结果。这是因为zabbix agentd配置文件中定义Timeout时间默认为3秒,脚本运行取结果的时间超过了3秒就会出现这种情况。

解决方法:编辑配置文件/etc/zabbix/zabbix_agentd.conf,找到"Timeout"把它定义为30秒或小于30秒。

b)

对a中的情况还需要注意对zabbix服务器端的配置,如我自己定义的脚本

UserParameter=ping.avgtime,ping 192.168.30.2 -c 10 -w 29 |grep 'avg' |awk -F "/" '{print $5}' 对192.168.30.2 ping 10取平均值,-w参数是对ping限定时间为29秒这个脚本运行的大概时间为10秒左右,此时在agent端虽然可以用zabbix_agentd -t得到结果,但是在zabbix服务器端日志会不断的出现

1762:20121023:191941.360 resuming Zabbix agent checks on host [Zabbix server]: connection restored

1761:20121023:191952.149 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: first network error, wait for 15 seconds

1762:20121023:192010.610 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds

1762:20121023:192028.628 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds

这样的错误日志,并且在web端也没有画出图来。

解决方法:

①编辑zabbix服务器端的配置文件/etc/zabbix/zabbix_server.conf找到"Timeout"把它定义为30秒或小于30秒。

②如果还有类似提示则应该是zabbix服务器的内存设置得太小了,加大服务器内存便可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 7,847评论 0 37
  • zabbix是什么在此就不多作介绍了,可以参考之前的文章零代码如何打造自己的实时监控预警系统,这篇主要介绍安装及注...
    欢醉阅读 1,383评论 0 2
  • 万香园,用良心拉面!用道德熬酱!万香园炸酱面有百吃不厌的美誉。在诸多美食中,炸酱面布的地域最为广阔。北方和中原一带...
    只为爱你只为爱你阅读 425评论 0 3
  • 这是个新建成的校园,细嫩的树木零零散散,点缀其间。栽树翻出的泥,没来得及扫干净,被雨水冲走,蔓延开很远。但好在路宽...
    pata600阅读 399评论 1 1