zabbix 企业级级监控(1) 监控自己

重点一

  1. Zabbix简介

在企业网络运维过程中,管理员必须随时关注各服务器和网络的运行状况,以便及时发现问题,尽可能减少故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便,快捷的获得监控信息,通常会借助于一些集中监测软件。

想要实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的途径。就目前而言,有服务器的地方就少不了监控系统,现有的监控系统软件很多,但是zabbix可灵活的监控服务器资源,并且集cacti与nagios两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。

Zabbix是一个基于web界面的企业级开源监控套件,由C语言编写而成的底层架构(server端和agent端),由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。世界上很多大小不同的组织机构都依赖与zabbix作为自己的一个主要的监控平台,尤其是现在很多互联网企业都在使用它。提供分布式系统监控与网络监控功能,具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能。检测的对象可以是linux或windows服务器,也可以是路由器,交换机等网络设备,通过SNMP(Simple network protocol 简单网络管理协议),zabbix agent,ping,端口监视等方法提供对远程网络服务器等监控,数据收集等功能,并提供通知机制使系统管理员可以快速定位,解决系统中存在的各种问题,目前,zabbix最新版本为zabbix5.0,官方网址是Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

  Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。

  被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据

  Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。

2. Zabbix运行条件:

  Server:

    Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低

  Agent:

    目前已有的agent基本支持市面常见的OS,包含Linux、HP(Unix)、Oracle(Solaris)、windows等

  SNMP:

    支持各类常见的网络设备

3. Zabbix功能

具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP/HTTP等通用协议监控、多种告警方式、详细的报表图表绘制)、支持自动发现网络设备和服务器,支持分布式,能集中展示、管理分布式的监控点,扩展性强,server提供通用接口,可以自己开发完善各类监控。

重点二

1. 优劣势

优点:

  开源,无软件成本投入;

  Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);

  支持设备多;

  支持分布式集中管理;

  开放式接口,扩展性强;

  当监控的item比较多服务器队列比较大时可以采用被对状态,被监控客户端主动从server端去下载需要监控的item然后取数据上传到server端。这种方式对服务器的负载比较小。

缺点:

  无厂家支持,出现问题解决比较麻烦

  需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。

重点三

1.zabbix的监控原理:

zabbix 企业级级监控(1) 监控自己_第1张图片

 

组件说明:

1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;

3)web interface:zabbix的GUI接口;

4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;

5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

监控流程:

  agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:

  主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

  被动:server向agent请求获取监控项的数据,agent返回数据。

客户端守护进程

此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get

  zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender

  zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_server

  zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server

备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。

zabbix_proxy

  zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。

zabbix_java_gateway

  zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。

重点四

扩展:zabbix的监控架构

  在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构: server-client 、master-node-client、server-proxy-client三种 。

1、server-client架构

  也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。

2、server-proxy-client架构

  其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。

3、master-node-client架构

  该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。

重点五

Grafana简介:

  Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。以InfluxDB(由go语言编写,是一个开源,分布式,时间序列,事件,可度量和无外部依赖的数据库)作为底层数据库;

  Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。

Zabbix特点

Zabbix是一个高度集成的网络监控解决方案,具备如表所示的特点:

特点

说明

数据采集

可用性和性能检查

支持SNMP(trapping或polling),IPMI,JMX,VMware的监控

自定义检测

按照自定义时间间隔收集所需数据

通过server/proxy和agent来执行监控

灵活的阈值定义

可以定义非常灵活的问题阈值,称为触发器(triggers),从后端数据库调用数值

高度可配置的告警

可以自定义警告升级(escalation),接受者及告警方式

告警信息可以配置并允许使用宏(macro)变量

通过远程命令实行自动化动作(action)

实时绘图

通过内置的绘图方法实现监控数据实时绘图

Web监控能力

Zabbix可以模拟鼠标单击网站并检查其功能性和响应时间

广泛的可视化选项

能够创建自定义图表,可以组合多个项到一个单一的视图中网络拓扑

自定义屏幕和侧边栏作为仪表盘(dashboard)样式显示报告

监视资源的高级视图(商业)

历史数据存储

用数据库来存储数据

配置历史

内置的管理程序

容易配置

添加监控设备作为主机

一旦在数据库中,主机即可被监控

将模版应用到监控监控设备

使用模版

模版中的可以组监控

模版中可以继承其他模版

网络发现

网络设备的自动发现

代理(agent)自动注册

自动发现文件系统,网络接口,SNMP OID

快速的web接口

Web前端采用php编写

按照自定义的方式单击审计日志

Zabbix API

Zabbix API 提供可编程接口面向Zabbix大规模操作,方便第三方软件集成

安全的用户认证

权限系统

某些用户可以受限于某些试图

功能齐全且易于扩展的代理(agent)

部署在监控目标上

Linux和windows上都可以部署

用C语言写的,高性能且内存占用小

二进制守护进程

易移植

通过使用zabbix proxy可以轻松进行远程监控

 配置

环境:一台主机 192.168.1.128     主机名  server.zabbix.com

关闭防火墙规则

能够通外网

[root@bogon ~]# hostname server.zabbix.com

[root@bogon ~]# bash

[root@server ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@server ~]#  cat /etc/hostname

server.zabbix.com

配置阿里源

[root@server yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
--2023-07-18 19:10:24--  http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 150.139.156.186, 182.201.241.60, 182.201.241.64, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|150.139.156.186|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “Centos-7.repo”

100%[=============================================================>] 2,523       --.-K/s 用时 0.01s   

2023-07-18 19:10:24 (238 KB/s) - 已保存 “Centos-7.repo” [2523/2523])

部署环境 提供zabbix访问页面 

[root@server yum.repos.d]# yum install -y httpd mariadb-server mariadb mariadb-devel php php-mbstring php-mysql php-bcmath php-gd php-xmlrpc php-ldap php-xml libevent libevent-devel net-snmp net-snmp-devel libxml2 libxml2-devel ntpdate curl-devel

启动服务并设置开机启动

[root@server ~]#  systemctl start mariadb
[root@server ~]#  systemctl enable mariadb   
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@server ~]# systemctl start httpd
[root@server ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

准备Java环境

[root@bogon ~]# tar xf jdk-8u91-linux-x64.tar.gz

[root@bogon ~]# mv jdk

jdk1.8.0_91/               jdk-8u91-linux-x64.tar.gz  

[root@bogon ~]# mv jdk1.8.0_91/ /usr/local/java

[root@bogon ~]# tail -2 /etc/profile

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin

[root@bogon ~]# source /etc/profile

[root@bogon ~]# java -version

java version "1.8.0_91"

Java(TM) SE Runtime Environment (build 1.8.0_91-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

[root@bogon ~]# javac -version

javac 1.8.0_91

[root@bogon ~]# which java

/usr/local/java/bin/java

 安装zabbix

[root@server ~]# tar xf zabbix-3.4.11.tar.gz

[root@server ~]# mv zabbix-3.4.11 /usr/src

[root@server ~]# cd /usr/src/zabbix-3.4.11/

[root@server zabbix-3.4.11]#  ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-java && make -j2 && make install   

--prefix=/usr/local/zabbix 指定安装位置   --enable-server --enable-agent   启用zabbix和agent

amriadb数据库授权

[root@server ~]# mysql -u root -p123456

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 3

Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>  create database zabbix character set utf8;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]>  grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to zabbix@'192.168.1.104' identified by 'zabbix';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> fiush privileges;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'fiush privileges' at line 1

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

[root@server ~]# cd /usr/src/zabbix-3.4.11/  

导入zabbix需要的数据

[root@server zabbix-3.4.11]#  mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

[root@server zabbix-3.4.11]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

[root@server zabbix-3.4.11]#  mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

登陆查看

[root@server zabbix-3.4.11]# mysql -u root -p123123

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 7

Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use zabbix;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [zabbix]> show tables;

+----------------------------+

| Tables_in_zabbix           |

+----------------------------+

| acknowledges               |

| actions                    |

| alerts                     |

| application_discovery      |

| application_prototype      |

| application_template       |

| applications               |

| auditlog                   |

| auditlog_details           |

...........................

创建zabbix程序用户并授权防止报错

[root@server zabbix-3.4.11]#  cd /usr/local/
[root@server local]# cd zabbix/

[root@server zabbix]# mkdir logs
[root@server zabbix]# chown -R zabbix:zabbix ../zabbix

[root@server zabbix]# cp -p etc/zabbix_server.conf{,.bak}

[root@server zabbix]# cp -p etc/zabbix_agentd.conf{,.bak}

[root@server zabbix]# cd /usr/local/zabbix/etc

[root@server etc]# vim zabbix_server.conf

 38 LogFile=/usr/local/zabbix/logs/zabbix_server.log

 68 PidFile=/tmp/zabbix_server.pid

 85 DBHost=192.168.1.128

 95 DBName=zabbix

111 DBUser=zabbix

119 DBPassword=zabbix

126 DBSocket=/var/lib/mysql/mysql.sock

127 Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf

LogFile=/usr/local/zabbix/logs/zabbix_server.log     #指定zabbix日志位置

PidFile=/tmp/zabbix_server.pid #指定zabbix pid文件位置

DBHost=192.168.200.111 #指定数据库主机

DBName=zabbix     #指定数据库名为zabbix

DBUser=zabbix                                   #指定用户为zabbix

DBPassword=zabbix #指定密码为zabbix

DBSocket=/var/lib/mysql/mysql.sock #指定mariadb数据库的sock文件

Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf

[root@server etc]#  vim zabbix_agentd.conf 68 PidFile=/tmp/zabbix_server.pid

30 LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

 31 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

 93 Server=127.0.0.1,192.168.1.128

134 ServerActive=192.168.1.128

145 Hostname=Zabbix server

[root@server etc]#  ln -s /usr/local/zabbix/sbin/* /usr/local/bin

[root@server etc]# zabbix_server

[root@server etc]# zabbix_agentd

配置php和apache

[root@server etc]# mv /usr/src/zabbix-3.4.11/frontends/php/ /var/www/html/zabbix

[root@server etc]# chown -R apache:apache /var/www/html/zabbix/

[root@server etc]# vim /etc/php.ini

878 date.timezone = Asia/Shanghai ##时区

384 max_execution_time = 300 ##单位秒,通过POST、GET以及PUT方式接收数据时间进行限制

394 max_input_time = 300 ##php程序上传文件解析数据时的时间限制

672 post_max_size = 32M ##POST 方式请求数据所允许的最大大小

405 memory_limit = 128M ##设置php程序的内存限制

854 extension=bcmath.so   ##加载zabbix程序需要加载的扩展模块bcmath.so手动添加

[root@server etc]# systemctl restart httpd

[root@server etc]# netstat -anpt |egrep ':10050|:10051|:80'

tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      15209/zabbix_agentd

tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      15147/zabbix_server

tcp        0      0 192.168.1.128:10051     192.168.1.128:41986     TIME_WAIT   -                   

tcp6       0      0 :::10050                :::*                    LISTEN      15209/zabbix_agentd

tcp6       0      0 :::10051                :::*                    LISTEN      15147/zabbix_server

tcp6       0      0 :::80                   :::*                    LISTEN      15252/httpd         

 web安装zabbix

1.

zabbix 企业级级监控(1) 监控自己_第2张图片

 2.

zabbix 企业级级监控(1) 监控自己_第3张图片

 3.

zabbix 企业级级监控(1) 监控自己_第4张图片

 4.

zabbix 企业级级监控(1) 监控自己_第5张图片

5.

zabbix 企业级级监控(1) 监控自己_第6张图片

6.

zabbix 企业级级监控(1) 监控自己_第7张图片

7.

zabbix 企业级级监控(1) 监控自己_第8张图片

8.

zabbix 企业级级监控(1) 监控自己_第9张图片

页面优化

9.

zabbix 企业级级监控(1) 监控自己_第10张图片

10.

 完成后F5载页面就会中文显示

11.

zabbix 企业级级监控(1) 监控自己_第11张图片

 12.

密码修改

zabbix 企业级级监控(1) 监控自己_第12张图片

 13.解决中文乱码

[root@server etc]# cd /var/www/html/zabbix/fonts/

[root@server fonts]# ls

DejaVuSans.ttf

改名备份

[root@server fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak

[root@server fonts]# ll

总用量 740

-rw-r--r--. 1 apache apache 756072 6月  25 2018 DejaVuSans.ttf.bak

找好的中文包

[root@server fonts]# mv /root/simkai.ttf .

[root@server fonts]# ll

总用量 4780

-rw-r--r--. 1 apache apache  756072 6月  25 2018 DejaVuSans.ttf.bak

-rwxr--r--. 1 root   root   4135804 7月  18 20:32 simkai.ttf

[root@server fonts]# mv simkai.ttf DejaVuSans.ttf

[root@server fonts]# ls

DejaVuSans.ttf  DejaVuSans.ttf.bak

[root@server fonts]# chown -R apache:apache *

[root@server fonts]# ll

总用量 4780

-rwxr--r--. 1 apache apache 4135804 7月  18 20:32 DejaVuSans.ttf

-rw-r--r--. 1 apache apache  756072 6月  25 2018 DejaVuSans.ttf.bak

 14.查看

zabbix 企业级级监控(1) 监控自己_第13张图片

 15.监控直接

zabbix 企业级级监控(1) 监控自己_第14张图片

 16.

zabbix 企业级级监控(1) 监控自己_第15张图片

zabbix 企业级级监控(1) 监控自己_第16张图片

 17.

zabbix 企业级级监控(1) 监控自己_第17张图片

 18.

zabbix 企业级级监控(1) 监控自己_第18张图片

 19.

zabbix 企业级级监控(1) 监控自己_第19张图片

 20.

zabbix 企业级级监控(1) 监控自己_第20张图片

 21.

zabbix 企业级级监控(1) 监控自己_第21张图片

 

 OK拜拜

你可能感兴趣的:(zabbix)