3. 快速搭建Zabbix
3.1. 官方文档:点这里
image-20200817222548186.png上面的是选择安装方式,但是并没有proxy-server的安装方式,我们后面会讲一下
image-20200817222702312.png下面是一个选择界面,通过选择不同的组合,下面会生成对应的安装方式。
3.2. 安装数据库
在新版中依然是MySQL或者PgSQL作为数据库,但是文档中没有写数据库的安装。
一般来说,这两种数据库的集群模式都是主备的模式,如果我们借助第三方工具可以实现主主模式,但是如果我们有大量的服务器的话(几千台)还是建议选择主备,主主模式如果同步不及时,就会影响数据的一致性。
如果想要减轻服务器的负担,可以考虑读写分离的方式,写请求全部去zabbix-server的主服务器去做,读请求全部分配到zabbix-server的备份服务器去做。
这个说来简单,实现的方式有两种,一种是在负载均衡器,比如:nginx上做,但是nginx的负载均衡是没有办法区分GET,PUT和UPDATE请求的,我们需要借助LUA插件来实现,或者干脆使用openresty。另外一种是让zabbix-server在连接数据库的时候,选择不同的库,zabbix-server的采集或者拉取功能全部去主库,而zabbix-server和grafana集成做展示的时候,让另外一台zabbix-server去备库拿信息。
image-20200817225122944.png当然,这个方式还有个要求,那就是高可用的要求,也就是说,我们还是需要借助nginx,只不过我们在upstream的时候会选择一个机器作为backup机器,只有当主机器down了的时候,我们才会去backup机器。
我们这里选择的是CentOS8作为操作系统,默认的CentOS8可以使用PgSQL10作为默认的版本,但是他也支持9.6和12版本
$ dnf module list postgresql
上次元数据过期检查:0:23:14 前,执行于 2020年08月17日 星期一 10时35分00秒。
CentOS-8 - AppStream
Name Stream Profiles Summary
postgresql 9.6 client, server [d] PostgreSQL server and client module
postgresql 10 [d] client, server [d] PostgreSQL server and client module
postgresql 12 client, server [d] PostgreSQL server and client module
提示:[d]默认,[e]已启用,[x]已禁用,[i]已安装
【d】表示默认,也就是版本10,如果想要安装版本12,需要执行
$ dnf install @postgresql:12
我们把contrib包也装上,这里面是一些工具
$ dnf install postgresql-contrib
然后初始化一下,主要是为了创建数据文件,如果我们做坏了,直接删除数据文件,再初始化一下就好了
$ postgresql-setup initdb
启动PgSQL,并且配置开机启动
$ systemctl start postgresql
$ systemctl enable postgresql
3.3. 安装zabbix
配置repo
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
安装组件
$ dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent
这里要注意,zabbix网站在国内访问时非常不稳定,有可能在选择对应的环境之后,下面的文档没有及时变化,一定要看好安装的包,这里安装的包如下:
- zabbix-server-pgsql:zabbix-server主程序,如果是mysql版本的话名字叫zabbix-server-mysql
- zabbix-web-pgsql:zabbix-server的web界面,如果是mysql版本的话叫zabbix-web-mysql
- zabbix-nginx-conf: zabbix的nginx配置,由于zabbix的界面是php的,且会使用fpm模式,所以nginx需要额外配置一下,如果是apache的叫zabbix-apache-cong
- zabbix-agent:这个就是agent了,在被监控端只安装这个就好了
3.4. 配置数据库
官网上是用sudo的方式来做的
# sudo -u postgres createuser --pwprompt zabbix
# sudo -u postgres createdb -O zabbix zabbix
# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
我这里是用root直接登录,所以命令变成了
[root@zabbix ~]# su - postgres -c "createuser --pwprompt zabbix"
Enter password for new role: # 这里输入zabbix
Enter it again: # 重复输入zabbix
[root@zabbix ~]# su - postgres -c "createdb -O zabbix zabbix"
导入表结构
# su - zabbix -c "zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql"
连到数据库看一下表是不是都导入成功了
# su - zabbix -c "psql"
zabbix=> \c zabbix;
zabbix=> \d
List of relations
Schema | Name | Type | Owner
--------+----------------------------+----------+--------
public | acknowledges | table | zabbix
public | actions | table | zabbix
public | alerts | table | zabbix
public | application_discovery | table | zabbix
public | application_prototype | table | zabbix
注意:这里的schema名字叫public
,我们后面会用到
然后需要修改下pg_hba.conf文件,配置psql的访问权限
# TYPE DATABASE USER ADDRESS METHOD
# zabbix
local zabbix zabbix md5 # <= 这行是新加的
host zabbix zabbix 127.0.0.1/32 md5 # <= 这行是新加的
# "local" is for Unix domain socket connections only
local all all peer
注意:一定要加在上面,因为这个文件是从上到下读取的,如果加在下面,就会被前面的规则匹配到,我们新加的就不生效了,然后需要重启数据库systemctl restart postgresql
3.5. 配置zabbix
修改/etc/zabbix/zabbix_server.conf文件
DBPassword=zabbix #改成刚才配置数据库的时候配置的密码
配置/etc/nginx/conf.d/zabbix.conf, 把下面两行的#
取消注释并且配置成我们需要的
listen 80;
server_name example.com;
配置/etc/php-fpm.d/zabbix.conf,改成我们的时区
php_value[date.timezone] = Asia/Shanghai
启动服务并且设置为开机启动
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
检查一下端口,这个时候zabbix-server和fpm的端口没有,我们需要在后面的图形界面中配置
netstat -untlp
0.0.0.0:80 <= # nginx的监听
0.0.0.0:10050 <= # zabbix-agent的监听
127.0.0.1:5432 <= # 数据库的监听
3.6. 图形界面配置
输入我们刚才在nginx中配置的server_name
,http://zabbix.jormun.com,就可以看到欢迎界面了。
如果是使用yum安装的,基本不会有啥问题
image-20200818071855331.png这边只需要填写密码zabbix,然后会报错,报错后会让我们输入schema的名字
image-20200818140016260.pnghost这里改成机器的名字,防止后面日志报错
image-20200818140139023.png确认无误
image-20200818140206637.png配置成功
image-20200818140240830.png使用默认的用户名和密码登录 Admin/zabbix
image-20200818140502450.png新版的zabbix就长这个样子了
image-20200818140607229.png为了方便大家学习,请大家加我的微信,我会把大家加到微信群(微信群的二维码会经常变)和qq群821119334,问题答案云原生技术课堂,有问题可以一起讨论
-
个人微信
640.jpeg -
腾讯课堂
640-20200506145837072.jpeg -
微信公众号
640-20200506145842007.jpeg 专题讲座
2020 CKA考试视频 真题讲解 https://www.bilibili.com/video/BV167411K7hp
2020 CKA考试指南 https://www.bilibili.com/video/BV1sa4y1479B/
2020年 5月CKA考试真题 https://mp.weixin.qq.com/s/W9V4cpYeBhodol6AYtbxIA