安装Zabbix 监控服务器
作者:andy.zhang | 分类:Linux | 浏览:1395 | 日期:2016年05月23日1,安装网页环境如LAMP,LNMP
这个可以用一键安装脚本,也可以用yum等相关工具安装。这里不做详细介绍。
2,安装ZABBIX
到官网下载的源码包,如本例的zabbix 3.0X版
tar -zxf zabbix.3.0.3.tar.gz
cd zabbix.3.0.3
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make &&make install
完成后
cp conf/zabbix_server.conf /usr/local/zabbix/etc/
vim /usr/local/zabbix/etc/zabbix_server.conf
这里要注意了,一共改四个地方
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password #对应的mysql里的密码
引入zabbix的启动数据库
mysql -u root -p zabbix < ./database/mysql/schema.sql
mysql -u root -p zabbix < ./database/mysql/images.sql
mysql -u root -p zabbix < ./database/mysql/data.sql
注意顺序,一定不要搞错了。
然后,可以启动一下,看看
/usr/local/zabbix/sbin/zabbix_server
这时会提示错误
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
解决方法:
先查找libmysqlclient.so.20
find / -name "libmysqlclient.so.20"
一般会在/usr/local/mysq/lib下面,即mysql安装目录
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
ldconfig
这样,再启动就不会有问题了。
netstat -ln |grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
表明服务已启用了。
修改一下iptables,增加10051端口的访问。
3,安装zabbix客户端
和服务端一样的源码包只是在编译时参数不同。
./configure --prefix=/usr/local/zabbix --enable-agent
make &&make install
完成后
vi /usr/local/zabbix/etc/zabbix_agent.conf #如果单是客户端这里只得一个文件
修改Server和ServerActive,两者区别是Server是服务器来拿数据,而另一个是推
数据到服务器上。
如果不需要推送数据到服务上,那就不需要在iptables里增加10050端口的访问了。
4,网页原码
有的老师采用的是yum的方式安装,我看过视频的,这时服务全启动(包括网页环境)
就可以用http://ip/zabbix的方式访问(阿铭linux)
但以上是采用脚本安装环境和源码安装的zabbix,所以,有点不同
先在脚本的目录下运行./vhost.sh 新增一个站点,域名自定,到时修改一下hosts这个文件即可
再转回zabbix的源码目录
cp -rf ./frontends/php/* /data/wwwroot/zabbix.XXXXXX.com #后面的目录是你上一步新增的站点存放目录。
chown www:www /data/wwwroot/zabbix.XXXXXX.com -R #修改所有人,是php运行的所有者,至于文件权限改不改都可以,要是认为安全性不够那请自行修改
5,关于PHP7运行zabbix2.4.X系列网页安装报错(3.04以上版本已解决这个BUG)
安装时检测环境报错:
always_populate_raw_post_data on off #意思是always_populate_raw_post_data这个的值必须为off
但是无论怎样改php.ini都不行,网上有一说是把值改成-1。只有通过修改php文件了
vim /data/wwwroot/zabbix.XXXXXX.com/include/classes/setup/CFrontendSetup.php
找到以下代码
public function checkPhpAlwaysPopulateRawPostData() {
$current = ini_get('always_populate_raw_post_data');
return array(
'name' => _('PHP always_populate_raw_post_data'),
'current' => ($current != -1) ? _('on') : _('off'),
'required' => _('off'),
'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
'error' => _('PHP always_populate_raw_post_data must be set to -1.')
在return array上面加$current = -1;,效果如下 :(注意红色的代码)
public function checkPhpAlwaysPopulateRawPostData() {
$current = ini_get('always_populate_raw_post_data');
$current = -1;
return array(
'name' => _('PHP always_populate_raw_post_data'),
'current' => ($current != -1) ? _('on') : _('off'),
'required' => _('off'),
'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
'error' => _('PHP always_populate_raw_post_data must be set to -1.')
);