安装前准备:
1.1 安装依赖包:
yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools wget vim-enhanced
可能故障问题:Cannot find a valid baseurl for repo: base/7/x86_64
解决:修改DNS
1.2 关闭防火墙:
# systemctl stop firewalld.service
# systemctl disable firewalld.service
需要关闭 selinux,一定要关闭这个,开启selinux会引起一连串问题,甚至zabbix的discovery功能也不能正常使用
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
确认是否修改成功
# grep SELINUX /etc/selinux/config
然后重启系统即可
# reboot
一、zabbix server3.0在centos 7上安装
根据zabbix server3.0官方要求,目前zabbix server3.0在centos6 OS上不能进行yum安装。如果一定要在centos6 OS上进行安装zabbix server3.0的话,强烈建议通过源码方式进行编译安装,同时还需要注意PHP的版本。
考虑到这些因素,所以在此我们是在centos7 OS上进行yum安装zabbix server3.0。
注意:尽管zabbix server3.0在centos6 OS上不能yum方式进行安装,但是zabbix-agent3.0在centos6 OS上是可以进行yum安装的。
1.1 搭建lamp环境
在centos7上安装zabbix server3.0之前,我们首先搭建zabbix所需要的lamp环境。
下载最新的yum源,如下:
# wget -P /etc/yum.repos.d http://mirrors.aliyun.com/repo/Centos-7.repo
在开始安装之前,还需要说明下centos7自带的mysql是mariadb,我们可以通过如下命令查看:
yum search mysql|tac
现在开始安装lamp环境,使用如下命令:
[root@zabbix ~]# yum -y install mariadb mariadb-server php php-mysql httpd
通过上图,我们可以很明显的看出centos7默认安装的是php5.4、httpd2.4和maradb5.5,这个完全符合zabbix3.0对软件版本的要求。
lamp安装完毕后,我们现在来配置mysql数据库。
设置开机自启动mysql,并启动mysql,使用如下命令:
[root@zabbix ~]# systemctl enable mariadb.service
[root@zabbix ~]# systemctl start mariadb.service
初始化mysql数据库,并配置root用户密码。使用如下命令:
[root@zabbix ~]# mysql_secure_installation
注意:在上图中的Enter current passwdord for root处,我们直接敲回车键即可。因为centos7上mysql的默认root用户密码为空。
上图中主要是为root用户配置密码,并刷新相关权限。(密码设为123456,只为实验用,生产环境自定义)
Remove anonymous users? 删除匿名用户?
Disallow root login remotely? 禁止root远程登陆
Remove test database and access to it? 删除测试数据库并且和访问它
Reload privilege tables now? 重新载入特权表
上图中主要是配置匿名用户、test用户以及root用户远程连接等相关配置。
mysql初始化完毕后,我们现在来创建zabbix数据库及其用户,使用如下命令:
[root@zabbix ~]# mysql -uroot -p123456 -e "create database zabbix default character set utf8 collate utf8_bin;"
[root@zabbix ~]# mysql -uroot -p123456 -e "grant all on zabbix.* to "zabbix"@"%" identified by "zabbix";"(登录mysql,使用grant命令添加)
现在来测试刚刚创建的zabbix用户,是否可以连接mysql数据库,如下:
[root@zabbix ~]# mysql -uzabbix -pzabbix
MariaDB [(none)]> show databases;
MariaDB [(none)]> quit
通过上图,我们可以很明显的看出zabbix用户是可以正常连接数据库的。
启动apache以及开放80端口,如下:
[root@zabbix ~]# systemctl start httpd.service
[root@zabbix ~]# netstat -ltun
到此lamp环境已经全部搭建完毕。
1.2 安装zabbix server3.0
lamp环境搭建完毕后,我们现在开始正式安装zabbix3.0。
安装zabbix3.0所需要EPEL源和zabbix的yum源,如下:
#rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
#rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
以上安装完毕后,我们现在来正式安装zabbix3.0,使用如下命令:
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get
通过上图,我们可以很明显的看出目前zabbix server是3.0.5版本的。
以上安装完毕后,我们现在开始进行zabbix的相关配置。
导入zabbix数据库结构,如下:
[root@zabbix ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.5/(3.0.5改为你当前更新的mysql-server更新的版本)
[root@zabbix zabbix-server-mysql-3.0.5]# zcat create.sql.gz | mysql -uroot -pDe123456 zabbix(-p后为自己mysqlroot的密码)
数据库导入完毕后,我们现在来修改zabbix sever的配置文件,如下:
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost(有#,在#下面添加新的host)
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
上述配置文件中,我们只需要关注 DBHost、DBName、DBUser、
DBPassword 几项即可。这几项是配置zabbix server连接mysql数据库的参数。
以上修改完毕后,我们再来修改下zabbix.conf文件。如下:
vi /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
Options FollowSymLinks
AllowOverride None
Require all granted
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Chongqing
修改前:
修改后:
其中php_value date.timezone Asia/Chongqing主要是定义php的时区。
以上修改完毕后,我们把把zabbix-server加入开机启动,并启动zabbix-server,如下:
[root@zabbix ~]# systemctl start zabbix-server.service
[root@zabbix ~]# systemctl enable zabbix-server.service
最后重启apache,如下:(找到文档最后问题5,因为会phptimezone报错)
[root@zabbix ~]# systemctl restart httpd.service
三、配置zabbix
http://ip/zabbix/setup.php
Next step
Next step
上图中需要填写的是,我们前面创建的zabbix数据库已经用户和密码 , Next step
Next step
Next step
Finish
默认用户名是Admin 密码 zabbix 然后点击sign in
二:在被监控端配置zabbix-agent(有效方法)
1) 创建用户
groupadd zabbix
useradd -g zabbix zabbix
2)zabbix软件包下载,安装
http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.6/zabbix-2.2.6.tar.gz
上传zabbix-2.2.6.tar.gz到服务器/usr/local/src目录下面
cd /usr/local/src #进入软件包下载目录
tar zxvf zabbix-2.2.6.tar.gz #解压
cd /usr/local/src/zabbix-2.2.6 #进入安装目录
./configure --prefix=/usr/local/zabbix --enable-agent
make && make install
3)添加服务端口和修改启动脚本
vi /etc/services #编辑,在最后添加以下代码
# Zabbix
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
cp /usr/local/src/zabbix-2.2.6/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd (###前边的路径选择自己解压zabbix文件所在的目录、后边相同)
chmod +x /etc/rc.d/init.d/zabbix_agentd #添加脚本执行权限
vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
修改BASEDIR=/usr/local/zabbix/ #zabbix安装目录()
chkconfig zabbix_agentd on #添加开机启动
4)修改zabbix_agent配置文件(#翻页命令ctrl-f G移动到末尾)
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=192.168.1.22,192.168.1.21 #服务器端的IP及本机的IP
ServerActive=192.168.1.22,192.168.1.21
Hostname=single #agent主机名
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #扩展配置目录
5)启动
/etc/init.d/zabbix_agentd start
6)在防火墙上开启相应端口
vi /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
重启防火墙:
service iptables restart
7)测试
下面的命令需要在server端执行,其中192.168.1.21是agent的ip
#/usr/local/zabbix/bin/zabbix_get -s192.168.1.21 -p10050 -k"system.uptime"
1031163
说明成功啦。
8)监控该服务器
访问:http://192.168.1.22/zabbix/,192.168.1.22是zabbix server的IP.
组态—>主机->创建主机,
可以选择相应的模板,如:
Z如果是红色的话是不正常的,必须是绿色。
三、zabbix web中文显示与优化
5.1 zabbix web中文显示
默认情况下zabbix web显示的是英文,实际上zabbix是支持中文的,我们可以通过修改web端源文件来开启中文。
修改/usr/share/zabbix/include/locales.inc.php文件,把zh_CN所在行的false改为true即可,如下:
[root@zabbix ~]# vim /usr/share/zabbix/include/locales.inc.php +55
改正前:
改正后:
最后后点击zabbix web监控网页端右上角人头头像,在弹出的选项卡选择中文语言即可。如下:
改正前:
改正后:
5.2 中文显示优化
安装中文支持包
安装方法如下:
[root@zabbix ~]# wget https://github.com/echohn/zabbix-zh_CN/archive/master.zip
[root@zabbix ~]# unzip master.zip
[root@zabbix ~]# rm /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo
[root@zabbix ~]# cp zabbix-zh_CN-master/frontend.mo /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo
现在重启下apache和zabbix_server两个服务就可以,如下:
[root@zabbix ~]# systemctl restart httpd
[root@zabbix ~]# systemctl restart zabbix-server
zabbix中文乱码:
乱码如下图:
解决乱码方法:
把Windows 系统中找到 C:\Windows\Fonts 中的楷体(常规)复制到windows桌面上
如何将 window 文件上传到 linux 上,我们可以搭建一个 samba 服务器,这里我们介绍一款软件
" winscp " 下载地址网上百度一下就可以了。
安装完成后双击打开
点击编辑:
输入主机名( ip 地址)端口 22 用户名和密码
保存,然后点击登陆
在输入一次密码,确定
左面是 window 桌面,右面是 linux 根目录,直接把左面的文件拖动到右面就是把 window 文件复制到 linux 中,这样可以上传到 linux 里面了,接下来把 simkai.ttf 移动到 zabbix 安装目录的 fonts 目录下
[root@zabbix ~]# mv simkai.ttf /usr/share/zabbix/fonts/
[root@zabbix ~]# cd /usr/share/zabbix/fonts/
[root@zabbix fonts]# ls
graphfont.ttf simkai.ttf
[root@zabbix fonts]# chmod 777 simkai.ttf
[root@zabbix fonts]# cp graphfont.ttf graphfont.ttf.bak
[root@zabbix fonts]# mv simkai.ttf graphfont.ttf
mv :是否覆盖 "graphfont.ttf" ? y
查看一下 ,ok了
问题汇总
问题1.登录界面时报错
解决:问题描述:
浏览器输入http://192.168.68.133/zabbix,发现下面的报错
Error connecting to database: Access denied for user 'zabbix' @ 'localhost' to database 'zabbixdb'
问题分析:
数据库的配置肯定正确的,那么问题就可能是zabbix的配置文件不正确,而涉及的配置文件当时只知道有zabbix_server.conf
排查过程:
1.检查zabbix_server.conf配置文件,发现数据库配置也是正确的,但就是报上面的错误
2.最后通过网上搜索,发现
******/zabbix/conf/zabbix.conf.php
文件里面也有数据库的配置不正确(见下面红色字体),修改后,可以正常显示zabbix页面。
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'zabbix';
问题2.登录进入页面后报错
错误内容:zabbix监控搭建完后打开web界面http://xxx/zabbix报错:
zabbix server is not running: the information displayed may not be current!
1 . 遇到这个问题,首先不要去直接搜,我们查看下zabbix server的log日志:
connection to database 'zabbix' failed: [1045] Access denied for user 'root'(using password: NO)
数据库被拒绝,没有使用密码,因为默认的zabbix_server.conf的DBPassword是注释掉的
解决方法:
/etc/zabbix/zabbix_server.conf 中的数据库配置项目 密码那项没有启用,去掉注释,填上密码再次启动即可.
然后重启:
#shell service zabbix_server restart
刷新界面,ok,正常运行。
问题3:在zabbix页面中ZBX是红色或灰色,不能正常显示绿色
解决办法
1. 关掉被监控端的防护墙或开启10050端口
注意事项
1. 在配置zabbix-server时遇到问题,要反复查看hostnmae=是否被注释#或没有填入本机的主机名。
2. 在配置zabbix-agent是要注意hostname
3. 查看如下内容
问题4:前面已经配置完成,测试也通过能够正常启动,但第二天重新启动zbx是红色
解决办法1:重新登录zabbix,重新输入账号密码,也可尝试关掉agent端防火墙
通常关掉agent端防火墙就可以,过30秒重新加载网页,就可看到
为绿色了。
问题5/etc/init.d/zabbix_agentd start
启动zabbix-agend报错 ,,,,,,,,,,failed失败
解决方法:
1. 方法1:看第一步骤:创建用户和用户组是否成功创建
2. 方法2:查看这个目录修改BASEDIR=/usr/local/zabbix/ #zabbix安装目录()规定为/usr/local/zabbix
问题6
Zabbix配置Web页面报错" PHP time zone unknown Fail"
分类: Linux操作系统
2017-02-25 18:25:02
Zabbix配置Web页面报错" PHP time zone unknown Fail"
解决方法:
查看php.ini配置文件的设置
[root@localhost create]# vi /etc/httpd/conf.d/zabbix.conf
1. Alias /zabbix /usr/share/zabbix
2.
3. Options FollowSymLinks
4. AllowOverride None
5. Order allow,deny
6. Allow from all
7.
8. php_value max_execution_time 300
9. php_value memory_limit 128M
10. php_value post_max_size 16M
11. php_value upload_max_filesize 2M
12. php_value max_input_time 300
13. # php_value date.timezone Europe/Riga
更改php.ini配置文件的设置,去掉date.timezone的注释,将时区改为Asia/Shanghai
[root@localhost create]# vi /etc/httpd/conf.d/zabbix.conf
1. Options FollowSymLinks
2. AllowOverride None
3. Order allow,deny
4. Allow from all
5.
6. php_value max_execution_time 300
7. php_value memory_limit 128M
8. php_value post_max_size 16M
9. php_value upload_max_filesize 2M
10. php_value max_input_time 300
11. php_value date.timezone Asia/Shanghai
重启httpd服务
[root@localhost create]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[ OK ]
点击"Retry"重新进行检查,顺利通过检查