Zabbix是一款开源得监控软件,我们可以根据自己的需要下载源码并对其二次开发以达到我们想要的功能。
下面说一下zabbix的源码安装的步骤和安装过程中遇到的问题以及解决办法。
http://blog.csdn.net/liang_baikai/article/details/53303952
先用uname –a 命令看一下系统版本以便安装相应的环境
MySQL: 5.0.3 或者以上(推荐使用)
Oracle: 10g 或者以上
PostgreSQL: 8.1 或者以上 .
SQLite: 3.3.5 或者以上
IBM DB2: 9.7 或者以上
Apache: 1.3.12 或者以上
PHP: 5.3.0 或者以上, zabbix 早期版本支持 5.2,但是 2.2 版本最低版本是 5.3
以下内容都为可选项,如果你需要监控特定项,安装特定支持即可。
OpenIPMI: IPMI 硬件监控
Libssh2:版本 1.0 以上, SSH 支持
fping: icmp 监控项
libcurl:监控 web 项.
libiksemel:支持 jabber 报警(国内应该没什么人用)
net-snmp: SNMP 监控支持
如果你需要通过 Java 网关来监控你的 Java 进程
代码建议手打,因为拷贝的时候有些字符会变成中文模式的字符,可能导致错误
由于zabbix需要的环境比较多,所以我这里是先装了xampp,这样会省去很多搭建环境的操作。
下面是在百度上复制过来的一段
{
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。[1]
许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿。如果您想添加 MySQL、PHP 和 Perl,那就更难了。XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。
}
Xampp安装完成之后稍稍配置下就好了
Xampp的安装配置方法可以参考如下:
http://blog.csdn.net/liang_baikai/article/details/53159653
我这里同样是采用源码安装
源码下载路径:
net-snmp-5.4.1.tar.gz源码
http://download.csdn.net/detail/liang_baikai/9657550
net-snmp-5.7.1.tar.gz源码
http://download.csdn.net/detail/liang_baikai/9666368
net-snmp-5.7.3.tar.gz源码
http://download.csdn.net/detail/liang_baikai/9682366
我下载的是net-snmp-5.7.3.tar.gz版本的源码
安装好了,配置一下,配置方法见:
http://blog.csdn.net/liang_baikai/article/details/52953571
首先放行一些端口,这些端口后面都用的上;
我是直接在文件里面操作的
vim /etc/sysconfig/iptables
添加这两行
-A INPUT -p tcp -m multiport --dports 80,10050:10051 -j ACCEPT
-A INPUT -p udp -m multiport --dports 161 -j ACCEPT
service iptables restart
修改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
这些项最后在setup.php界面上都会显示出来,也可以最后根据网页的提示修改
修改完了重启下服务就好了
源码包建议在官网上下载(由于官网上面下载有时候会比较的慢,下面有从官网上下载 好的源码包)
Zabbix3.0.5版本的源码包:http://download.csdn.net/detail/liang_baikai/9682449
Zabbix3.2.1版本的源码包:http://download.csdn.net/detail/liang_baikai/9675877
我这里用的是3.2.1版本的
# groupadd zabbix
# useradd -g zabbix -m zabbix
解压zabbix
# tar -zxvf zabbix3.2.1.tar.gz
# cd zabbix3.2.1
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/opt/lampp/bin/mysql_config --with-net-snmp=/usr/local/bin/net-snmp-config --with-libcurl --with-libxml2
# make && make install
(安装过程遇到问题可以找一下下面的“遇到的问题及解决办法”里面有没有)
先登录MySQL(如果是装的xampp自带的MySQL需要先配置下环境,方法见http://blog.csdn.net/liang_baikai/article/details/53196602
)
# mysql -uroot –proot
#mysql> create database zabbix default charset utf8;
#mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
#mysql> exit
然后将zabbix的相关数据导入数据库
(注意顺序不能错)
# mysql -uzabbix -pzabbix zabbix<./database/mysql/schema.sql
# mysql -uzabbix -pzabbix zabbix<./database/mysql/images.sql
# mysql -uzabbix -pzabbix zabbix<./database/mysql/data.sql
导入的时候注意路径(因为我cd zabbix3.2.1 所以我的路径是上面的)
# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix
# ln -s /usr/local/zabbix/etc/ /etc/zabbix
# ln -s /usr/local/zabbix/bin/* /usr/bin/
# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
# cp ./misc/init.d/fedora/core/zabbix_* /etc/init.d
(同样的要注意路径是否正确)(有些步骤现在看起来没必要,但后续使用的时候就会发现真的挺重要的,笔者亲生感受!)
# chmod 755 /etc/init.d/zabbix_*
启动文件里面默认的路径是BASEDIR=/usr/local
需要修改成 BASEDIR=/usr/local/zabbix
# vim /etc/init.d/zabbix_server
然后找到BASEDIR=/usr/local 修改成BASEDIR=/usr/local/zabbix
# vim /etc/init.d/zabbix_agentd
然后找到BASEDIR=/usr/local 修改成BASEDIR=/usr/local/zabbix
vim /usr/local/zabbix/etc/zabbix_server.conf
找到DBUser= 这是设置访问数据库的用户名,
设置成
DBUser=zabbix
找到 DBPassword= 这是设置访问数据库的密码
设置成
DBPassword=zabbix
以上两个参数是必须的,下面的参数有时候需要,建议也设置一下
ListenPort=10051
(将注释符去掉)
DBHost=localhost
DBSocket=/opt/lampp/var/mysql/mysql.sock
以xampp环境为例,具体的路径得看你怎么配置的。
DBPort=3306
注意下ip地址以及路径是否正确就好了,这里不做详细说明
如果是安装xampp
将/zabbix3.2.1/frontends/php/路劲下的所有文件拷贝到/opt/lampp/htdocs/zabbix/
# cp -rf ./frontends/php/ /opt/lampp/htdocs/zabbix/
这里需要注意路径是否正确,每个人的路径不同。
如果没有安装xampp的就拷贝到/var/www/html/zabbix/
紧接着启动服务就好了,启动过程中出现的问题在后面3.12以后有解决方法:
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
# service zabbix_server start
Starting zabbix_server: [ OK ]
# service zabbix_agentd start
Starting zabbix_agentd: [ OK ]
以上步骤配置完后通过 http://192.168.XXX.XXX/zabbix/setup.php 网页端进行后续配置。
网页配置根据他的提示一直下一步就好了,如果有提示错误的地方,根据提示修改相应的地方就OK了。
http://download.csdn.net/detail/liang_baikai/9675889
使用过程遇到问题可以参考这本书,新版的。写的很详细,很适合初学者学习。
如果你是安装的xampp环境,或者自己安装MySQL时路径没有配置在默认路径下,这时候就会出现MySQL找不到的情况。这时候自己手动搜索下MySQL的配置文件的路径在什么地方,然后指定一下配置文件的路径就好了。
Net-snmp找不到的原因也许是和上面的原因一样,自己手动安装的,或者是源码编译的,net-snmp.conf文件不在默认路径下,所以导致文件找不到,这时候需要我们找到那个文件
# find / -name net-snmp.conf
找到该文件后指定一下路径就好了。
由于有些环境是我们源码安装的,有些环境安装的时候他的Makefile文件中没有做拷贝库文件的操作,那么他的库文件很可能在他源码的路径下,我们找到那个库文件,然后直接将它拷贝到/usr/lib路径下就好了。
如果一直提示都是密码不正确的错误,那就只有修改密码了。
如果你用的是xampp自带的MySQL的话
# vi /opt/lampp/etc/my.conf
在[mysqld]的下面加上这样一句话skip-grant-tables
然后保存退出。
这个时候不用密码就可以打开MySQL了,直接
# mysql
打开MySQL
>use mysql
>update user set password=password("新密码") where user="root";
>flush privileges;
>exit
然后
# vi /opt/lampp/etc/my.conf
将之前添加的那句话注释掉,重启下MySQL就好了
如果是自己另外装的MySQL,则找一下my.ini文件,然后操作和上面一样。
启动zabbix服务的时候提示说没有zabbix_server这个文件或目录,说明可能是路径与错误。
# vi /etc/init.d/zabbix_server
打开启动文件看看
启动文件里面默认的zabbix_server的路径是/usr/local
然后我们总是习惯于给他装在/usr/local/zabbix路径下,所以需要修改启动文件的路径。
# vi /etc/init.d/zabbix_server
然后找到BASEDIR=/usr/local 修改成BASEDIR=/usr/local/zabbix
# vi /etc/init.d/zabbix_agentd
然后找到BASEDIR=/usr/local 修改成BASEDIR=/usr/local/zabbix
出现这个问题的原因有很多种,上面安装过程中任何一个错误都有可能会导致出现这个问题。出现了这个问题之后最好先看一下系统日志
# vi /tmp/zabbix_server.log
开一下该文件的最后,找找是什么原因导致的程序死掉,找到具体的问题再想办法解决。
先
service zabbix_server status
看看server的状态,如果状态是运行中,则看看是不是下面的问题。
有些系统不支持localhost,导致localhost无法解析,先
# ping localhost
看看能不能ping通,如果ping不通
将各项配置文件的localhost改成IP地址就好了。
如果能ping通则不是上述问题。
# netstat -antulp | grep zabbix
看看有没有zabbix_server,如果没有的话,检查下10051端口有没有打开。打开端口的方法见上面。
看看zabbix的系统日志提示的是不是数据库的问题,检查下数据库的配置文件,看看有没有问题,如果配置文件没有问题则看看zabbix的数据有没有成功的导入到数据库里面。
进入数据库里面
>show databases;
看看有没有zabbix这个数据库
再
>use zabbix;
>show tables;
看看表是否完全。可以重新导入一下。
同下
原因就不说了,小编打不动了。
方法是
>drop database (数据库名);
将那个库删掉,然后重新建。
这个问题经常是发生在装了xampp的用户。MySQL有个匿名用户,有时候默认是匿名登录了。解决办法和上面3.4的方法一样。
方法见:
http://blog.csdn.net/liang_baikai/article/details/53196602
这是mysql的一个库没有找到,将这个库文件拷贝到系统/usr/lib/下就好了
cp /opt/lampp/lib/libmysql* /usr/local/
只是一个netsnmp的库文件没有找的。
cp /usr/local/lib/libnetsnmp* /usr/lib/
将库文件和软链接都拷贝过去
cp /opt/lampp/lib/libcurl.so.4 /usr/lib/
cp /opt/lampp/lib/libcurl.so.4.3.0 /usr/lib/
cp /opt/lampp/lib/libssl.so.1.0.0 /usr/lib/
出现这个问题小心了,切不可把libcrypto的文件都拷贝过去,会导致系统崩溃的。只要拷贝下面一个文件就好了
cp /opt/lampp/lib/libcrypto.so.1.0.0 /usr/lib/