zabbix

417 阅读6分钟

为什么要使用监控

①.对系统不间断实时监控

②.实时反馈系统当前状态

③.保证服务可靠性安全性

④.保证业务持续稳定运行

zabbix-proxy分布式使用什么场景?

  1. Zabbix-proxy使用场景:
  2. 监控远程位置,解决跨机房
  3. 监控主机多,性能跟不上,延迟大
  4. 解决网络不稳定

zabbix收集数据的方式有哪些,并且说明模式的含义

1、主动模式

zabbix客户端主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server

2、被动模式

zabbix server向agent请求获取监控项的数据,zabbix agent返回数据

注:zabbix的主动和被动模式是以zabbix客户端为基准的

zabbix监控有哪些

硬件监控:通过 SNMP 来进行路由器交换机的监控。

系统监控:如 CPU 的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘 inode 节点。

服务监控:比如公司用 LNMP nginx 自带 Status 模块、 PHP 也有相关的 Status 、 MySQL 的话可以通过 ODBC协议 来进行监控。

网络监控:如果是云主机又不是跨机房,那么可以选择不监控网络。

安全监控:如果是云主机可以考虑使用自带的安全防护。当然也可以Zabbix监控 iptables 。如果是硬件,那么推荐以Zabbix监控硬件防火墙。

Web 监控:web 监控的话题其实还是很多。比如可以使用自带的 web 监控来监控页面相关的延迟、 js 响应时间、下载时间、等等。

日志监控:如果是 web 的话可以使用监控 Nginx 的 500x 日志。PHP 的 ERROR 日志。

流量分析:平时我们分析日志都是拿 awk sed xxx 一堆工具来实现。这样对我们统计 ip 、 pv 、 uv 不是很方便。那么可以使用百度统计、 google 统计、商业,让开发嵌入代码即可 (不想关建议去掉)。

zabbix的构成

zabbix主要由以下5个组件构成:

1、Server

zabbix server是zabbix的核心组件,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。

2、web页面

web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。

3、数据库

zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。

4、proxy

zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbix server采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重,或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。

5、Agent

zabbix的监控架构

在实际的工作环境中,根据网络环境和监控的规模不同,zabbix一共有三种框架,分别是server_client架构、master_node_client架构和server_proxy_client架构。

1、server_client架构

zabbix最简单的架构,监控设备和被监控设备之间直接相连,zabbix_server 和 zabbix_client 之间直接进行数据交互。

2、zabbix_proxy_client架构

proxy是连接 server 和 client 之间的桥梁,其本身不存放数据,只是将zabbix_agent端发来的数据暂存,然后再提交给server。这种架构一般用于跨机房、跨网络的中型网络架构。

在server_proxy_client架构中,server设备的宕机会导致整个系统瘫痪而无法正常工作。

3、master_node_client架构

master_node_client架构是zabbix最复杂的架构。一般用于跨机房、跨网络、监控设备较多的大型网络架构。与server_proxy_client架构相比,master_node_client架构的主要区别在于node与proxy上.

在master_node_client架构中,每个node可以理解为一个小的server端,在自己的配置文件和数据库,node下游可以直接连接client,也可以再次经过proxy代理后连接client。

zabbix安装和部署

  1. 服务端安装
rpm-Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

image.png

image.png

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

image.png 安装数据库软件

yum install -y mariadb-server

systemctl start mariadb                #启动数据库

systemctl enable mariadb            #设置开机自启
数据库配置
#进入数据库
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    #亚洲/上海

启动并查看

#启动所有服务
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端口 

安装脚本

#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" 

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png