Zabbix 介绍及部署(超详细讲解)
来源:http://985.so/bi20w 转自:入门小站
一、[zabbix]的基本概述
zabbix 是一个监控软件,其可以监控各种网络参数,保证企业服务架构安全运营,同时支持灵活的告警机制,可以使得运维人员快速定位故障、解决问题。zabbix 支持分布式功能,支持复杂架构下的监控解决方案,也支持 web 页面,为主机监控提供了良好直观的展现。
二、zabbix 的构成
zabbix server 是 zabbix 的核心组件,server 内部存储了所有的配置信息、统计信息和操作信息。zabbix agent 会向 zabbix server 报告可用性、完整性及其他统计信息。
web 页面也是 zabbix 的一部分,通常和 zabbix server 位于一台物理设备上,但是在特殊情况下也可以分开配置。web 页面主要提供了直观的监控信息,以方便运维人员监控管理。
zabbix proxy 可以根据具体生产环境进行采用或者放弃。如果使用了 zabbix proxy,则其会替代 zabbix server 采集数据信息,可以很好的分担 zabbix server 的负载。zabbix proxy 通常运用与架构过大、zabbix server 负载过重,或者是企业设备跨机房、跨网段、zabbix server 无法与 zabbix agent 直接通信的场景。
zabbix agent 通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给 zabbix server。
三、zabbix 的监控对象
zabbix 支持监控各种系统平台,包括Linux 和Windows 等主流操作系统,也可以借助 SNMP 或者是 SSH 协议监控路由交换设备。
四、zabbix 的常用术语
一个特定监控指标的相关数据,比如内存的大小、CPU 的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个 key 来标识。
一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。
五、zabbix 的工作流程
六、zabbix 进程详解
在默认的情况下,zabbix 有 6 个工作进程;分别是 zabbix_agentd,zabbix_get,zabbix_proxy,zabbix_sender,zabbix_server 和 zabbix_gateway。
zabbix_proxy 是 zabbix 的代理程序,其功能类似于 server,作用上类似于一个中转站,最终会把收集的数据再次提交给 zabbix_server。
zabbix_get 作为 zabbix 工具,通常运行在 zabbix_server 或者 zabbix_proxy 上,用于远程获取客户端信息,通常用于排错。
zabbix_sender 也是 zabbix 的一个工具,通常运行在 zabbix 的客户端,用于耗时比较长的检查,其作用是主动发送数据。
zabbix_java_gateway 是 zabbix2.0 以后引入的新功能,可以用于 JAVA 方面的设备;但是只能主动获取数据,而不能被动获取数据。
七、zabbix 的监控框架
在实际的工作环境中,根据网络环境和监控的规模不同,zabbix 一共有三种框架,分别是 server_client 架构、master_node_client 架构和 server_proxy_client 架构。
zabbix 最简单的架构,监控设备和被监控设备之间直接相连,zabbix_server 和 zabbix_client 之间直接进行数据交互。
proxy 是连接 server 和 client 之间的桥梁,其本身不存放数据,只是将 zabbix_agent 端发来的数据暂存,然后再提交给 server。这种架构一般用于跨机房、跨网络的中型网络架构。
7.1 三种架构模式的[架构图]如下:
7.2 每个模块的工作职责:
八、zabbix 源码安装及部署
一、服务端安装
1.1 安装 zabbix5.0 储存库(二进制安装方式)
rpm-Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
1.2 安装 zabbix 软件包
> vim /etc/yum.repos.d/zabbix.repo
> [zabbix]
> name=Zabbix Official Repository - $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/
> enabled=1 gpgcheck=0
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
> ZABBIX-A14FE591
>
> [zabbix-frontend]
> name=Zabbix Official Repository frontend -
> $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/frontend enabled=0
> gpgcheck=0
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
> ZABBIX-A14FE591
>
> [zabbix-debuginfo]
> name=Zabbix Official Repository debuginfo -
> $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/ enabled=0
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-
> ZABBIX-A14FE591
> gpgcheck=0
>
> [zabbix-non-supported]
> name=Zabbix Official Repository non-supported
> - $basearch
> baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/ enabled=1
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY- ZABBIX
> gpgcheck=0
>
> 启用 zabbix-frontend 存储库
> vim /etc/yum.repos.d/zabbix.repo
> ...
> [zabbix-frontend]
> name=Zabbix Official Repository frontend -
> $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ zabbix/zabbix/5.0/rhel/7/$basearch/frontend
> enabled=1 # 启用仓库
> gpgcheck=0
> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY- ZABBIX-A14FE591
1.3 安装 zabbix 前端软件包
> zabbix-web-mysql-scl 用于连接数据库
> zabbix-apache-conf-scl 用于连接 apache
> yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
>
> 如果缺包加入以下两个库
>
> yum -y install epel-release
>
> yum install centos-release-scl
1.4 [安装数据库]软件
> yum install -y mariadb-server
>
> systemctl start mariadb #启动数据库
>
> systemctl enable mariadb #设置开机自启
1.5 数据库配置
> #进入数据库
> mysql
>
> 创建存储数据的库,并支持中文(库名:zabbix)
> MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
>
> #授权连接数据库的用户,并设置密码(用户名:zabbix)
> MariaDB [(none)]> create user zabbix@localhost identified by '123456';
>
> #数据库授权
> MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
>
> #查看所有库
> MariaDB [(none)]> show databases;
> +--------------------+
> | Database |
> +--------------------+
> | information_schema |
> | mysql |
> | performance_schema |
> | test |
> | zabbix |
> +--------------------+
> 5 rows in set (0.01 sec)
>
> #进入 zabbix 库
> MariaDB [(none)]> use zabbix;
> Database changed
>
> #查看当前库下表
> MariaDB [zabbix]> show tables;
> Empty set (0.00 sec) # 空
>
> #在 Zabbix 服务器主机上,导入初始架构和数据。系统将提示您输
> 入新创建的密码
> zcat /usr/share/doc/zabbix-server- mysql*/create.sql.gz | mysql -uzabbix -p zabbix
> Enter password: password # 输入 zabbix 用户密码
>
> #Zabbix 服务器配置数据库
> vim /etc/zabbix/zabbix_server.conf
> 100 DBName=zabbix #存储监控数据的库名
> 116 DBUser=zabbix #连接数据库的用户
> 124 DBPassword=123456 #设置 zabbix 用户密码
>
> #为 Zabbix 配置正确的时区
> vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
> php_value[date.timezone] = Asia/Shanghai # 亚洲 / 上海
1.6 启动并查看
> #启动所有服务
> systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
>
> #设置服务随机自启
> systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
>
> #查看 zabbix 服务占用端口信息
> netstat -anptul | grep zabbix
> tcp LISTEN 0 128 *:10051
> #zabbix-server 端口
> tcp LISTEN 0 128 *:10050
> #zabbix-agent 端口
1.7 zabbix 服务端一键安装脚本
> #!/bin/bash
> #Zabbix-Server 5.0
>
> #安装 zabbix 源、aliyun YUM 源
> cd /etc/yum.repos.d/
> rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
> sed -i.bak 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#' zabbix.repo
> sed -i 's#enabled=0#enabled=1#' zabbix.repo
>
> #安装 zabbix
> yum -y install zabbix-server-mysql zabbix-agent
> yum -y install centos-release-scl
> yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
>
> #安装启动 mariadb 数据库
> yum -y install mariadb mariadb-server httpd
> systemctl start mariadb.service
>
> #创建数据库
> mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
> mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by"zabbix";'
> mysql -e 'flush privileges;'
>
> #导入数据
> zcat /usr/share/doc/zabbix-server-mysql-5.0.3/create.sql.gz|mysql -uzabbix -pzabbix -Dzabbix
>
> #配置 zabbixserver 连接 mysql
> sed -i.bak '/^# DBPassword=*/i DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
>
> #添加时区
> sed -i.bak '/^; php_value[date.timezone]*/i php_value[date.timezone] = Asia/Shanghai' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
>
> #解决中文乱码
> yum -y install wqy-microhei-fonts
> \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
>
> #启动服务
> systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
>
> #开机自启动
> systemctl enable mariadb.service
> systemctl enable httpd
> systemctl enable zabbix-server
>
> #输出信息
> echo "浏览器访问 http://`hostname -I|awk'{print $1}'`/zabbix"
二、zabbix 服务参数介绍
九、web 页面设置
从浏览器上打开 Zabbix 前端访问 URL. 如果你是从 packages 方式安装 Zabbix, URL 是:
请确保先满足所有软件先决条件. 这里的 Check of pre- requisites 必须全部项目 OK 后才能继续配置,如有提示 fail,去 server 上检查是否安装这个包或配置是否按上述更改
为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix 接口将暂停 30 秒。
当菜单折叠为图标时,将鼠标光标放在菜单上,就会重新 显示完整菜单。需要注意菜单只是重新浮在页面内容上;要将页面内容移至右侧,您必须单击展开按钮。如果再次 将鼠标光标置于整个菜单之外,则该菜单将在两秒钟后再 次折叠。
即使菜单被完全隐藏,只需要通过鼠标单击汉堡图标即可 获得完整的菜单。需要注意的是它只是重新浮现在页面内 容上;要将页面内容移至右侧,您必须通过单击显示侧边 栏按钮来取消隐藏菜单。
9.1 修改界面的语言
9.2 修改登录密码(此处我设置为 123456)
9.3 用户及媒介创建
在添加用户的表单中,请确保将新增的用户添加到了一个已有的用户组,比如'Zabbix administrators'。
默认情况下,没有为新增的用户定义媒介(media,即通 知发送方式) 。如需要创建,可以到 媒介(Media)标签 下,然后点击 增加(Add)。
9.4 添加权限
9.5 如何修改超级用户 Admin 的密码
十、部署被监控的主机
1、修改源
> rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.24-1.el7.x86_64.rpm
2、下载 agent 包并查看
3、修改 agent 配置文件
> vim /etc/zabbix/zabbix_agentd.conf
> 117 Server=192.168.63.20 #指定 zabbix server 地 址
>
> #启动服务并设置服务随机自启
> systemctl start zabbix-agent
> systemctl enable zabbix-agent
4、zabbix 客户端一键安装脚本
> #!/bin/bash
> #Zabbix-Agent 5.0
>
> Zabbix_Service=192.168.63.20
>
> #安装 zabbix 源、aliyun YUM 源
> cd /etc/yum.repos.d/
> rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
> sed -i.bak 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#' zabbix.repo
> sed -i 's#enabled=0#enabled=1#' zabbix.repo
>
> #安装 zabbix
> yum -y install zabbix-agent
>
> #修改配置文件
> sed -i.bak "s/^Server=127.0.0.1/Server=$Zabbix_Service/" /etc/zabbix/zabbix_agentd.conf
> sed -i "s/^ServerActive=127.0.0.1/ServerActive=$Zabbix_Service/" /etc/zabbix/zabbix_agentd.conf
> sed -i "/^Hostname=/c Hostname=$(echo `hostname`)" /etc/zabbix/zabbix_agentd.conf
>
> #开启 zabbix-agent 服务 10050 端口
> systemctl start zabbix-agent
>
> #设置开机自启
> systemctl enable zabbix-agent
>
> #输出提示
> echo -e "Now you can use \033[32mnetstat -tnlp\033[0m check \033[33mport:10050\033[0m"
END
官方站点:www.linuxprobe.com
Linux命令大全:www.linuxcool.com
刘遄老师QQ:5604241
Linux技术交流群:3762708
(新群,火热加群中……)
想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章