一、环境准备
1.1 主机规划
这里先对本次实验的机器做一个规划,之后的实验均通过这两台机器完成。
序号 | IP地址 | 主机名 | CPU | 内存 | 硬盘 | 安装服务 |
1 | 10.0.0.11 | zabbix-server | 1C | 2G | 20GB | zabbix服务端 |
2 | 10.0.0.12 | zabbix-agent | 1C | 1G | 20GB | zabbix客户端 |
1.2 操作系统选择
操作系统选择:CentOS7.4,具体下载地址可以参考这篇文章:https://blog.51cto.com/13178102/2115459
虚拟化软件选择:Vmware Workstation
系统安装过程省略。。。
1.3 系统基础优化
系统安装完成之后,做一下基本的优化操作:
#1.关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service #2.关闭selinux setenforce 0 sed -i '7s#enforcing#disabled#g' /etc/selinux/config #3.安装基础软件 yum -y install vim wget lrzsz nmap tree lsof ntpdate unzip bash-completion #4.设置时间同步 crontab -e */20 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null && hwclock -w
#5.配置/etc/hosts文件
10.0.0.11 zabbix-server
10.0.0.12 zabbix-agent
1.4 硬件资源配置参考
规模 | 平台 | CPU/内存 | 数据库 | 受监控的主机数量 |
---|---|---|---|---|
小型 | CentOS | Virtual Appliance | MySQL InnoDB | 100 |
中型 | CentOS | 2 CPU cores/2GB | MySQL InnoDB | 500 |
大型 | RedHat Enterprise Linux | 4 CPU cores/8GB | RAID10 MySQL InnoDB 或 PostgreSQL | >1000 |
极大型 | RedHat Enterprise Linux | 8 CPU cores/16GB | Fast RAID10 MySQL InnoDB 或 PostgreSQL | >10000 |
二、zabbix版本介绍
1、zabbix已经有2.0、3.0、4.0这三个大版本
2、大版本号zabbix官方会有5年的技术支持,属于LTS版本。例如4.0版本会支持到2023年。
3、zabbix是每1.5年更新一次大版本。
4、版本的选择最好是最近的一次LTS版本,因此本实验的版本为4.0
三、安装zabbix server
官方文档:https://www.zabbix.com/cn/download?zabbix=4.0&os_distribution=red_hat_enterprise_linux&os_version=7&db=mysql
以下步骤在zabbix-server主机上操作,安装zabbix server服务!
3.1 安装MySQL数据库
官网的文档好像没有安装MySQL数据库的步骤,因此我们需要先装一个mariadb服务。这里的MySQL只是一个简单应用,生产环境建议做单独的MySQL集群。
#安装MySQL yum -y install mariadb mariadb-server #启动MySQL systemctl start mariadb.service systemctl enable mariadb.service
#初始化MySQL mysql_secure_installation 回车 Y 123456 123456 Y Y Y Y Y
登陆mariadb后能正常查询,说明数据库安装成功!
3.2 安装Zabbix Server
- 安装yum源
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm yum clean all
- 安装zabbix server,web前端,agent
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
- 创建zabbix数据库
# 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 '123456'; mysql> quit;
#注意这里的数据库密码,之后zabbix server的配置需要用到。
- 导入数据库数据(yum安装时已自动将sql下载)
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#数据导入完成后可以看到一共有145张表
- 为zabbix配置数据库
编辑配置文件:/etc/zabbix/zabbix_server.conf
DBPassword=123456
- 为zabbix前端配置PHP
编辑配置文件:/etc/httpd/conf.d/zabbix.conf 将: # php_value date.timezone Europe/Riga 修改为: php_value date.timezone Asia/Shanghai
- 启动zabbix server和agent进程
systemctl start zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
zabbix的基本安装到此完毕,已经可以登陆前端进行配置!这里再做一下https的配置,之后均通过https来访问。
http前端访问地址:http://10.0.0.11/zabbix
3.3 安全设置
Zabbix的功能不依赖于此处的实践,但建议用他们提高系统的安全性。
3.3.1 agent的安全用户
在默认的配置中,Zabbix server 和 Zabbix agent 进程共享一个“zabbix”用户。 如果您希望确保 Zabbix agent 无法访问 Zabbix server 配置中的敏感详细信息(例如,数据库登录信息),则应以不同的用户身份运行 Zabbix agent:
-
创建一个安全用户;
-
在 Zabbix agent 的 配置文件 中指定此用户(修改 'User' parameter);
-
以拥有管理员权限的用户重启 Zabbix agent。之后,此权限将赋予给先前指定的用户。
3.3.2 为zabbix前端设置SSL
目前很多的http服务都在往更安全的https,考虑到安全的因素,通过https来访问是一个不错的选择。
- 安装mod_ssl
yum install mod_ssl
- 为SSL keys创建目录
mkdir -p /etc/httpd/ssl/private chmod 700 /etc/httpd/ssl/private
- 创建SSL证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/private/apache-selfsigned.key -out /etc/httpd/ssl/apache-selfsigned.crt
#需要填写如下内容
Country Name (两个字母) [XX]:CN State or Province Name (全名) []:SICHUAN Locality Name (eg, city) [默认的城市]:CHENGDU Organization Name (eg, company) [默认的公司名]:HTHX Organizational Unit Name (eg, section) []:HTHX Common Name (eg, your name or your server's hostname) []:zabbix-server Email Address []:
- 编辑Apache SSL配置
编辑配置文件:/etc/httpd/conf.d/ssl.conf DocumentRoot "/usr/share/zabbix" ServerName zabbix-server:443 SSLCertificateFile /etc/httpd/ssl/apache-selfsigned.crt SSLCertificateKeyFile /etc/httpd/ssl/private/apache-selfsigned.key
- 重启Apache服务
systemctl restart httpd.service
3.3.3 在URL根目录启用Zabbix
完成了上面的过程后,可以通过http和https两种方式访问,还应该将http的请求跳转到https,不让其通过http访问。
配置文件:/etc/httpd/conf/httpd.conf #在第80行处添加如下内容ServerName zabbix-server Redirect permanent / http://zabbix-server
完成之后再重启http服务
systemctl restart httpd.servic
https访问地址:https://10.0.0.11
注意:最好通过Chrome浏览器来进行访问,其他浏览器(如IE)可能会拦截不安全的https链接
3.3.4 其他优化(可选)
- 禁用曝光的web服务器信息
配置文件:/etc/httpd/conf/httpd.conf
插入如下两行:
ServerSignature Off
ServerTokens Prod
配置文件:/etc/php.ini 修改:
expose_php = Off
- 删除Wen测试页面
删除根目录下的index.html文件
四、前端配置
官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/installation/install
- 第一步
打开浏览器链接:https://10.0.0.11,可以看到安装向导的第一个页面
- 第二步
确认满足所有软件的安装前置条件,所有的状态都需要是OK
- 第三步
确认数据库信息,数据库必须提前创建完成
- 第四步
输入Zabbix server的详细信息
- 第五步
查看设置摘要
- 第六步
完成安装
- 第七步
Zabbix前端已经就绪,可以登陆系统。
默认用户名:Admin
默认密码:zabbix
登陆后的监控界面如下所示:
五、页面调整
5.1 调整中文显示
zabbix默认为英文显示,由于本人的英文水平较差,因此需要将其调整为中文显示。当然喜欢看英文的同学可以不调整。
- 第一步
单击右上角的小人图标
- 第二步
在弹出来的Language选项框中将语言修改为中文
- 第三步
单机下方的update按钮,即可完成中文的切换。切换后效果如下:
5.2 中文状态下图形乱码问题解决
在中文状态下,我们查看某一监控图形的时候,会出现如下这种乱码的问题。这是由于字符集导致的,我们只需要替换一下系统里面的字符集即可矫正这个问题。
- 乱码现象
- 第一步
备份系统中原有的字符集文件。默认文件为:/usr/share/fonts/dejavu/DejaVuSans.ttf
#备份原文件 cp /usr/share/fonts/dejavu/DejaVuSans.ttf{,.bak}
- 第二步
从我们的windows主机中,复制出字符集文件出来。最好能复制我们比较常用的微软雅黑的文件。
可以通过控制面板--字体来找到该文件
- 第三步
复制出来后应该有三个文件
msyh.ttc:目标文件
msyhbd.ttc:粗体格式文件,不用它
msyhl.ttc:细体格式文件,也不要它
将mtsh.tty文件上传到/usr/share/fonts/dejavu目录,并将其重命名为DejaVuSans.ttf
cd /usr/share/fonts/dejavu/ rz 文件 mv msyh.ttc DejaVuSans.ttf
#修改后无需重启任何服务
- 结果如下
5.3 修改Admin用户密码
修改Admin用户的默认密码是必须的工作,可以通过如下几个步骤完成。
- 第一步
单击右上角的小人图标
- 第二步
单击修改密码选项
- 第三步
填写新密码并单击更新。注意Admin用户的密码需要妥善保管。
到这里server端的基本安装工作已经完成了,接下来就是具体的配置了~~
下一篇接着写通过SNMP对服务器或者其他设备进行监控!