Linux Zabbix——zabbix可视化、监控模板配置、自定义监控参数、自动发现监控下设备、数据库监控、企业proxy分布式监控搭建配置...

Zabbix可视化、监控模板配置、自定义监控参数、自动发现监控下设备、数据库监控、proxy分布式监控搭建配置…

  • 文章篇幅较长,可以选择目录查看感兴趣的模块。

1、Zabbix可视化

1、 简介
企业进行监控的数据和服务项目是一个巨大的工程,我们在进行监控是需要更直观的了解各项数据的情况,图形无疑是一个最佳选择,Zabbix提供直观展示功能。

2、 自定义图形(Graphs)
自定义图形中可以集中展示多个时间序列的数据流。支持线状图(normal)、堆叠面积图(stacked)、饼图(pie) 和分离型饼图(exploded)四种不同形式的图形。

设置过程:
进入 配置 —> 主机 —> 被监控端名 —> 图形,选择右上角创建图形:

在这里插入图片描述

四种状态:图片:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主机也可以自定义,一般来说,线型是看的最清晰的。

3、聚合图形创建

检测–>聚合图形–>创建聚合图形–>编辑–>添加、更改–>选择需要监控的项目–>选择完成添加–>添加完成–>查看图形

在这里插入图片描述

4、幻灯片
检测–>聚合图形–>幻灯片演示–>创建幻灯片–>输入需要展示的幻灯片–>点击项目名开始幻灯片演示

相对应用较少的一个功能。

解决字体乱码问题:

打开Windows–>控制面板–>字体–>选择字体复制到本地–>上传到zabbix-server服务器–>替换掉原始的字体(建议常规楷体简体字)

注意:把新字体文件改名成原来字体文件的名字,不然需要修改如下配置文件

如果有字体文件:

cp 字体文件 /usr/share/zabbix/fonts/graphfont.ttf
#先将字体文件上传到zabbix服务器中
[root@zabbix-server ~]# cd /usr/share/zabbix/fonts/
[root@zabbix-server fonts]# ls
graphfont.ttf
[root@zabbix-server fonts]# mv graphfont.ttf graphfont.ttf.bak
[root@zabbix-server fonts]# ls
graphfont.ttf.bak    
[root@zabbix-server fonts]# mv /root/simkai.ttf .
[root@zabbix-server fonts]# ls
graphfont.ttf.bak  simhei.ttf
[root@zabbix-server fonts]# mv simkai.ttf graphfont.ttf
[root@zabbix-server fonts]# ls
graphfont.ttf  graphfont.ttf.bak
##建议使用xshell自带功能上传字体。

2、Zabbix模板

1、 创建模板

在监控项较多的情况下建议创建模板,将某个服务的监控项添加到一个模板,会大大简化后续的工作。
操作如下:
进入 配置 —> 模板 —> 选择右上角创建模板

在这里插入图片描述

填写完添加即可。

可以基于组过滤,可以看到刚刚定义的模板:

在这里插入图片描述

同理,可以向里面添加应用集、监控项、触发器、图形等等,添加完成以后,后期新的被监控主机可以直接套用模板。

PS. 现在添加的是模板,不会立即采用数据,只有链接到主机上以后,才会生效。

2、 模板的应用

进入 配置 —> 主机 —> node1 —> 模板

选择要添加的模板:

在这里插入图片描述
在这里插入图片描述

点击更新,当主机成功链接至模板,主机数据就会更新了:

在这里插入图片描述

PS. 一个主机可以链接多个模板,在有多个主机情况下,且这些主机在同一个主机组里,只需要在这个主机组里添加模板即可。

3、移除模板链接
当我们一个主机的模板不想要用了,我们就可以移除模板链接,具体操作步骤如下: 进入 配置 —> 主机 —> none1 —> 模板–>移除–>更新即可


3、用户参数(自定义监控)

1、介绍

自定义用户参数【自定义key】,当系统自带模板无法满足使用时,可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中。
用法格式 syntaxUserParameter=,一个用户参数也包含一个键,在配置监控项时,key是必需的项!配置完成需要重启agent 。

2、用法

(1)修改agent 端的配置,设置用户参数
①自己需要查找的参数的命令

[root@zabbix-agent-none1 ~]# free | awk '/^Mem/{print $3}'

在这里插入图片描述

② 修改配置文件,把查找参数的命令设为用户参数

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.confUserParameter=memory.used,free | awk '/^Mem/{print $3}'

③ 重启agent 服务

[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service

(2)在zabbix-server 端,查询

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.used"

在这里插入图片描述

(3)在监控上,设置一个item监控项,使用这个用户参数

配置–>主机–>none1–>监控项–>创建监控项

在这里插入图片描述

3、用法升级

(1)修改agent 端的配置,设置用户参数

① 命令行查询参数的命令
在这里插入图片描述

② 修改配置文件,把查找参数的命令设为用户参数

[root@zabbix-agent-none1 zabbix_agentd.d]# ls
memory_usage.conf  userparameter_mysql.conf
[root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf  ----继续添加
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'     --添加到文件中注意去掉反斜杠
[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service

注意:$$2:表示不是前边调位置参数的$1,而是awk 的参数$2
注意:$1是调用前边的[*],位置参数,第一个参数

(2)在zabbix-server 端,查询使用这个用户参数的key

传参:
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[MemTotal]"
999696
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Cache]"
243832
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Buffer]"
2108

(3)在监控上,设置一个item监控项,使用这个用户参数

① 添加Memory Total 的item监控项,使用memory.stats[MemTotal] 的用户参数

在这里插入图片描述

在进程中定义倍数,规定单位

在这里插入图片描述

② clone 克隆Memory Total 创建Memory Free 的监控项
memory.stats[MemFree] 用户参数

在这里插入图片描述

(4)上面2个监控项的graph 图形
① memory total

在这里插入图片描述

② memory free

在这里插入图片描述

4、使用用户参数监控php-fpm 服务的状态
在agent 端:192.168.246.226
(1)下载,设置php-fpm

[root@zabbix-agent-none1 ~]# yum -y install php-fpm
[root@zabbix-agent-none1 ~]# vim /etc/php-fpm.d/www.conf   #修改如下
user = nginx
group = nginx
pm.status_path = /php-fpm-status    #php-fpm 的状态监测页面 ,#打开注释并修改
ping.path = /ping      #ping 接口,存活状态是否ok   #打开注释

[

root@zabbix-agent-none1 ~]# yum -y install nginx
[root@zabbix-agent-none1 ~]# useradd nginx
[root@zabbix-agent-none1 ~]# systemctl start php-fpm

(2)设置nginx ,设置代理php,和php-fpm的状态页面匹配

[root@zabbix-agent-none1 ~]# vim /etc/nginx/nginx.conf

server {
        listen       80 default_server;
        server_name  localhost;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }
        
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        location ~* /(php-fpm-status|ping) {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $fastcgi_script_name;
            include        fastcgi_params;

            access_log off;   #访问这个页面就不用记录日志了
       }
   }

在这里插入图片描述

[root@zabbix-agent-none1 ~]# nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@zabbix-agent-none1 ~]# nginx -s reload

(3)在agent 端,设置用户参数

① 查询 curl 192.168.246.226/php-fpm-status

在这里插入图片描述

pool – fpm池子名称,大多数为www
process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic
start time – 启动日期,如果reload了php-fpm,时间会更新
start since – 运行时长
accepted conn – 当前池子接受的请求数
listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
max listen queue – 请求等待队列最高的数量
listen queue len – socket等待队列长度
idle processes – 空闲进程数量
active processes – 活跃进程数量
total processes – 总进程数量
max active processes – 最大的活跃进程数量(FPM启动开始算)
max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
slow requests – 启用了php-fpm slow-log,缓慢请求的数量

② 设置

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent-none1 zabbix_agentd.d]# vim php_status.conf     ---添加
UserParameter=php-fpm.stats[*],curl -s http://192.168.246.226/php-fpm-status | awk '/^$1/{print $$NF}'
#设置用户参数为php-fpm.stats[*],$1为第一个参数;$$NF为awk中的参数

③ 重启服务

[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent

(4)在zabbix-server 端,查询使用这个用户参数的key

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[idle]"
4

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[max active]"
1

[root@zabbix-server fonts]#  zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[total processes]"
6

[root@zabbix-server fonts]#  zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[active]"
1

(5)创建一个模板,在模板上创建4个item监控项,使用定义的用户参数

① 创建一个模板

在这里插入图片描述

② 在模板上配置items 监控项,使用刚定义的用户参数

配置—模板–fpm status—监控项–创建监控项
fpm.stats[total processes]

在这里插入图片描述

③ 再clone克隆一个items监控项

fpm.stats[active processes]

在这里插入图片描述

(6)host主机链接模板

配置–主机–none1—模板—选择—fpm status —添加—更新
在这里插入图片描述

在这里插入图片描述

(7)查看graph 图形

① php-fpm total processes
在这里插入图片描述

② php-fpm active processes

在这里插入图片描述

(8)把模板导出,可以给机器使用

① 导出模板
配置–>模板–>选中–>导出

② 自定义参数的文件导出

/etc/zabbix/zabbix_agentd.d/php_status.conf

4、Network discovery 网络发现(自动发现)

1、介绍

(1)介绍
网络发现:zabbix server扫描指定网络范围内的主机;网络发现是zabbix 最具特色的功能之一,它能够根据用户事先定义的规则自动添加监控的主机或服务等

优点:加快Zabbix部署,简化管理,在快速变化的环境中使用Zabbix,而不需要过度管理

(2)发现方式:

ip地址范围;可用服务(ftp, ssh, http, …)zabbix_agent的响应;snmp_agent的响应;

(3)网络发现通常包含两个阶段:discovery发现 和actions动作

① discovery:Zabbix定期扫描网络发现规则中定义的IP范围;② actions:网络发现中的事件可以触发action,从而自动执行指定的操作,把discvery events当作前提条件;添加/删除主机启用/禁用host向组中添加主机移除组中的主机从模板链接主机或取消链接

2、配置网络发现Network discovery
(1)利用第二台用于可被扫描发现的主机 -192.168.246.227

① 安装agent 端的包

[root@zabbix-agent-none2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm[root@zabbix-agent-none2 ~]# yum -y install zabbix-agent zabbix-sender

② 设置agent 配置,可以把之前设置好的none1的配置传过来

[root@zabbix-agent-none2 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.62.135ServerActive=192.168.62.135Hostname=zabbix-agent-none2 #只需修改hostname

[root@zabbix-agent-none2 ~]# visudo       #修改sudo的配置,添加如下信息
zabbix ALL=(ALL) NOPASSWD: ALL

在这里插入图片描述

④ 开启服务

[root@zabbix-agent-none2 ~]# systemctl start zabbix-agent

(2)设置自动发现规则discovery

配置–自动发现–创建自动发现规则【ip范围不要给的太大】–>自动发现页面查看发现的主机

注释:在zabbix-server端
[root@zabbix-server ~]# zabbix_get -s 192.168.246.227 -p 10050 -k "system.uname"
Linux zabbix-agent-none2 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

或者设置为system.hostname(可选)

在这里插入图片描述

② 更新间隔:根据情况调节

(3)自动发现成功

在这里插入图片描述

(4)设置自动发现discovery 的动作action
a) 创建

在这里插入图片描述

b) 设置action动作

在这里插入图片描述

① 设置A条件,自动发现规则=test net
② 设置B条件,自动发现状态=up

在这里插入图片描述

③ 要做什么操作
添加主机到监控
自动链接Template OS Linux 到此host

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

c) 配置action 完成,默认是disabled 停用的,如果不是停用的,也需要再次选择启动,激活一下。

在这里插入图片描述

d) 启用动作,查看效果
确实已经生效,添加主机成功,模板链接成功
在这里插入图片描述


(5)如果自己需要添加的主机已经扫描添加完成,就可以关闭网络扫描了,因为过于消耗资源


5、web页面监控

1、介绍
(1)介绍
① Web监控:监控指定的站点的资源下载速度,及页面响应时间,还有响应码;

2、创建设置web场景
配置–主机–none1–web场景–创建web场景
(1)创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)配置web 监测

在这里插入图片描述

① 点击步骤,设置web page web页面

在这里插入图片描述

a) 设置名为home page,URL为http://192.168.246.226/index.html 的web页面

在这里插入图片描述

b) 设置名为fpm status,URL为http://192.168.246.226/php-fpm-status 的web页面

在这里插入图片描述

c) 设置2个web页面成功

在这里插入图片描述

3、查看测试

在这里插入图片描述
在这里插入图片描述


6、zabbix-server 监控自己的数据库,Nginx

1、下载安装,配置agent

[root@zabbix-server ~]#vim /etc/zabbix/zabbix_agentd.conf      # 配置agent,添加并修改

EnableRemoteCommands=1    #允许远程命令
LogRemoteCommands=1       #记录远程命令
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server

[root@zabbix-server ~]# systemctl start zabbix-agent

2、自动生成Zabbix server的主机
配置—主机
在这里插入图片描述

3、在主机中添加模板

配置–主机—zabbix–server—模板—选择Template DB MYsql -----添加 -----更新
在这里插入图片描述
在这里插入图片描述

4、启用Zabbix server
在这里插入图片描述
在这里插入图片描述

5、监控到数据

在这里插入图片描述


7、实现分布式 zabbix proxy 监控

1、准备

ntpdate 172.168.30.1 同步时间 关闭防火墙,selinux(企业环境请自行配置防火墙环境) 设置主机名
hostnamectl set-hostname zbproxy.qfedu.com vim /etc/hosts
每个机器都设置hosts,以解析主机名;DNS也可

2、环境配置(4台主机)

机器名称 IP配置 服务角色
zabbix-server 192.168.62.131 监控端
node1 192.168.62.168 被监控端
node2 192.168.62.169 被监控端
zbxproxy.qfedu.com 192.168.62.133 代理proxy

zabbix-server 直接监控一台主机 node1
zabbix-server 通过代理 node3 监控 node2

所有机器配置解析

监控端
[root@zabbix-server ~]# hostnamectl set-hostname zabbix-server
[root@zabbix-server ~]# cat /etc/hosts
192.168.62.131 zabbix-server
192.168.62.133 zbproxy.vc.com
192.168.62.168 node1
代理端
[root@zbxproxy ~]# hostnamectl set-hostname zbxproxy.qfedu.com
[root@zbxproxy ~]# cat /etc/hosts
192.168.62.131 zabbix-server
192.168.62.133 zbproxy.vc.com
192.168.62.168 node1
被监控端
[root@node1 ~]# hostnamectl set-hostname node1
[root@node1 ~]# cat /etc/hosts
192.168.62.131 zabbix-server
192.168.62.133 zbproxy.vc.com
192.168.62.168 node17

3、在 zbxproxy.qfedu.com 上配置 mysql

(1、创建配置 mysql

((1、创建 mariadb.repo

[root@zbxproxy ~]# vim /etc/yum.repos.d/mariadb.repo
#写入以下内容:
[mariadb]
name = MariaDB 
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1

(2、yum 安装最新版本 mariadb(也可以下载mariadb5.5版本)

[root@zbxproxy ~]# yum install -y MariaDB-server MariaDB-client

修改配置文件

[root@zbxproxy ~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON          # 跳过主机名解析
innodb_file_per_table = ON      # 开启独立表空间
innodb_buffer_pool_size = 256M  # 缓存池大小
max_connections = 2000          # 最大连接数
log-bin = master-log            # 开启二进制日志

(3、重启我们的数据库服务

[root@zbxproxy ~]#  systemctl restart mariadb
[root@zbxproxy ~]#  mysql_secure_installation  #初始mariadb

(4、创建数据库 和 授权用户

MariaDB [(none)]> create database zbxproxydb character set 'utf8';
MariaDB [(none)]> grant all on zbxproxydb.* to 'zbxproxyuser'@'192.168.30.%' identified by 'zbxproxypass';     #此处@后面可换为%
MriaDB [(none)]> flush privileges;

4、在 zbxproxy.vc.com 上下载zabbix 相关包(代理proxy)

[root@zbxproxy ~]# yum -y install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender

(1、导入数据
zabbix-proxy-mysql 包里带有,导入数据的文件

[root@zbxproxy ~]# rpm -ql zabbix-proxy-mysql

**加粗样式
**

[root@zbxproxy ~]# cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz ./ #复制
[root@zbxproxy ~]# gzip -d schema.sql.gz #解压包
[root@zbxproxy ~]# mysql -uroot -p zbxproxydb < schema.sql #导入数据

(2、查看数据已经生成
在这里插入图片描述

5、配置 proxy 端

[root@zbxproxy ~]# vim /etc/zabbix/zabbix_proxy.conf

在这里插入图片描述

Server=192.168.62.131        # server 的IP
ServerPort=10051             # server 的端口

Hostname=zbxproxy.vc.com  # 主机名
ListenPort=10051             # proxy自己的监听端口
EnableRemoteCommands=1       # 允许远程命令
LogRemoteCommands=1          # 记录远程命令的日志
# 数据的配置
DBHost=192.168.62.133
DBName=zbxproxydb
DBUser=zbxproxyuser
DBPassword=zbxproxypass

ConfigFrequency=30      # 多长时间,去服务端拖一次有自己监控的操作配置;为了实验更快的生效,这里设置30秒,默认3600s
DataSenderFrequency=1   # 每一秒向server 端发一次数据,发送频度

zbxproxyuser@'zbxproxy.vc.com'

开启服务

[root@node3 ~]# systemctl start zabbix-proxy

6、配置node1端允许proxy代理监控,先安装zabbix-agent

[root@none1 ~]# yum install zabbix-agent zabbix-sender -y
[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.62.131,192.168.62.133
ServerActive=192.168.62.131,192.168.62.133
Hostname=node1
[root@node1 ~]#  systemctl restart zabbix-agent #启动服务

7、把代理加入监控 server 创建配置 agent 代理
(1、创建 agent 代理

在这里插入图片描述

(2、配置
管理–agent代理程序–填写名称(与配置文件相同)

8、创建node1 主机并采用代理监控
在这里插入图片描述

设置代理成功

在这里插入图片描述

9、创建item监控项

1、任意创一个监控项 CPU Switches
在这里插入图片描述

2、进程里设置每秒更改
在这里插入图片描述

3、成功graph 图形生成

在这里插入图片描述

下面可以在被监控端下载个Apache,进行监控,查看是否生效
被监控端下载Apache

[root@node1 ~]# yum -y install httpd
[root@node1 ~]# systemctl start httpd

在监控端页面创建监控tcp 80端口的监控项
在这里插入图片描述

在zabbix-server端测试,查看是否能获取的key值

[root@zabbix-server zabbix]#zabbix_get  -s 192.168.153.144  -k net.tcp.listen[80] -p 
10050
1

在这里插入图片描述
在这里插入图片描述

创建触发器

在这里插入图片描述

测试触发器效果

[root@node1 ~]# systemctl stop httpd

在这里插入图片描述

[root@node1 ~]# systemctl start httpd
在这里插入图片描述

触发器生效

END

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值