@Mr-13
2020-09-23T11:33:22.000000Z
字数 5986
阅读 62
zabbix
# 安装php
[root@mr13 ~]# yum install php
# 安装php扩展
[root@mr13 ~]# yum install php-mysql php-gd php-ldap php-odbc php-pear php-xm lphp-xmlrpc
[root@mr13 ~]# yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils php-snmp
# 安装httpd(apache)
[root@mr13 ~]# yum install httpd
配置zabbix官方的域名源:http://repo.zabbix.com/
根据系统版本及需要安装的zabbix版本选择源;
我的配置:
阿里云服务ECS、Centos7(rhel)x64、需要安装zabbix4.4
配置源:http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/
如果安装过程中,出现了下面的报错:
别问,问就是被墙了,直接换成阿里的yum源就完了:https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/
$ vim /etc/yum.repos.d/zabbix.repo
[zabbix]
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/
gpgcheck=0
enabled=1
恩,就这一句完事儿
[root@mr13 ~]# yum install zabbix-server-mysql zabbix-get
这里我们将mysql与zabbix安装在同一台服务器上,安装mysql的过程此处不再赘述,当我们安装完mysql,需要初始化zabbix的数据库,而在我们安装zabbix server时,其中就包含初始化zabbix数据库的sql脚本。
我们查看刚才安装完成的zabbix-server-mysql,可以看到一个create.sql.gz的包。
拷贝解压出来是数据库的初始化脚本
但是需要注意的是,此sql脚本中sql只会在对应的数据库中初始化zabbix所需要的数据库表,但是不会创建zabbix数据库,所以,创建zabbix数据库这一步骤,还是需要我们手动进行的,所以,此处我们先手动创建zabbix的数据库,过程如下。
create database zabbix_server character set utf8 collate utf8_bin;
[root@mr13 ~]# mysql -u root -p
Enter password: # 输入密码
mysql> create database zabbix charset 'utf8'; # 创建一个名为zabbix的数据库
mysql> CREATE USER zabbix IDENTIFIED BY 'Zabbix1234@'; # 创建数据库用户zabbix
mysql> update user set host='%' where user='zabbix'; # 临时允许用户网络访问,设置后关闭;
mysql> use zabbix; # 切换到zabbix数据库
mysql> grant all privileges on zabbix.* to zabbix@'%'; # 给zabbix用户赋权
mysql> update user set host='localhost' where user='zabbix'; # 关闭用户的网络访问
mysql> FLUSH PRIVILEGES; # 刷新权限,使之生效
然后开始导入 create.sql
数据库初始化脚本
mysql>
mysql> use zabbix;
mysql> source /software/create.sql
# 这里我是将初始化脚本文件解压到了这个目录,安装的时候根据实际情况来
# 脚本导入时间会稍微有点长,稍等一下;导入完成后,可以看到对应的表已经生成。
server端已经安装完毕,并且数据库也已经初始化,现在我们开始配置server端,编辑zabbix server端的配置文件。
此处列出我们可能会经常修改的参数,如下:
$ vim /etc/zabbix/zabbix_server.conf
------------------------------------------------------------------------
DBHost=localhost
# 通过DBHost参数设置zabbix数据库所在的服务器IP
# 由于此处zabbix与mysql安装在同一服务器上,所以此处设置为localhost
DBName=zabbix # 通过DBName指定zabbix数据库对应的名称
DBUser=zabbix # 通过DBUser指定zabbix数据库用户名
DBPassword=Zabbix1234@ # 通过DBPassword指定zabbix数据库用户的密码
DBPort=3306 # 通过DBPort指定zabbix所在数据库服务监听的端口号
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参数可以定义日志的详细程度,即为日志级别。
------------------------------------------------------------------------------------------
DBSocket=/var/lib/mysql/mysql.sock
# 如果数据库服务与server端在同一台服务器上,可以通过DBSocket指定数据库本地套接字文件位置,但是需要注意,即使设置了mysql套接字文件的位置,还是需要配合DBHost参数,否则在登录zabbix控制台时,可能会出现警告,在zabbix server的log中,也可能会出现无法连接到数据库的提示。
启动zabbix-server
$ systemctl start zabbix-server.service
因为zabbix web是php开发的,部署运行需要web环境;需要先安装php和apache(httpd)
$ yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml
完成上述步骤之后,安装zabbix web的两个包,对应版本为4.4
# zabbix的yum源我们已经在/etc/yum.repos.d/zabbix.repo 中指定
$ yum install zabbix-web zabbix-web-mysql
查看一下刚刚zabbix web安装所包含的文件
# 因为包含的文件过多,xshell窗口显示不全,我们把打印内容输出到文件进行查看
$ rpm -ql zabbix-web >> /software/123.txt
$ vim /software/123.txt
上图可以看到,zabbix web的应用存放在:/usr/share/zabbix 中;
同时,zabbix web针对httpd,已经添加了对应的zabbix配置文件;此文件中已经为我们准备好了默认配置,如果不使用httpd的虚拟主机,只要将时区稍加改动即可直接使用。修改时区如下:
启动httpd
$ systemctl start httpd.service
完成上述安装步骤后,访问:http://192.168.0.123/zabbix,可以看到如下图的zabbix安装页面,点击下一步
安装环境检查,如果出现不满足要求的情况,需要进一步处理后重新检查;点击下一步
输入数据库配置信息,点击下一步
填写zabbix server的详细信息:IP地址、端口号、server名称;点击下一步
执行配置前,信息确认页,检查填写信息无误,点击下一步
配置完成提示页,注意当前页面会提示:前面所有的配置信息都被保存到了配置文件:/etc/zabbix/web/zabbix.conf.php ;如果想更改一些配置,可以通过修改此文件完成,点击结束
点击完成后,进入zabbix的登录页,默认的管理员账号密码为:Admin / zabbix
登陆后,总览页面;内容都是英文的,亿脸懵逼,改语言去
这样才对,还是中文看着舒服
从安全性考虑,先修改一下管理员的默认密码
zabbix server 和 zabbix web都已经有了,现在就差agent端来采集上报数据了。
agent的安装比较简单,直接安装agent的两个包即可;agent的版本可以和server版本不一致,具体兼容参见zabbix官网。
# 安装zabbix agent
$ yum install zabbix-agent zabbix-sender
# 查看一下zabbix-agent都安装了哪些文件
$ rpm -ql zabbix-agent
这里找到agent的配置文件;zabbix的“主动模式”、“被动模式”都需要在该配置文件中进行定义;"主动模式"与"被动模式"都是对于agent端来说的,而且它们可以同时存在,并不冲突。
先配置一下最常用的agent端配置。打开配置文件,首先看到的就是"通用参数配置段",我们可以在此配置段配置zabbix_agent进程的进程编号文件路径,存储日志方式,日志文件位置,日志滚动阈值等常用设定;zabbix_agent配置文件的"通用配置段"中的参数大多数与zabbix_server配置文件中的常用参数意义相同,所以,此处不再过多赘述,如果没有特殊需要,保持默认即可。
这里先看一下马上会用到的两个配置段,"被动模式配置段" Passive checks related
与"主动模式配置段" Active checks related
被动模式相关参数如下:
Server:
用于指定允许哪台服务器拉取当前服务器的数据,当agent端工作于被动模式,则代表server端会主动拉取agent端数据,那么server端的IP必须与此参数的IP对应,此参数用于实现基于IP的访问控制,如果有多个IP ,可以使用逗号隔开。
ListenPort:
用于指定当agent端工作于被动模式时所监听的端口号,默认端口为10050,也就是说,server端默认访问10050端口,从而拉取数据。
ListenIP:
用于指定agent端工作于被动模式时所监听的IP地址,默认值为0.0.0.0,表示监听本机的所有IP地址。
StartAgents:
用于指定预生成的agent进程数量。
主动模式的常用参数如下:
ServerActive:
此参数用于指定当agent端工作于主动模式时,将信息主动推送到哪台server上,当有多个IP时,可以用逗号隔开。
Hostname:
此参数用于指定当前主机的主机名,server端通过此参数对应的主机名识别当前主机。
RefreshActiveChecks:
此参数用于指明agent端每多少秒主动将采集到的数据发往server端。
这里我们同时设置“被动模式”和“主动模式”;演示中,server、web、agent都是部署在同一台服务器的;默认的备注文件基本不用做改动;仅修改一下主机名(Hostname)即可。
启动zabbix-agent
$ systemctl start zabbix-agent.service