Bootstrap

zabbix监控的部署与配置

一、zabbix架构

  • Zabbix Server:(服务器)负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行。
  • Database:(数据库)用于存储所有配置信息,以及存储由Zabbix Server收集到的数据。
  • Web GUI:Zabbix的interface接口,通常与Server运行在同一台主机上。
  • Zabbix Proxy:(代理服务器)常用于分布监控环境中,代理Server收集部分被监控的监控数据并统一发往Server端。
  • Zabbix Agent:(节点)部署在被监控主机上,负责收集本地数据发往Server端或Proxy端。
  • JavaGateway:(java程序监控)充当Zabbix服务器和被监控Java应用程序之间的中间层。它接收来自Zabbix服务器的监控请求,执行相应的监控操作,并将收集到的数据返回给Zabbix服务器。


二、部署

0.注意服务器环境配置

0.1 查看系统版本号                  cat /etc/redhat-release 

0.2 查看服务器内存是否足够    free -h

0.3 查看内核                             uname -a

0.4 检测防火墙是否关闭

1.准备监控方zabbix_server

官网镜像源网址:下载Zabbix 5.0 LTS for CentOS 7, MySQL, Apacheicon-default.png?t=N7T8https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_version=7&components=server_frontend_agent&db=mysql&ws=apache

当国外镜像不可用时------国内阿里yum源:

1.1获取阿里zabbix源地址

1.2配置zabbix仓库

配置 :   vim  /etc/yum.repos.d/zabbix.repo

[zabbix]
name=alibaba  zabbix
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/
gpgcheck=0
enabled=1
                # zabbix仓库


[zabbix2]
name=alibaba zabbix frontend
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/
gpgcheck=0
enabled=1
                # zabbix前端组件
  • yum repolist  列出所有包

1.3 安装zabbix

  • 安装Zabbix server,agent:
yum install zabbix-server-mysql zabbix-agent
  • 启用红帽软件集合:
 yum install centos-release-scl
  •  列出查看是否成功安装仓库:

  • 因为旧的24年6月停止使用,需要指向特定 CentOS Vault 镜像的可用 URL:

#CentOS-*.repo#         
注释掉mirroslist
替换baseurl  地址为 :


   vim CentOS-SCLo-scl.repo
      https://mirrors.163.com/centos-vault/7.6.1810/sclo/x86_64/sclo/


   vim CentOS-SCLo-scl-rh.repo
      https://mirrors.163.com/centos-vault/7.9.2009/sclo/x86_64/rh/

  • 安装Zabbix前端配置包:
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
  • 创建数据库(如果没有数据库则需要下载):

 mysql>  mysql -u root                                                                        # 免密登录

          登录数据库

 mysql>  create database zabbix character set utf8 collate utf8_bin;         # 创 库

          创建了一个名为 zabbix 的数据库。

          通过  character set utf8 部分指定了这个数据库将使用UTF-8字符集,UTF-8字符集可以使该数据库中存储多种语言的文本,而不会出现乱码或字符丢失。

           collate utf8_bin  部分指定了这个数据库的校对规则为utf8_bin

 mysql>  create user zabbix@localhost identified by '200171';                 # 创用户

           创建一个名为 zabbix 新用户。

          该账户只能从localhost(即MySQL服务器所在的机器)上连接,符号后面跟的是用户的宿主名(host),这里指定为localhost,意味着这个用户只能从本地机器连接到MySQL服务器。

          通过  identified by '200171' 部分,为这个新创建的用户账户设置了一个密码“200171”

 mysql>  grant all privileges on zabbix.* to zabbix@localhost;         # 授权用户访问zabbix库

          grant all privileges:授予所有权限,用户可以执行数据库中的所有操作。

          on zabbix.*:指定权限授予的范围。这里是指zabbix数据库中的所有表(*表示所有表)。

          to zabbix@localhost:指定接收权限的用户和主机。在这个例子中,用户是zabbix,主机是localhost,意味着这些权限仅适用于从本地机器访问的用户 

 mysql>  set global log_bin_trust_function_creators = 1;               

          log_bin_trust_function_creators是一个系统变量,它控制了在二进制日志(binary log)启用的情况下,是否允许非SUPER权限的用户创建或修改存储函数。当这个变量设置为0(默认值)时,只有拥有SUPER权限的用户才能创建或修改存储函数,命令会将这个系统变量的值设置为1,从而允许所有用户(不仅仅是SUPER用户)创建或修改存储函数,即使二进制日志被启用 

  mysql> flush privileges;                                                               # 刷新,重新加载授权表

  mysql>  quit;                                                                                # 退出mariadb

 1.4 初始化数据库

zcat /usr/share/doc/zabbix-server-mysql-5.0.42/create.sql.gz | mysql -uzabbix -p zabbix

将名为 create.sql.gz 的压缩文件(通常包含用于创建和初始化Zabbix数据库所需的SQL语句)解压并直接通过MySQL命令行工具导入到名为 zabbix 的数据库中

1.5配置zabbix配置文件

 DBHost=localhost
            # 服务器数据库位置
 DBName=zabbix
            # 程序要连接的数据库名字
 DBUser=zabbix
            # 连接数据库所用的用户名
 DBPassword=200171
            # DBUser对应的密码

1.6时区设置-------------------------------------/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 

找到文件中被注释项:          ; php_value[date.timezone] = Europe/Riga  

修改:                       php_value[date.timezone] = Asia/Shanghai 

[zabbix]
user = apache
group = apache

listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock
listen.acl_users = apache
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 200

php_value[session.save_handler] = files
php_value[session.save_path]    = /var/opt/rh/rh-php72/lib/php/session/

php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000

php_value[date.timezone] = Asia/Shanghai              * 时区设置 *
                                       

1.7启动

  • 重启程序:

        systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm        

  • 设置开机自启:

        systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm        

  • 浏览器输入本机ip后接/zabbix虚拟目录打开:         192.168.105.70/zabbix
  • 安装界面:

*如果失败可能是账户授权问题,检查zabbix用户能否登录zabbix数据库*

服务器命名:

信息汇总:

登录:

主页:

2.准备被监控方zabbix_agent

2.1安装/配置/测试/

(由于上一台机子自配了zabbix.repo仓库,故不再重复操作)

scp  /etc/yum.repos.d/zabbix.repo  192.168.105.69:/etc/yum.repos.d/

                    # scp协议传输
  • yum直接安装zabbix-agent
  • 配置zabbix-agent配置文件
   * /etc/zabbix/zabbix_agentd.conf *


Server=192.168.105.70
                    <被动模式>

ServerActive=192.168.105.70
                    <主动模式>

Hostname=web_1
                    <本台被监控主机名字>

EnableRemoteCommands=1
                    <是否允许Zabbix服务器在代理机上执行远程命令脚本>

UnsafeUserParameters=1
                    <是否允许在用户定义的参数(UserParameters)中使用特定的字符或表达式>

Include=/etc/zabbix/zabbix_agentd.d/*.conf
                    <指定了包含额外配置文件的目录或文件模式>
  • 启动并设定开机自启

[root@web_1 ~]# systemctl  start zabbix-agent
[root@web_1 ~]# systemctl  enable  zabbix-agent

  • 查看是否有端口10050

[root@web_1 ~]# ss -antp | grep 10050

  • 测试监控是否连通

[root@zabbix_server ~]# yum -y install  zabbix-get.x86_64

(此需要下载zabbix-get )

 证明监控连通


三、 apache监控实例

1.创建主机组

2.创建主机

ps:记得更新

3.创建图形

;