环境介绍:
操作系统:CentOS Linux release 7.6(最小化安装,关闭selinux和firewalld)
zabbix版本:zabbix-server-mysql-4.0.15 zabbix-agent-4.0.15 zabbix-web-mysql-4.0.15
zabbix源下载地址:https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
注:如果源文件安装错了(比如centos7系统上错误安装了centos8的zabbix源,则安装zabbix肯定报错),那么就需要卸载掉release,再重新安装centos7的源文件,或者升级openssl到1.1版本,这里我们选择重新安装源文件。
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm #此时错误安装了centos8的zabbix源
yum repolist
yum -y install zabbix-server-mysql.x86_64 #因为源文件安装错误,此次安装肯定会报错缺少文件,需要openssl.1.1版本支持
yum remove -y zabbix-release.noarch #卸载掉zabbix-release,成功后/etc/yum.repos.d/目录下的zabbix.repo文件会被删除
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm #然后再安装正确的源
yum clean all
yum repolist
yum -y install zabbix-server-mysql.x86_64 #此时再安装zabbix-server-mysql则成功
1、首先安装epel-release源,epel源中包含centos基础环境中没有的一些基础软件(这一步不做也可以,不影响zabbix安装,但是做了会使系统更加完善)
yum -y install epel-release.noarch
2、然后安装Development Tools工具组,里面有一些常用的开发和编译的工具包(这一步也可以不做,不影响zabbix安装,理由同上)
yum groups install 'Development tools'
3、添加zabbix4.0镜像源
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum repolist
4、安装zabbix连接mysql的服务包
yum -y install zabbix-server-mysql.x86_64
5、安装zabbix前端web的服务包(此服务包包含了httpd和php,安装完成后/etc目录下就有了httpd目录和php.ini文件)
yum -y install yum -y install zabbix-web-mysql
6、接下来需要安装zabbix-server需要的后端数据库,这里选择mysql5.7,centos自带的是mariaDB,所以需要去mysql官网下载源文件
下载地址:https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
注:mysql的官方源文件里同时包含多个版本的mysql下载,如果不修改源文件,默认是下载最新版的mysql8.0,我们这里用的是5.7,所以需要修改源文件参数
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
cat /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1 #这里将原本的0修改为1,表示开启此版本下载
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0 #这里将原本的1修改为0,表示关闭此版本下载
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
注:一个repo文件中如果有多个版本的服务包,那么必须有且只有一个版本的服务包的enabled=1,否则会报错
yum repolist
yum -y install mysql-community-server.x86_64 #上述文件内容修改完毕后,这里执行此命令,yum会自动识别为下载mysql5.7
7、后端数据库mysql初始化
mysql启动后会自动随机创建一个初始密码,在mysqld.log日志里可以找到,用初始密码进入数据库再修改登陆密码,然后再进行下一步操作,如果采用此方法,则跳过地7步mysql_secure_installation,直接进行第8步,数据库密码方法修改可以参照第7步的补充说明,密码修改成功后,也可以再回来执行mysql_secure_installation
systemctl restart mysqld
systemctl status mysqld.service #确认mysql启动成功
mysql_secure_installation #进行数据库初始化,将会一次出现下面的选项,一步一步选择即可
Change the password for root ? ((Press y|Y for Yes, any other key for No) : #是否修改root用户的数据库密码
注:这里如果要将root用户登录密码修改为比较简单的(比如123456),则需要事先修改配置文件/etc/my.cnf。如果密码复杂度足够则不用,后续会说明修改配置文件的内容
Remove anonymous users? (Press y|Y for Yes, any other key for No) : #是否删除匿名用户
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : #是否禁止root用户远程登录
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : #是否删除'test'测试库
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : #是否重新加载权限
补充说明:mysql的登陆密码复杂度修改方法:
vim /etc/my.cnf #打开mysql的主配置文件,在mysqld里加上以下两个参数
[mysqld]
validate_password_policy=0 #此参数表示验证密码策略的等级,0表示最低级,不检测密码复杂度
validate_password_length=6 #此参数表示密码的限制长度,这里最小值设为6
保存修改后重启mysqld即可
alter user 'root'@'localhost' identified by '123456'; #用初始密码登录数据库后执行此命令即可修改密码,这里将登录密码修改为123456
8、然后创建zabbix需要用到的库,并授权zabbix访问用户
mysql -uroot -p'登陆密码' #进入数据库
create database zabbix character set utf8 collate utf8_bin; #创建一个名为zabbix的库,并指定编码(字符集)为utf-8
show databases; #列表里有zabbix库,创建成功
+--------------------+
| Database |
+--------------------+
```
| zabbix |
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456'; #授权本机zabbix用户拥有zabbix库的所有权限,这里访问数据库的密码为'123456'
flush privileges; #刷新权限列表
9、导入zabbix数据库的表结构和相关数据
zabbix安装完成以后就自带了数据库相关数据文件create.sql.gz,在/usr/share/doc/zabbix-server-mysql-4.0.15目录下
zcat create.sql.gz | mysql -uzabbix -p'123456' zabbix #将zabbix数据库相关数据文件导入之前创建好的zabbix库中
导入完成后,进入数据库,查看zabbix库中表结构,大约会导入144张表
mysql -uroot -p'登陆密码'
use zabbix;
show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
```
144 rows in set (0.00 sec)
10、mysql部分操作完成,下面开始修改zabbix的配置文件/etc/zabbix/zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf #打开zabbix配置文件,并确保以下参数配置正确
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456 #对应之前数据库授权用户zabbix的密码
保存退出后可以启动zabbix-server
systemctl start zabbix-server.service
11、接下来配置zabbix前端的相关参数,打开php的配置文件/etc/php.ini
注:此处必须配置的参数只有date.timezone,否则zabbix的web端无法正常初始化,其余配置参数不是必须,但是可以优化zabbix的运行效率,而且这里的配置只是满足zabbix初始化运行的要求,后续还需要根据生产环境的要求进行修改
vim /etc/php.ini
max_execution_time = 300 #首先修改执行上传文件时间限制为300秒,默认30秒。修改原因:一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.这就导致出现 无法打开网页的情况.
date.timezone = Asia/shanghai #修改php的时区
memory_limit = 128M #允许使用最大内存限制,默认也是128M,确认无误即可
post_max_size = 16M #修改数据包的最大限制,设定 POST 数据所允许的最大值,影响php文件上传大小,默认为8M
upload_max_filesize = 2M #上传的文件的最大值,默认为2M,确认无误即可
注:另外要说明的是,post_max_size 大于 upload_max_filesize 为佳
max_input_vars = 10000 #PHP最大表单提交限制,默认为1000
always_populate_raw_post_data = -1 #使用 always_populate_raw_post_data 会产生 E_DEPRECATED 错误。 需使用 php://input 替代$HTTP_RAW_POST_DATA,$HTTP_RAW_POST_DATA已被废弃将被移除,设置always_populate_raw_post_data为-1,这样会强制 $HTTP_RAW_POST_DATA 未定义 默认注释,值为ON
上述配置完成后启动httpd
systemctl start httpd
httpd启动成功则zabbix已经成功运行起来,接下来通过浏览器访问zabbix的web端,开始配置zabbix初始化
13、访问zabbix前端地址:http://zabbix-server服务器IP/zabbix
注:界面默认英文,通过Administration——>Users——>Admin——>Language——>Chinese(zh_CN)可以将页面设置为中文
14、因为zabbix_server也需要监控本机的状态,所以在本机也安装上zabbix-agent
yum -y install zabbix-agent.x86_64
安装成功之后,确认以下配置文件/etc/zabbix/zabbix_agentd.conf相关参数是否正确
Server=127.0.0.1 #此处为服务端IP,因为服务端也在本机,所以此处为回环地址
ServerActive=127.0.0.1 #此处为服务端IP,因为服务端也在本机,所以此处为回环地址
Hostname=Zabbix server #此处必须和服务端初始化时的Name相同,前文也有提及
以上信息确认无误后可以启动zabbix-agent.service服务
systemctl restart zabbix-agent.service
然后在zabbix的web页面的检测——>最新数据——>主机选择zabbix server,点击应用,则可以看到zabbix监控本机的实时数据了