监控系列讲座(十五)Zabbix5.0快速安装

3. 快速搭建Zabbix

3.1. 官方文档:点这里

image-20200817222548186.png
file

上面的是选择安装方式,但是并没有proxy-server的安装方式,我们后面会讲一下

image-20200817222702312.png
file

下面是一个选择界面,通过选择不同的组合,下面会生成对应的安装方式。

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
file

当然,这个方式还有个要求,那就是高可用的要求,也就是说,我们还是需要借助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,就可以看到欢迎界面了。

image-20200818071805355.png
file

如果是使用yum安装的,基本不会有啥问题

image-20200818071855331.png
file

这边只需要填写密码zabbix,然后会报错,报错后会让我们输入schema的名字

image-20200818140016260.png
file

host这里改成机器的名字,防止后面日志报错

image-20200818140139023.png
file

确认无误

image-20200818140206637.png
file

配置成功

image-20200818140240830.png
file

使用默认的用户名和密码登录 Admin/zabbix

image-20200818140502450.png
file

新版的zabbix就长这个样子了

image-20200818140607229.png
file

为了方便大家学习,请大家加我的微信,我会把大家加到微信群(微信群的二维码会经常变)和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

你可能感兴趣的:(监控系列讲座(十五)Zabbix5.0快速安装)