此次部署 参考https://www.cnblogs.com/keerya/p/7953695.html#_label0_6_5
目录
一、zabbix 的监控搭建
环境准备
系统centos 7
主机: IP:
server01(server) 192.168.8.19
server02(agent) 192.168.8.20
server03 (agent) 192.168.8.21
三台主机同步,关闭防火墙 selinux
systemctl stop firewalld;systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@server01 ~]# grep -n '^[a-Z]' /etc/selinux/config
7:SELINUX=disabled
12:SELINUXTYPE=targeted
配置 server 端
zabbix 的安装
更新yum源
官网下载一个包
[root@server01 ~]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
下载到本地后直接安装
yum -y localinstall zabbix-release-3.4-2.el7.noarch.rpm
由于配置了epql源 带zabbix 但版本较低为防止冲突把epel源备份一下
[root@server01 yum.repos.d]# mv epel.repo epel.repo.bak
开始安装软件
[root@server01 yum.repos.d]# yum -y install zabbix-agent.x86_64 zabbix-get.x86_64 zabbix-sender.x86_64 zabbix-server-mysql.x86_64 zabbix-web zabbix-web
配置数据库配置文件
[root@server01 yum.repos.d]# 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 #开启二进制日志
重启数据库
[root@server01 ~]# systemctl restart mariadb.service
创建数据并授权账号
MariaDB [(none)]> create database zabbix character set 'utf8';
MariaDB [(none)]> grant all on zabbix.* to 'zbxadmin'@'192.168.8.%' identified by 'beckham';
MariaDB [(none)]> flush privileges;#刷新权限
导入表
首先我们来看看 zabbix-server-mysql 提供什么:
[root@server01 ~]# 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.4.12
/usr/share/doc/zabbix-server-mysql-3.4.12/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.4.12/COPYING
/usr/share/doc/zabbix-server-mysql-3.4.12/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.4.12/NEWS
/usr/share/doc/zabbix-server-mysql-3.4.12/README
/usr/share/doc/zabbix-server-mysql-3.4.12/create.sql.gz # 生成表的各种脚本
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
使用这个文件来生成我们需要的表
[root@server01 zabbix-server-mysql-3.4.12]# gzip -d create.sql.gz
[root@server01 zabbix-server-mysql-3.4.12]# 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` varchar(32) DEFAULT '15m' NOT NULL,
`lang` varchar(5) DEFAULT 'en_GB' NOT NULL,
可以看到创建表头的发现并没有创建数据库的命令,这就是为什么需要创建数据库的原因
直接导入数据即可
[root@server01 zabbix-server-mysql-3.4.12]# mysql -uzbxadmin -h192.168.8.19 -p zabbix <create.sql
Enter password:
进入数据查看
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| zabbix |
+--------------------+
3 rows in set (0.00 sec)MariaDB [(none)]> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |.......
| widget_field |
+----------------------------+
数据就已经导入成功了
配置server
我们数据库准备好了,接下来配置server端的配置文件
[root@server01 ~]# cd /etc/zabbix/
[root@server01 zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
[root@server01 zabbix]# cp zabbix_server.conf{,.bak}
[root@server01 zabbix]# vim zabbix_server.conf
[root@server01 zabbix]# grep -n '^[a-Z]' zabbix_server.conf
13:ListenPort=10051 # 默认监听的端口
21:SourceIP=192.168.8.19 # 发数据采样请求的IP
40:LogFile=/var/log/zabbix/zabbix_server.log #日志默认文件记录,也可以发送给我们的rsyslog日志记录系统,也可以自己设置
51:LogFileSize=0
74:PidFile=/var/run/zabbix/zabbix_server.pid
84:SocketDir=/var/run/zabbix
103:DBName=zabbix
119:DBUser=zabbix
332:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
450:Timeout=4
492:AlertScriptsPath=/usr/lib/zabbix/alertscripts
502:ExternalScripts=/usr/lib/zabbix/externalscripts
538:LogSlowQueries=3000
为什么要设置SourceIP,由于我们的客户端可能一个主机多个IP,我们又不能允许任意的IP 都能从我们这里读取数据就会有一个验证方式,而该方式是基于识别SourceIP来实现的。
LogFileSize=0 日志的滚动,默认值为0表示不滚动,当数据特别多的时候,我们也可以设置成为1,然后设置当数据文件最大到多少时会自动滚动
日志的级别,一共有6个级别,我们可以根据自己的需要来设置级别。其中0表示输出最少的信息,5表示输出最详细的信息,默认值为3,设置3的话就表示,0,1,2,3 4个级别都显示。考虑到生产系统中的压力时,这里的信息,如果没有必要的话,越简单越好,只要出错的时候,我们可以依据其进行拍错即可。
DBHost=192.168.8.19 # 数据库对外的主机
DBName=zabbix # 数据库的名称
DBUser=zbxadmin # 数据库用户
DBPassword=beckham # 数据密码
DBPort=3306 # 数据库启动端口
以上,我们的基本配置已经完成,可以开启服务了;
[root@server01 ~]# systemctl start zabbix-server.service
启动陈宫后查看监听端口
[root@server01 ~]# ss -tnlu | grep 10051
tcp LISTEN 0 128 *:10051 *:*
tcp LISTEN 0 128 :::10051 :::*
如果端口没有起来的话 仔细查看配置文件,或cat /var/log/zabbix/zabbix_server.log 查看日志信息
一般常见两种问题 mysql.sock的 位置 与数据库登录账号密码的问题
配置web GUI
查看web GUI 的配置文件在哪里;
[root@server01 ~]# 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.4.12
/usr/share/doc/zabbix-web-3.4.12/AUTHORS
/usr/share/doc/zabbix-web-3.4.12/COPYING
/usr/share/doc/zabbix-web-3.4.12/ChangeLog
/usr/share/doc/zabbix-web-3.4.12/NEWS
/usr/share/doc/zabbix-web-3.4.12/README
/usr/share/zabbix
.......
可以看到 /etc/httpd/conf.d/zabbix.conf 这个配置文件就是做映射的文件,
时区是一定要设置的 ,这里被注释掉是因为,我们可以咋洗php的配置文件中设置时区,如果我们在php配置文件中设置时区,则对所有php服务均有效,如果我们在zabbix.conf 中设置时区,则仅对zabbix 服务有效,所以,我们去php配置文件中设置我们的时区:
vim /etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
date.timezone = Asia/Shanghai
接下来我们就可以启动httpd服务了
[root@server01 ~]# systemctl start httpd.service
[root@server01 ~]# ss -nutl
服务已经开启,接下来我们就可以用浏览器来访问了
浏览器的访问并进行初始化设置