在网上找了很多配置文档,有些不全,有些有错,下面这些都是亲身实践过的,供参考
配置环境:CentOS7,zabbix2.4.7
一、Zabbix的部署准备
1、LAMP环境准备与配置
这里的依赖包均通过yum安装
#yum -y install gcc gcc-c++ autoconf httpd php mysqlmysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gdphp-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmathmysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel
安装过程中可能遇到 没有可用软件包mysql-server 处理过程:
#wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
#sudo yum install mysql-server
编辑PHP相关的 /etc/php.ini 文件。(这里必须做响应的修改,否则在之后的web初始化过程中会报错。)
修改PHP相关参数
# vi /etc/php.ini 找到如下几项,改成下面的值,前面有;号的要删掉(如果修改会提示出错,也可以按照提示进行修改)
max_execution_time = 300
date.timezone = Asia/Shanghai
max_input_time = 300
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload= 0 //此处设置为0,否则会出现下面的错误,网上很多配置文档都设置为2,误导人啊
最后开启httpd并设置开机自启动
#chkconfig httpd on
#service httpd start
2、 mysql数据库的准备
开启mysql并设置开机自启动
#chkconfig mysqld on
#service mysqld start
修改mysql root用户密码(默认密码为空)
# mysqladmin -uroot -p password root
测试能否正常登陆数据库
#mysql –uroot –proot
创建zabbix数据库
Mysql> create database zabbix character set utf8;
3、为centos系统创建zabbix用户
#groupadd zabbix -g 501
#useradd -g zabbix -u 501 -m zabbix
一、Zabbix Server的安装
1、 zabbix源文件的下载
关于zabbix的最新版本源文件可以访问其官方网站并下载,下载http://www.zabbix.com/download.php地址
2、zabbix的解压缩与编译安装:
#tar xvf zabbix-2.4.7.tar.gz
#./configure --prefix=/usr/local/zabbix--enable-server --enable-proxy --enable-agent--with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
#make
#make install/
3、检查zabbix是否被添加进入系统服务文件中
#grep zabbix /etc/services
如果看到如下信息则代表已经添加成功,或者可以自行手动添加到 /etc/services 文件中:
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trappe
#cd /opt/zabbix/zabbix-2.4.7
# mysql -uroot -proot zabbix <database/mysql/schema.sql
# mysql -uroot-proot zabbix < database/mysql/images.sql
# mysql -uroot -proot zabbix <database/mysql/data.sql
PS:以上三条指令将目的执行sql脚本,构建zabbix数据库的结构
5、创建zabbix的的日志文件和连接
#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/
6、拷贝与配置zabbix启动文件
#cp misc/init.d/fedora/core/zabbix_*/etc/init.d/
#chmod 755 /etc/init.d/zabbix_*
#sed -i"s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g"/etc/init.d/zabbix_server
#sed -i"s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g"/etc/init.d/zabbix_agentd
7、配置zabbix_server.conf服务端文件
编辑并修改/etc/zabbix/zabbix_server.conf 文件,并修改如下条目:
可以手动修改
DBName=zabbix 数据库名称
DBUser=root 数据库用户
DBPassword=root 数据库密码
或者用 sed 方式替换文件内容:
#sed -i "s/DBUser\=root/DBUser\=root/g"/etc/zabbix/zabbix_server.conf
#sed -i "/#DBPassword=/aDBPassword=root\n" /etc/zabbix/zabbix_server.conf
#sed-i "s#tmp/zabbix_server.log#var/log/zabbix/zabbix_server.log#g"/etc/zabbix /zabbix_server.conf
8、配置zabbix_agentd.conf文件(这里是为了监控 server 本身,如对其他服务器进行监控,配置文件相类似)
PS:这里要住的的是zabbix_agentd.conf是客户端配置文件,这里是为了演示,因此这里配置这个文件的目的就是为了能够实现对本地服务器的监控。该文件需要修改如下四个条目:
Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远zabbix_server 的 ip 地址
ServerActive=127.0.0.1 此处修改为服务端的 ip,这里应该修改为该服务器对外的ip地址
/tmp/zabbix_agentd.log 修改日志路径
UnsafeUserParameters=0 默认是不启用自定义脚本功能的,要自定义 key ,需开启,设置为1
Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的agentd配置文件可以写在这个目录下面
利用sed 方式内容替换的执行命令如下:其中192.168.112.129为zabbix服务端的ip
#sed -i"s/Server\=127.0.0.1/Server\=192.168.112.129/g" /etc/zabbix/zabbix_agentd.conf
#sed -i"s/ServerActive\=127.0.0.1/ServerActive\=192.168.112.129:10051/g"/etc/zabbix/zabbix_agentd.conf
#sed -i"s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g"/etc/zabbix/zabbix_agentd.conf
#sed -i"#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix/zabbix_agentd.conf
工作模式:
Server 是采用被动工作模式,允许访问的ip 地址,server 端要获取数据,当然得允许server 端了ServerActive 是采用主动工作模式,将数据上传到哪台服务器,需要填写server 的端口,默认是10051,语法是ip1,ip2 可以填写多个server 端,中间用逗号隔开
9、拷贝PHP网页文件到Apache中
#cp -r ./frontends/php//var/www/html/zabbix
#chown -R apache.apache/var/www/html/zabbix
10、设置zabbix开机启动
#chkconfig zabbix_server on
#chkconfig zabbix_agentd on
l#service zabbix_server start
#service zabbix_agentd start
至此,zabbix的安装完成。
三、通过Web设置Zabbix浏览器中输入地址:http://ip/zabbix,则可看到如下初始化欢迎界面。
通过#ifconfig –a 查看ip号
PS:其中ip代表本地服务器对外开放的ip地址
点击next:
一直点击next
可能会出现这个错误,如果按提示点击download,复制到指定目录下还是不行的话:
#cd /var/www/html/zabbix/conf
# cp zabbix.conf.php.examplezabbix.conf.php;vim zabbix.conf.php
按着这个样例文件,填写上去
<?php
// Zabbix GUI configuration file.
global $DB;
$DB["TYPE"] = ‘MYSQL‘;
$DB["SERVER"] = ‘localhost‘;
$DB["PORT"] = ‘3306‘;
$DB["DATABASE"] = ‘zabbix‘;
$DB["USER"] = ‘root‘;
$DB["PASSWORD"] = ‘root‘;
// Schema name. Used for IBM DB2 andPostgreSQL.
$DB["SCHEMA"] = ‘‘;
$ZBX_SERVER = ‘localhost‘;
$ZBX_SERVER_PORT = ‘10051‘;
$ZBX_SERVER_NAME = ‘192.168.112.129 ‘;
$IMAGE_FORMAT_DEFAULT =IMAGE_FORMAT_PNG;
?>
点击Retry应该就能通过了
配置完成后,出现登陆界面,默认的用户为:admin,密码为:zabbix
正常安装完zabbix后,登录后zabbix监控报错zabbix server is not running: the information displayed may not becurrent
需要查看selinux是否关闭。
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
Ps:如果出现上述情况,首先查看zabbix_server服务是否开启!!
启动zabbix_server服务
#/etc/init.d/zabbix_server start
四、客户端agentd的安装过程Linux客户端的安装
由于zabbix_server 这台机器我们已经安装好了zabbix_agentd,所以无需再次安装了。那么其他需要监控的linux 机器是如何安装的呢。
在安装客户端的时候,软件包和服务器是同一个,只是configure的配置参数不同而已。当然,源码安装,什么GCC,make这些命令都得安装,所以客户端不建议源码安装,由于针对大量机器(成千上万,在互联网公司很常见),推荐rpm包安装,下面展示的是用源码安装
#groupadd zabbix -g 501
#useradd -g zabbix -u 501 -m zabbix
l#tar xf zabbix-2.4.7.tar.gz
#cd zabbix-2.4.7
#./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent
#make
#make install
#mkdir /var/log/zabbix
#chown zabbix.zabbix /var/log/zabbix
#cp misc/init.d/fedora/core/zabbix_agentd/etc/init.d/
#chmod 755 /etc/init.d/zabbix_agentd
#sed -i"s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix #g"/etc/init.d/zabbix_agentd
2、检查zabbix是否被添加进入系统服务文件中
#grep zabbix /etc/services
如果看到如下信息则代表已经添加成功,或者可以自行手动添加到 /etc/services 文件中:
zabbix-agent10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
3、配置 zabbix_agentd.conf 文件
#sed -i"s/Server\=127.0.0.1/Server\=192.168.112.129/g" /etc/zabbix/zabbix_agentd.conf
#sed -i"s/ServerActive\=127.0.0.1/ServerActive\=192.168.112.129:10051/g"/etc/zabbix/zabbix_agentd.conf
#sed -i"s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g"/etc/zabbix/zabbix_agentd.conf
#sed -i"#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix/zabbix_agentd.conf
4、开启zabbix_agentd并设置开机自启动:
#chkconfig zabbix_agentd on
#service zabbix_agentd start
五、Zabbix的配置使用
5.1一个简单的例子--添加Hosts,并应用模板
Host 是Zabbix 监控的基本载体,所有的监控项都是基于host 的。
通过Configuration->Hosts->CreateHost 来创建监控设备
在IP address这项下默认是127.0.0.1,改为本机IP(要监控机器的IP)按提示填入Name、Groups、IP ,其他选项默认即可,Link Templates 处选择一个模板,
save 即可成功添加设备。(注:如果host 上没安装agent,添加后的状态会是unmonitor,会
采集不到值,Zabbix自带大量的设备监控模板,我们添加主机时通过link 到这些模板,就
可以快速添加主机的监控项和告警触发条件。一旦采用Templates 模板后,后面的步骤可以
省略)
(1)添加完Host后Web中如果出现
Received empty response from Zabbix Agent at [agent]. Assuming that agent dropped connection because of access permission到/etc/zabbix/zabbix_agentd.conf这个文件中修改Server=192.168.112.129(服务器端的ip)
(2)如果在zabbix首页Web中如果出现
Get value from agent failed:[xx.xx.xx.xx:10050]:Interrupted system call
解决方法:
1、首先检查机器是否开启,server是否能ping通客户端
2、查看系统防火墙是否开启10050端口:
#iptables -nvL |grep 10050
如果下面没有回应的信息,则说明没有允许10050端口被访问,因此需要开启该端口:
[root@client1~]# iptables -I INPUT -p tcp --dport 10050 -j ACCEPT
[root@client1~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
[root@client1~]# iptables -nvL |grep 10050
42224478 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10050
3、查看系统selinux 是否关闭:
[root@client1~]# getenforce
Enforcing #开启状态
[root@client1~]# vim /etc/selinux/config
SELINUX=enforcing #修改为 disabled