Zabbix 监控系统搭建
一、实验环境准备
- centos7.5 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。
主机名 | IP 配置 | 服务器角色 | 备注 |
---|---|---|---|
zabbix | 10.11.59.175 | zabbix-server | 开启监控功能 |
node1 | 10.11.59.176 | zabbix-agent | 开启客户端 |
node2 | 10.11.59.177 | zabbix-agent | 开启客户端 |
二、Zabbix的安装
1、修改主机名
[root@localhost ~]# hostnamectl --static set-hostname zabbix
2、关闭防火墙
[root@zabbix ~]# systemctl stop iptables firewalld
[root@zabbix ~]# systemctl disable iptables firewalld
3、开启邮件服务
[root@zabbix ~]# systemctl start postfix
[root@zabbix ~]# systemctl enable postfix
4、关闭 SELinux
[root@zabbix ~]# sed -ri '/SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@zabbix ~]# setenforce 0 # 临时关闭SELinux
[root@zabbix ~]# reboot
5、添加 hosts
[root@zabbix ~]# vim /etc/hosts
10.11.59.175 zabbix
10.11.59.176 agent1
10.11.59.177 agent2
安装 yum 仓库
[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更新 yum 仓库
[root@zabbix ~]# yum repolist
安装 Zabbix server and agent:
[root@zabbix ~]# yum -y install epel-release.noarch
[root@zabbix ~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql
安装 Zabbix 前端:
[root@zabbix ~]# yum -y install centos-release-scl
- 开启 前端安装源仓库配置
[root@zabbix ~]# vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
###或者直接使用 yum -y install --enablerepo=zabbix-frontend zabbix-web-mysql-scl zabbix-apache-conf-scl
- 安装 zabbix 前端
[root@zabbix ~]#yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
安装设置数据库:
1、创建 mariadb.repo
[root@zabbix ~]# vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.5/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
2、yum 安装最新版本 mariadb
[root@zabbix ~]# yum install -y MariaDB-server MariaDB-client
3、修改配置文件
[root@zabbix ~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON # 跳过主机名解析
innodb_file_per_table = ON # 开启独立表空间
innodb_buffer_pool_size = 256M # 缓存池大小
max_connections = 2000 # 最大连接数
log-bin = master-log # 开启二进制日志
4、重启数据库服务
[root@zabbix ~]# systemctl restart mariadb
[root@zabbix ~]# mysql_secure_installation # 初始化mariadb
5、创建数据库并授权账号
[root@zabbix ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; # 创建zabbix数据库
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'10.11.59.%' identified by '1234.com'; # 注意授权网段
MariaDB [(none)]> flush privileges; # 刷新授权
6、导入 Zabbix 服务表
- 查看 zabbix-server-mysql 这个包提供了什么
[root@zabbix ~]# rpm -ql zabbix-server-mysql
/usr/share/doc/zabbix-server-mysql-5.0.4/create.sql.gz # 生成表的各种脚本
使用 create.sql.gz 生成所需要的表
[root@zabbix ~]# gzip -d /usr/share/doc/zabbix-server-mysql-5.0.4/create.sql.gz
[root@zabbix ~]# mysql -uzabbix -h192.168.37.111 -p'1234.com' zabbix < /usr/share/doc/zabbix-server-mysql-5.0.4/create.sql
- 导入以后查看数据库:
[root@zabbix ~]# mysql -uzabbix -h192.168.37.111 -p'1234.com'
MariaDB [(none)]> show databases
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
166 rows in set (0.001 sec)
- 数据已经导入成功了。
配置 server 端
- 数据库准备好了以后,我们要去修改 server 端的配置文件。
[root@zabbix ~]# cd /etc/zabbix/
[root@zabbix zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@zabbix zabbix]# cp zabbix_server.conf{,.bak}
[root@zabbix zabbix]# vim zabbix_server.conf
ListenPort=10051 # 默认监听端口
SourceIP=10.11.59.175 # 发采样数据请求的 IP
数据库相关的设置:
DBHost=10.11.59.175 #数据库对外的主机
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户
DBPassword=zabbix #数据库密码
DBPort=3306 #数据库启动端口
[root@zabbix zabbix]# vim zabbix_agentd.conf
Server=10.11.59.175 #zabbix的ip
ServerActive=10.11.59.175 #zabbix的ip
Hostname=zabbix #主机名
启动服务
[root@zabbix zabbix]# systemctl start zabbix-server.service
确认服务端口开启 ss -ntpl |grep 10051
配置 web GUI
1、配置php 前端
- php 监听用户增加nginx,设置时区
[root@zabbix ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
注意: 时区是一定要设置的,这里被注释掉是因为,在 php 的配置文件中设置时区,如果在php配置文件中设置时区,则对所有的 php 服务均有效,如果在 zabbix.conf 中设置时区,则仅对zabbix服务有效。所以,在 php 配置文件中设置时区:
2、启动 httpd 服务
[root@qfedu.com ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@qfedu.com ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
3、浏览器访问并进行初始化设置
浏览器访问http://10.11.59.175/zabbix/,第一次访问时需要进行一些初始化的设置,按照提示操作:默认用户名为:Admin ,密码为:zabbix ,登录后进入仪表盘:
三、配置 agent 端
- 在被监控的主机安装好agent,设置好 server,并添加到 server 端,将其纳入监控系统中。
1、安装 zabbix 安装源
[root@node1 ~]# wget https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@node1 ~]# rpm -ivh zabbix-release-5.0-1.el7.noarch.rpm
[root@node1 ~]# yum -y install epel-release.noarch
[root@node1 ~]# yum install zabbix-agent zabbix-sender -y
2、修改配置文件
[root@node1 zabbix]# rpm -ql zabbix-agent
[root@node1 ~]# cd /etc/zabbix/
[root@node1 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@node1 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@node1 zabbix]# vim zabbix_agentd.conf
Server=10.11.59.175 # 指明服务器是谁的
ListenPort=10050 # 自己监听的端口
ListenIP=10.11.59.176 # 自己监听的地址,0.0.0.0表示本机所有地址(生产环境必须写真实的实际ip)
StartAgents=3 # 优化时使用的
EnableRemoteCommands=1
LogRemoteCommands=1
ServerActive=10.11.59.175 # 主动监控时的服务器
Hostname=agent1 # 自己能被server端识别的名称
3、启动服务
[root@agent1 zabbix]# systemctl start zabbix-agent.service
查看端口是否已开启
[root@agent1 zabbix]# ss -ntul |grep 10050
剩下就是根据实际情况实际需求点点点来完成了