在本博客中,"zabbix"是一个系列文章,如果你还不明白zabbix的相关概念,强烈建议从zabbix系列文章中的第一篇开始阅读,否则你可能无法理解这篇文章中涉及到的部分名词。
直达链接:什么是zabbbix?
1. 开始安装
rpm 安装完成后,即可使用yum命令安装zabbix 对于软件和依赖包。
[root@centos7 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
[root@centos7 ~]# yum clean all
2. 安装Zabbix server,Web前端,agent
[root@centos7 ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
# 查看刚才安装的包
[root@centos7 ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.0.25
/usr/share/doc/zabbix-server-mysql-3.0.25/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.0.25/COPYING
/usr/share/doc/zabbix-server-mysql-3.0.25/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.0.25/NEWS
/usr/share/doc/zabbix-server-mysql-3.0.25/README
/usr/share/doc/zabbix-server-mysql-3.0.25/create.sql.gz #解压可获得初始化sql
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
# 查看刚才安装的包
[root@centos7 ~]# rpm -ql zabbix-web
但是需要注意的是,此 create.sql.gz 脚本中 sql 只会在对应的数据库中初始化 zabbix 所需要的数据库表,但是不会创建
zabbix 数据库,所以,创建 zabbix 数据库这一步骤,还是需要我们手动进行的.
3. 创建初始数据库
参考:centos7 yum配置安装Mariadb数据库
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
4. 导入初始架构和数据,系统将提示您输入新创建的密码。
[root@centos7 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
或者
[root@centos7 ~]# mysql -uroot -p -Dzabbix < /usr/share/doc/zabbix-server-mysql*/create.sql
# 导入完成,查看zabbix数据库
# mysql -uroot -p
password
MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
。。。。。。。。。。。。。。。。
5. 为Zabbix server配置数据库
[root@centos7 ~]# /etc/zabbix/zabbix_server.conf
DBPassword=password
此处列出我们可能会经常修改的参数,如下:
ListenPort=10051
#服务端监听的端口,保持默认即可
SourceIP=
#通过 SourceIP 参数可以指定服务端的源 IP,当 server 端有多个 IP 地址时,我们可以指定服务端使用固定的 IP 与 agent 端进行通讯,为了安全起见,agent 端会基于 IP 进行一定的访问控制,也就是说 agent 端只允许指定的 IP 以 server 端的身份采集被监控主机的数据,如果 IP 不对应,则不允许采集被监控主机的数据,所以,当 server 端有多个 IP 时,我们可以通过 SourceIP 参数,指定 server 端通过哪个 IP 采集被监控主机的数据。
LogType=file
#通过 LogType 参数,可以指定通过哪种方式记录日志,此参数可以设置为三种值,system、file、console,system 表示将日志发往 syslog,file 表示使用指定的文件作为日志文件,console 表示将日志发往控制台,默认为 file。
LogFile=/var/log/zabbix/zabbix_server.log
#当 LogType 设置为 file 时,通过 LogFile 参数设置日志文件位置。
LogFileSize=0
#指明日志文件达到多大时自动滚动,单位为 MB,如果设置 LogFileSize 为 50,表示日志大小达到 50MB 滚动一次,设置为 0 表示日志文件不会滚动,所有日志保存在一个文件中。
DebugLevel=3
#通过 DebugLevel 参数可以定义日志的详细程度,即为日志级别。
DBHost=localhost
#通过 DBHost 参数设置 zabbix 数据库所在的服务器 IP,由于此处 zabbix 与 mysql 安装在同一服务器上,所以此处设置为 localhost
DBName=zabbix
#通过 DBName 指定 zabbix 数据库对应的名称
DBUser=zabbix
#通过 DBUser 指定 zabbix 数据库用户名
DBPassword=zabbix
#通过 DBPassword 指定 zabbix 数据库用户的密码
DBPort=3306
#通过 DBPort 指定 zabbix 所在数据库服务监听的端口号
DBSocket=/var/lib/mysql/mysql.sock
#如果数据库服务与 server 端在同一台服务器上,可以通过 DBSocket 指定数据库本地套接字文件位置, 但是需要注意,即使设置了 mysql 套接字文件的位置,还是需要配合 DBHost 参数,否则在登录 zabbix 控制台时,可能会出现警告,在 zabbix server 的 log 中,也可能会出现无法连接到数据库的提示。
根据上述的配置参数的解释,根据具体需求进行实际配置即可。
配置完成后,启动 zabbix 服务端即可,启动后,10051 端口已经被监听。
6. 为Zabbix前端配置PHP
zabbix还是比较贴心的,针对httpd,zabbix-web包中已经包含了对应zabbix文档路径的配置文件。编辑配置文件/etc/httpd/conf.d/zabbix.conf
[root@centos7 ~]# vim /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
只要将时区稍加改动即可直接使用
php_value date.timezone Asia/Shanghai
7. 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd
现在您的Zabbix server已经安装完成并开始运行
8. 初始化zabbix 配置
完成上述安装步骤后,访问 http://Zabbix_Web_IP/zabbix ,可以看到如下图的zabbix安装页面,点击下一步按钮
可以看到,zabbix自动检查了安装环境是否满足要求,如果出现不满足要求的情况,需要进一步处理,此处没有问题,点击下一步
此处zabbix需要配置数据库连接,此处配置数据库的类型,IP,端口,数据库名,用户密码等信息,端口填写0表示使用默认端口(3306端口)
此处,我们可以填写zabbix server的详细信息,包括IP地址,端口号,以及server名称等,填写完成后点击下一步。
在配置之前,请确定概要信息无误,点击下一步。
从提示可以看出,初始化配置已经完成,而且zabbix提示我们,这些配置信息都被保存到了/etc/zabbix/web/zabbix.conf.php
配置文件中,如果想要更改刚才的一些配置,可以通过修改此文件完成,初始化已经完成,点击结束即可。
点击完成按钮后,可以看到zabbix的登录页面,默认的管理员用户为Admin,密码为zabbix,输入用户名密码后登录。
[root@centos7 ~]# vim /usr/share/zabbix/include/locales.inc.php
找到中文对应的值,将显示属性设置为 true 即可。
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
但是,你可能还会遇见中文乱码的情况,如果遇到中文乱码,可以从 windows 中挑选一个顺眼的中文字体,将对应字体文件放置到 linux 中 zabbix web 的字体目录中,因为我们使用的是 rpm 包安装的 zabbix web,所以 zabbix web 的默认字体目录为 / usr/share/zabbix/fonts
,windows 中的字体文件后缀名如果为 TTF,当我们把对应字体文件拷贝到 zabbix 字体目录时,需要修改其后缀名为小写的 ttf(如果本来就是小写的则不用任何修改了),字体文件上传完毕后,修改/ usr/share/zabbix/include/defines.inc.php
配置文件,将下图中显示字体部分修改为刚才上传的字体文件对应的名称即可。
[root@centos7 ~]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_FONT_NAME', 'graphfont');
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
比如,我选择了 "微软雅黑" 字体,将 msyh.ttf 文件上传至 zabbix 的 fonts 目录后,配置文件修改如下。
define('ZBX_FONT_NAME', 'msyh');
define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name
好了,上述操作完成后,zabbix 控制台即显示为中文了。
server is not running:the information displayed may not be current
可能是由如下几个原因引起的:
1、zabbix-server 未正常启动
2、已经开启 selinux,但是没有正常设置对应权限。
3、zabbix-server 未能正常连接数据库。
4、zabbix.conf.php 文件中 $ZBX_SERVER 参数对应的主机名不能正常解析。
5、其他原因,需要查看 zabbix server 日志。
如果在访问 zabbix 控制台时并没有出现上述提示,忽略上述描述即可。
为了更加安全,我们不应该使用管理员的默认密码,所以,我们最好先修改管理员密码
好了,我们以后的监控工作就要围绕这个 web 界面展开了,为了以后更好的展开工作,我们先大概的了解一下 zabbix 的菜单。
管理菜单中,一般用于管理 zabbix 自身及 zabbix 相关设置。