前期安装:
mysql:http://blog.csdn.net/locky_lll/article/details/78529363
apapche:http://blog.csdn.net/locky_lll/article/details/78537950
php7:http://blog.csdn.net/locky_lll/article/details/78548704
官网上有使用rpm包安装过程,这篇文章使用的是源码包安装.
首先,因为zabbix在使用mysql的时候默认的用户名是zabbix,所以,先在mysql中添加zabbix用户名,和zabbix databases.
mysql -uroot -p
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
mysql> flush privileges;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| zabbix |
+--------------------+
在使用
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
时可能会报错
Your password does not satisfy the current policy requirements
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
这样就可以了.
安装zabbix
https://www.zabbix.com/download Zabbix Sources
yum install httpd libxml2-devel net-snmp-devel libcurl-devel #安装需要的依赖包
groupadd -g 201 zabbix #添加zbbix用户组与用户名
useradd -g zabbix -u 201 -m zabbix
tar zxvf zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql #建立zabbix文件链接
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql --with-libxml2
make &&make install
编译 zabbix 如果报下面错误,就做以下操作 configure: error: Not found mysqlclient library #find / -name libmysqlclient* ln -s /usr/lib64/mysql/libmysqlclient.so.18.1.0 /usr/lib64/mysql/libmysqlclient.so ln -s /usr/lib64/mysql/libmysqlclient_r.so.18.1.0 /usr/lib64/mysql/libmysqlclient_r.sochecking for libpcre support... no
configure: error: Unable to use libpcre (libpcre check failed) 如果出现这个错误,而且使用 find / -name libpcre* 你也装了的时候
使用:yum -y install pcre* 就好了
配置zabbix
DBHost=localhost 数据库ip地址
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=127.0.0.1,192.168.10.10 zabbix server ip地址
iptables -I INPUT -p tcp -m multiport --dports 10050:10051 -j ACCEPT
service iptables save &&service iptables restart
ln -s /usr/local/zabbix/sbin/* /usr/sbin/
cp /home/sources/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_* /etc/init.d/
chmod +x /etc/init.d/zabbix_*
sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_server
配置WEB
vim /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1
ServerName 192.168.10.10
DocumentRoot "/var/www/html"
mkdir -p /var/www/html/zabbix
cp -r /home/sources/zabbix-3.0.3/frontends/php/* /var/www/html/zabbix/
chown -R apache.apache /var/www/html/zabbix/
chkconfig zabbix_server on
/etc/init.d/zabbix_server start
service httpd restart
下面就是在web上的配置了就不细说了.默认账户 Admin 密码 zabbix
说一下我遇到的一个问题,解决了很长时间,查了很多东西才搞明白.
在web上面设置的时候会卡在第一页或者第三页无法next,我是卡在了第三页,显示
在zabbix的lo个里面完全没有报错. 查找mysql的error.log的时候有一个 [Note] Aborted connection 16830 to db: 'zabbix' user: 'zabbix' host: 'localhost' (Got timeout reading communication packets)
问题显然出现在zabbix对MySQL的连接上
。但是当我进入MySQL中查询连接数show full processlist; 的时候会发现,zabbix请求的进程已经连接到MySQL中了,所以肯定不是连接不上数据库的问题。
这时候你只要把Database host改为:127.0.0.1 就可以了.
解释:
复制一份zabbix.conf.php.example文件为zabbix.conf.php,因为zabbix.conf.php.example在WEB页面而设置后会生成zabbix.conf.php这样的页面,所以我们可以直接通过手动修改该配置页面,就可以直接访问zabbix的登录页了。但事实上,我并没有成功。我发现WEB页面会提示MySQL失去连接。
现在谈到一个问题,当我在LAMP中进行zabbix的WEB页面配置时发现,如果配置MySQL的地址为localhost,则不能成功进入下一步设置,页面会提示MySQL连接失败,但是我改为127.0.0.1就可以成功连接并完成zabbix的所有setup页面配置。由此我在这点联想到:在LNMP环境中手动修改配置文件不成功的原因是否也是如此。By the way,肯定有人疑问:服务器中一文件 /etc/hosts 会解释 localhost 到 127.0.0.1 中,为毛使用 locahost 不行呢?并且,我在 zabbix_server.conf 配置DB MySQL 的地址是localhost,而在 WEB setup 页面中配置的DB MySQL 的地址在 localhost 和 127.0.0.1 中只有 127.0.0.1 正常连接,并且WEB页面中配置的和配置文件中添加的DB 地址不一样。这个问题嘛,我也的确没有去研究,希望能有人给我解答,毕竟我也是个小白。然而,我在此和大家说明一点,在 MySQL 中,貌似由版本5.0开始,(有些版本) '%' 不包括localhost,要单独对 @'localhost' 进行赋值。对用了 % 则代表了所有的 host 都能远程访问该 MySQL 。
其中 MySQL 官方文档有说明:% 并不包括 localhost ,此处配置 % 远程其他 host 有权限访问,那么在 MySQL 的配置文件中 my.cnf,也需要做一些配置,将 bind_address=0.0.0.0 或者直接屏蔽掉此项。
当主机填写为 localhost 时 MySQL 会采用 unix domain socket连接
当主机填写为 127.0.0.1 时 MySQL 会采用tcp方式连接
经搜查表明 MySQL 设计到的很多应用,比如wordpress这些默认访问localhost的应用,都会不可用,需要更改 host 为 127.0.0.1 才行。