Zabbix 监控系统部署
1、实验准备
centos7.5 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。
1、所有机器关闭防火墙和 selinux
[root@qfedu.com ~]# setenforce 0 (修改配置文件关闭)
[root@qfedu.com ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@qfedu.com ~]# systemctl stop firewalld.service
2、实验服务器配置
### 2、Zabbix的安装
1、更新 yum 仓库
1、下载 yum 仓库
[root@qfedu.com ~]# yum -y install wget
[root@qfedu.com ~]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# 安装zabbix源(官方)
[root@qfedu.com ~]# rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
2、安装 yum 仓库
[root@qfedu.com ~]# rpm -ivh zabbix-release-4.2-1.el7.noarch.rpm
3、更新 yum 仓库
[root@qfedu.com ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
zabbix-non-supported 4/4
repo id repo name status
base base 9,363
epel epel 11,349
zabbix/x86_64 Zabbix Official Repository - x86_64 80
zabbix-non-supported/x86_64 Zabbix Official Repository non-supported - 4
repolist: 20,796
4、安装 Zabbix
[root@qfedu.com~]# yum -y install epel-release.noarch
[root@qfedu.com~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql
或者(官方)
[root@qfedu.com~]# yum-config-manager --enable rhel-7-server-optional-rpms
2)安装设置数据库:
1、创建 mariadb.repo
[root@qfedu.com ~]# vim /etc/yum.repos.d/mariadb.repo
写入以下内容:
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
2、yum 安装最新版本 mariadb
[root@qfedu.com ~]# yum install -y MariaDB-server MariaDB-client
3、修改配置文件
[root@qfedu.com ~]# 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@qfedu.com~]# systemctl restart mariadb
[root@qfedu.com~]# mysql_secure_installation # 初始化mariadb
5、创建数据库并授权账号
MariaDB [(none)]> create database zabbix character set 'utf8'; # 创建zabbix数据库
MariaDB [(none)]> grant all on zabbix.* to 'zbxuser'@'192.168.37.%' identified by 'keer'; # 注意授权网段
MariaDB [(none)]> flush privileges; # 刷新授权
6、导入 Zabbix 服务表
查看 zabbix-server-mysql 这个包提供了什么
[root@qfedu.com~]# 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.2.6
/usr/share/doc/zabbix-server-mysql-3.2.6/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.2.6/COPYING
/usr/share/doc/zabbix-server-mysql-3.2.6/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.2.6/NEWS
/usr/share/doc/zabbix-server-mysql-3.2.6/README
/usr/share/doc/zabbix-server-mysql-3.2.6/create.sql.gz # 生成表的各种脚本
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
使用 create.sql.gz 生成所需要的表
[root@qfedu.com~]# gzip -d create.sql.gz
[root@qfedu.com~]# head create.sql #查看一下表头
CREATE TABLE `users` (
`userid` bigint unsigned NOT NULL,
`alias` varchar(100) DEFAULT '' NOT NULL,
`name` varchar(100) DEFAULT '' NOT NULL,
`surname` varchar(100) DEFAULT '' NOT NULL,
`passwd` char(32) DEFAULT '' NOT NULL,
`url` varchar(255) DEFAULT '' NOT NULL,
`autologin` integer DEFAULT '0' NOT NULL,
`autologout` integer DEFAULT '900' NOT NULL,
`lang` varchar(5) DEFAULT 'en_GB' NOT NULL,
查看表头发现没有创建数据库的命令,这正是手动创建数据库的原因。把所需表导入数据库即可:
[root@qfedu.com ~]# mysql -uzbxuser -h192.168.37.111 -p zabbix < create.sql
Enter password:
导入以后,我们进去数据库查看一下:
[root@qfedu.com ~]# mysql -uzbxuser -h192.168.37.111 -p
Enter password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| zabbix |
+--------------------+
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
……
| usrgrp |
| valuemaps |
+----------------------------+
127 rows in set (0.00 sec)
可以看出来,我们的数据已经导入成功了。
3、配置 server 端
数据库准备好了以后,我们要去修改 server 端的配置文件。
[root@qfedu.com ~]# cd /etc/zabbix/
[root@qfedu.com zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@qfedu.com zabbix]# cp zabbix_server.conf{,.bak}
[root@qfedu.com zabbix]# vim zabbix_server.conf
ListenPort=10051 # 默认监听端口
SourceIP=192.168.37.111 # 发采样数据请求的 IP
1、Zabbix 日志
- 默认用文件记录,也可以发送给我们的 rsyslog 日志记录系统,如果我们选择默认,则日志存放在 LogFile=/var/log/zabbix/zabbix_server.log 中,也可以自己设置。
2、日志的滚动
- 默认值为1,表示滚动。我们设为0则表示不滚动。当数据特别多的时候,我们也可以设置成为1,然后在 Maximum size of log file in MB 设置当数据文件最大到多少时会自动滚动。
3、日志的级别
- 一共有6个级别。我们可以根据自己的需要来设置级别。其中0表示输出最少的信息,5表示输出最详细的信息,默认值为3,设置为3的话就表示,0、1、2、3四个级别都显示。考虑到生产系统中的压力时,这里的信息,如果没有必要的话,越简单越好,只要在出错的时候,我们可以依据其进行排错即可。
4、数据库相关的设置
DBHost=192.168.37.111 #数据库对外的主机
DBName=zabbix #数据库名称
DBUser=zbxuser #数据库用户
DBPassword=keer #数据库密码
DBPort=3306 #数据库启动端口
补充:
1、使用 grep -i “^####” zabbix_server.conf 来查看配置文件中有哪些大段
2、使用 grep -i “^###” zabbix_server.conf 来查看配置文件中每一段中的配置项有哪些
5、启动服务
[root@server zabbix]# systemctl start zabbix-server.service
6、确认服务端口开启
[root@server zabbix]# ss -nutl |grep 10051
tcp LISTEN 0 128 *:10051 *:*
tcp LISTEN 0 128 :::10051 :::*
4、配置 web GUI
1、查找 web GUI 的配置文件
[root@qfedu.com ~]# rpm -ql zabbix-web | less
/etc/httpd/conf.d/zabbix.conf
/etc/zabbix/web
/etc/zabbix/web/maintenance.inc.php
/etc/zabbix/web/zabbix.conf.php
/usr/share/doc/zabbix-web-3.2.6
/usr/share/doc/zabbix-web-3.2.6/AUTHORS
/usr/share/doc/zabbix-web-3.2.6/COPYING
/usr/share/doc/zabbix-web-3.2.6/ChangeLog
/usr/share/doc/zabbix-web-3.2.6/NEWS
/usr/share/doc/zabbix-web-3.2.6/README
……
2、编辑配置文件
- /etc/httpd/conf.d/zabbix.conf 文件,这个配置文件就是做映射的文件
Alias /zabbix /usr/share/zabbix # 访问的时候要在主机后加上/zabbix来访问服务
注意: 时区是一定要设置的,这里被注释掉是因为,在 php 的配置文件中设置时区,如果在php配置文件中设置时区,则对所有的 php 服务均有效,如果在 zabbix.conf 中设置时区,则仅对zabbix服务有效。所以,在 php 配置文件中设置时区:
[root@qfedu.com ~]# vim /etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
3、启动 httpd 服务
[root@qfedu.com ~]# systemctl enable httpd
[root@qfedu.com ~]# systemctl start httpd
5、浏览器访问并进行初始化设置
浏览器访问http://192.168.37.111/zabbix,第一次访问时需要进行一些初始化的设置,按照提示操作:
- 点击Finish以后,跳转到登录页面,使用账号密码登录即可:
默认用户名为:Admin ,密码为:zabbix ,登录后进入仪表盘:
6、配置 agent 端
- 在被监控的主机安装好agent,设置好 server,并添加到 server 端,将其纳入监控系统中。
1、安装 zabbix 安装源
[root@node1 ~]# wget https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
[root@node1 ~]# rpm -ivh zabbix-release-4.2-1.el7.noarch.rpm
[root@node1 ~]# yum -y install epel-release.noarch
[root@node1 ~]# yum install zabbix-agent zabbix-sender -y
2、修改配置文件
1、确认配置文件
[root@node1 zabbix]# rpm -ql zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
/usr/lib/systemd/system/zabbix-agent.service
/usr/lib/tmpfiles.d/zabbix-agent.conf
/usr/sbin/zabbix_agentd
/usr/share/doc/zabbix-agent-3.4.4
/usr/share/doc/zabbix-agent-3.4.4/AUTHORS
/usr/share/doc/zabbix-agent-3.4.4/COPYING
/usr/share/doc/zabbix-agent-3.4.4/ChangeLog
/usr/share/doc/zabbix-agent-3.4.4/NEWS
/usr/share/doc/zabbix-agent-3.4.4/README
/usr/share/man/man8/zabbix_agentd.8.gz
/var/log/zabbix
/var/run/zabbix
2、编辑配置文件
对配置文件做一个备份,然后修改配置文件
[root@node1 ~]# cd /etc/zabbix/
[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
-
重点需要修改 GENERAL PARAMETERS 段:
-
是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险。
Server=192.168.37.111 # 指明服务器是谁的
ListenPort=10050 # 自己监听的端口
ListenIP=0.0.0.0 # 自己监听的地址,0.0.0.0表示本机所有地址
StartAgents=3 # 优化时使用的
ServerActive=192.168.37.111 # 主动监控时的服务器
Hostname=node1.keer.com # 自己能被server端识别的名称
- 启动服务
[root@node1 zabbix]# systemctl start zabbix-agent.service
- 查看端口是否已开启
[root@node1 zabbix]# ss -ntul |grep 10050
tcp LISTEN 0 128 *:10050 *:*
- 已经开启成功就可以去 server 端添加主机了,其他主机进行同样的操作,唯一不同的就是配置文件中的 Hostname 要设为对应主机名