Zabbix安装

Zabbix安装

Author cherryc

Date 2018/6/3

Desc zabbix server和zabbix agent在centos中的安装

      • Zabbix安装
        • 查看linxu版本信息
        • 安装zabbix-server
          • 1) 配置rpm Repository
          • 2) 安装zabbix-server-mysql和zabbix-web-mysql
        • 初始化zabbix数据库
          • 1) 安装并且启动mysql5.6及初始化数据库信息
          • 2) 创建zabbix数据库,创建zabbix账号
          • 3) zabbix数据库初始化
        • 编辑zabbix-server的配置文件
        • 启动zabbix-server
        • 安装zabbix-web
        • 初始化zabbix 配置
        • 安装Zabbix-agent
          • zabbix的主动模式和被动模式介绍

zabbix主要是对服务器的各项配置做实时监控,这可以帮助我们在压测过程中发现服务器配置瓶颈,优化系统性能,提高用户体验度。安装zabbix其实就是安装几个重要控件

zabbix server zabbix database zabbix web zabbix agent

因为zabbix3.X依赖的php版本不能低于php5.4,而centos6.8中,php默认版本为5.3。 所以安装的时候需要确认系统版本信息,然后选择对应的zabbix版本。

本次安装的服务器信息是Centos7.1,zabbix版本为3.0.17。下边详细介绍zabbix安装的步骤

查看linxu版本信息

[root@localhost cxh]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core) 

安装zabbix-server

安装可以选择从zabbix的源代码去编译或者直接使用官网的RPM包进行安装。如果不是对zabbix有代码级别的定制需求的话,推荐使用RPM包进行安装。

1) 配置rpm Repository

rpm -vhi http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

2) 安装zabbix-server-mysql和zabbix-web-mysql

由于我们使用mysql作为数据库,所以,在安装zabbix3.X的版本的server端时,需要安装zabbix-server-mysql包,在3.X的zabbix版本中,并没有单独的zabbix server端程序包,安装zabbix-server-mysql包即为安装了server端包

yum install -y zabbix-server-mysql zabbix-web-mysql


由于zabbix需要依赖LNMP或者LAMP环境 ,所以我们此处查询下php版本,如下5.4

[root@localhost cxh]# php -v
PHP 5.4.16 (cli) (built: Apr 12 2018 19:02:01) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

安装完成上述两个包以后,server即为安装完成,是不是很简单,server端的相关配置我们一会儿再进行。

初始化zabbix数据库

1) 安装并且启动mysql5.6及初始化数据库信息

rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-release-el6-5.noarch.rpm

yum install -y mysql-community-server (mysql安装失败)

因为centos7.2默认安装了mariadb-libs,所以先要卸载掉。查看是否安装mariadb:rpm -qa | grep mariadb

卸载mariadb(注意检查依赖,判断是否可以强制删除,删除上变的三个文件)

rpm -e –nodeps mariadb-libs-5.5.52-1.el7.x86_64 (此处只写了一个命令,请灵活处理)

然后再执行yum install -y mysql-community-server

systemctl start mysqld

2) 创建zabbix数据库,创建zabbix账号
mysql> create database zabbix character set utf8 collate utf8_bin;
--------------
create database zabbix character set utf8 collate utf8_bin
--------------
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
--------------
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'
--------------
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
--------------
flush privileges
--------------
Query OK, 0 rows affected (0.00 sec)
3) zabbix数据库初始化

zabbix数据库建立之后,执行对应的sql初始化脚本初始化数据库。先查询下zabbix数据库下的表,发现没有表结构。

使用命令rpm -ql zabbix-server-mysql查看刚才安装的zabbix-server-mysql,可以看到有一个数据库初始化的包create.sql.gz,zabbix-server-mysql安装在/usr/share/doc/目录下

[root@localhost cxh]# 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.17
/usr/share/doc/zabbix-server-mysql-3.0.17/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.0.17/COPYING
/usr/share/doc/zabbix-server-mysql-3.0.17/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.0.17/NEWS
/usr/share/doc/zabbix-server-mysql-3.0.17/README
/usr/share/doc/zabbix-server-mysql-3.0.17/create.sql.gz
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

进入目录下,使用命令gunzip create.sql.gz 解压此包可以得到数据库脚本create.sql

[root@localhost cxh]# cd /usr/share/doc/zabbix-server-mysql-3.0.17
[root@localhost zabbix-server-mysql-3.0.17]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@localhost zabbix-server-mysql-3.0.17]# gunzip create.sql.gz 
[root@localhost zabbix-server-mysql-3.0.17]# ls
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README
[root@localhost zabbix-server-mysql-3.0.17]# 

指定数据库用户名密码和数据库名称,执行sql初始化脚本: mysql -uroot -p -Dzabbix < create.sql

查看数据库表,如下表示数据库导入成功!

至此,server端已经安装完毕,并且数据库也已经初始化,现在我们开始配置server端,编辑zabbix server端的配置文件。

编辑zabbix-server的配置文件

设置zabbix数据库所在的服务器IPDBHost,数据库名称,数据库用户名密码

vim /etc/zabbix/zabbix_server.conf

此处列出我们可能会经常修改的参数,如下:
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-server

首先安装httpd服务,yum install httpd

修改配置文件/etc/httpd/conf.d/zabbix.conf,时区改成 Asia/Shanghai

vim /etc/httpd/conf.d/zabbix.conf

通过systemctl start zabbix-server.service启动zabbix-server失败,通过journalctl -xn查询错误原因


看上图可知,是由于SELinux的原因,所以此处临时关闭SELinux

img

如下:zabbix-server启动成功!

ss -tnl 查看哪些端口在使用

配置完成后,启动zabbix服务端即可,启动后,10051端口已经被监听。

好了,zabbix server已经启动,剩下的就是初始化zabbix设置了,但是初始化zabbix的设置需要zabbix web提供的GUI图形化界面,所以,我们需要先安装zabbix web。

安装zabbix-web

zabbix web可以安装在单独的主机上,只要能连接到zabbix database所在的数据库即可,但是此处为了方便,我们将zabbix web与 mysql以及 zabbix server安装在同一台服务器上。 因为zabbix web需要lamp环境,所以,此处我们将会依赖到的环境先安装好。 安装lamp环境

yum install php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml

然后安装zabbix-web:yum install zabbix-web

修改apache配置文件支持index.php: vim /etc/httpd/conf/httpd.conf

启动httpd和zabbix-server

systemctl start httpd.service

systemctl start zabbix-server.service

问题

启动httpd和zabbix-server服务后,访问web页面无法显示。

需要将宿主机的10051端口对外访问(或者关闭防火墙):

[root@localhost etc]# firewall-cmd --zone=public --add-port=10051/tcp --permanent
success
[root@localhost etc]# firewall-cmd --reload
success
[root@localhost etc]# firewall-cmd --zone=public --query-port=10051/tcp
yes

httpd监听的80端口也要对外访问

[root@localhost cxh]# firewall-cmd --zone=public --query-port=80/tcp
no
[root@localhost cxh]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost cxh]# firewall-cmd --reload
success
[root@localhost cxh]# firewall-cmd --zone=public --query-port=80/tcp
yes 

启动httpd服务和zabbix服务

[root@localhost cxh]# systemctl start httpd
[root@localhost cxh]# systemctl start zabbix-server
[root@localhost cxh]# 

初始化zabbix 配置

访问zabbix主页:http://192.168.193.1/zabbix/index.php





用户名密码 Admin zabbix

如果出现上图中的提示zabbix-server is not running,可能是由如下几个原因引起的:

1、zabbix-server未正常启动

2、已经开启selinux,但是没有正常设置对应权限。

3、zabbix-server未能正常连接数据库。

4、zabbix.conf.php文件中$ZBX_SERVER参数对应的主机名不能正常解析。

5、其他原因,需要查看zabbix server日志。

解决方法:

vi /etc/zabbix/web/zabbix.conf.php

然后启动httpd, setenforce 0

再启动zabbix,可以看到zabbix-server处于运行状态

zabbix-server的安装到此结束!

安装Zabbix-agent

zabbix-server zabbix-web都安装好之后,就剩下zabbix-agent了。只需要执行命令yum install zabbix-agent zabbix-sender 就可以实现agent端的安装。

//添加下载源
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

//执行安装命令
yum install zabbix-agent zabbix-sender

//查看agent的安装目录等,agent的配置文件为/etc/zabbix/zabbix_agentd.conf
rpm -ql zabbix-agent

agent安装好之后,需要修改agent的配置文件:vim /etc/zabbix/zabbix_agentd.conf

我们此处使用被动模式监控,只需要指定zabbix-server端的ip地址,其他默认,默认监听端口号为10050

agent配置好之后,启动服务:systemctl start zabbix-agent

zabbix的主动模式和被动模式介绍

zabbix-agent发送数据给zabbix-server分为主动(Active checks related)和被动(Passive checks related)两种模式,主动模式是zabbix客户端主动向服务端发送数据,被动模式是被动等待server端来取数据。

主动模式的流程:客户端每隔一段时间主动向服务端发起连接请求––>服务端收到请求,查询客户端需要取的item信息,发送给客户端––>客户端收集数据发送服务端––>结束。

主动模式的常用参数如下:
ServerActive:此参数用于指定当agent端工作于主动模式时,将信息主动推送到哪台server上,当有多个IP时,可以用逗号隔开。
Hostname:此参数用于指定当前主机的主机名,server端通过此参数对应的主机名识别当前主机。
RefreshActiveChecks:此参数用于指明agent端每多少秒主动将采集到的数据发往server端。
此处,我们同时设置"被动模式""主动模式"的如下参数,其他保持默认即可,修改完成后保存退出。
Server=192.168.1.108
ServerActive=192.168.1.108
Hostname=testzbx1.zsythink.net

被动模式的流程:客户端开一个端口默认10050,等待服务端来取数据,然后客户端收集数据发送到服务端,结束。

被动模式相关参数如下:
Server:用于指定允许哪台服务器拉取当前服务器的数据,当agent端工作于被动模式,则代表server端会主动拉取agent端数据,那么server端的IP必须与此参数的IP对应,此参数用于实现基于IP的访问控制,如果有多个IP ,可以使用逗号隔开。
ListenPort:用于指定当agent端工作于被动模式时所监听的端口号,默认端口为10050,也就是说,server端默认访问10050端口,从而拉取数据。
ListenIP:用于指定agent端工作于被动模式时所监听的IP地址,默认值为0.0.0.0,表示监听本机的所有IP地址。
StartAgents:用于指定预生成的agent进程数量。

你可能感兴趣的:(zabbix)