在zabbix-web中删除之前所有监控的主机;

1、zabbix自动发现配置:

zabbix-server通过扫描指定范围的ip地址发现zabbix-agent并自动添加监控主机,适用于zabbix-agent的被动模式,会增加zabbix-server的负担;

(1)zabbix-agent参数配置:

[root@slave-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.90,172.16.1.91

ListenPort=10050

ListenIP=172.16.1.91

StartAgents=3

Timeout=30

[root@slave-node1 ~]# systemctl restart zabbix-agent.service

(2)修改zabbix-server所在服务器的/etc/hosts/文件:

[root@controller-node1 ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.91 slave-node1

说明:如果不修改的话会导致主动发现添加的监控主机名为ip地址而不是被监控主机实际的主机名称;

(3)在zabbix-web添加自动发现规则:

1)

2)

3)

4)

5)

2、zabbix主动注册:

zabbix-agent向zabbix-server发送主机信息,zabbix-server根据主机信息完成zabbix-agent监控主机的添加,适用

于zabbix-agent的主动模式,会减轻zabbix-server的负担;

删除上面实验已添加的自动发现的主机,并关闭自动发现规则;

(1)zabbix-agent参数配置:

[root@slave-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf

StartAgents=0

#完全关闭zabbix-agent的被动模式,关闭监听的ip地址和10050端口;

ServerActive=172.16.1.90

#开启zabbix-agent主动模式,指向zabbix-server的IP地址;

HostnameItem=system.hostname

#zabbix-agent主动模式下指定添加监控主机的名称为服务器的名称;

HostMetadata=web

#zabbix-agent主动模式下主动注册的主机元素;

Timeout=30

[root@slave-node1 ~]# systemctl restart zabbix-agent.service

(2)创建zabbix-agent主动模式所需的Template OS Linux Active模板:

1)

2)

3)

4)

5)

6)

7)

8)

9)

10)

11)

(3)创建Template OS linux Active 链接的模板 Template App Zabbix Agent 为主动模式:

1)

2)

3)

4)

5)

6)

7)

8)

9)

10)

11)

12)

(4)创建自动注册规则:

1)添加服务器群组:

2)

3)

4)

(5)查看自动注册的主机:

(6)查看注册主机最新数据:

3、zabbix低级自动发现:

可以自动创建item,trigger,图形,在这里使用zabbix-agent的主动方式(被动也可);

(1)模板中自带的自动发现规则,以文件系统为例:

1)[root@slave-node1 ~]# zabbix_agentd -p | grep vfs.fs.discovery

vfs.fs.discovery [s|{"data":[{"{#FSNAME}":"/","{#FSTYPE}":"rootfs"},{"{#FSNAME

}":"/sys","{#FSTYPE}":"sysfs"},{"{#FSNAME}":"/proc","{#FSTYPE}":"proc"},{"{#FSNAME}":"/dev","{#FSTYPE}":"devtmpfs"},{"{#FSNAME}":"/sys/kernel/security","{#FSTYPE}":"securityfs"},{"{#FSNAME}":"/dev/shm","{#FSTYPE}":"tmpfs"},{"{#FSNAME}":"/dev/pts","{#FSTYPE}":"devpts"},{"{#FSNAME}":"/run","{#FSTYPE}":"tmpfs"},{"{#FSNAME}":"/sys/fs/cgroup","{#FSTYPE}":"tmpfs"},{"{#FSNAME}":"/sys/fs/cgroup/systemd","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/pstore","{#FSTYPE}":"pstore"},{"{#FSNAME}":"/sys/fs/cgroup/cpu,cpuacct","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/net_cls,net_prio","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/cpuset","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/memory","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/devices","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/perf_event","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/freezer","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/pids","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/blkio","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/fs/cgroup/hugetlb","{#FSTYPE}":"cgroup"},{"{#FSNAME}":"/sys/kernel/config","{#FSTYPE}":"configfs"},{"{#FSNAME}":"/","{#FSTYPE}":"xfs"},{"{#FSNAME}":"/proc/sys/fs/binfmt_misc","{#FSTYPE}":"autofs"},{"{#FSNAME}":"/dev/mqueue","{#FSTYPE}":"mqueue"},{"{#FSNAME}":"/dev/hugepages","{#FSTYPE}":"hugetlbfs"},{"{#FSNAME}":"/sys/kernel/debug","{#FSTYPE}":"debugfs"},{"{#FSNAME}":"/boot","{#FSTYPE}":"xfs"},{"{#FSNAME}":"/proc/sys/fs/binfmt_misc","{#FSTYPE}":"binfmt_misc"},{"{#FSNAME}":"/run/user/0","{#FSTYPE}":"tmpfs"}]}]

2)

3)

4)自动创建的item配置:

5)自动发现正则表达式填写的位置:

(2)创建mysql多实例低级自动发现规则:

1)创建mysql多实例:

在salve-node1上已经使用yum安装了mariadb数据库:

#配置mysql多实例文件:

[root@slave-node1 ~]# mkdir -p /data/3307/

[root@slave-node1 ~]# mkdir -p /data/3308/

[root@slave-node1 ~]# chown -R mysql.mysql /data/3307/

[root@slave-node1 ~]# chown -R mysql.mysql /data/3308/

[root@slave-node1 ~]# cp -a /etc/my.cnf /etc/my3307.cnf

[root@slave-node1 ~]# cp -a /etc/my.cnf /etc/my3308.cnf

[root@slave-node1 ~]# egrep -v "^#|^$" /etc/my3307.cnf

[mysqld]

datadir=/data/3307

socket=/data/3307/mysql.sock

port=3307

symbolic-links=0

[mysqld_safe]

log-error=/data/3307/mariadb.log

pid-file=/data/3307/mariadb.pid

!includedir /etc/my.cnf.d

[root@slave-node1 ~]# egrep -v "^#|^$" /etc/my3308.cnf

[mysqld]

datadir=/data/3308/mysql

socket=/data/3308/mysql.sock

symbolic-links=0

port=3308

[mysqld_safe]

log-error=/data/3308/mariadb.log

pid-file=/data/3308/mariadb.pid

!includedir /etc/my.cnf.d

#初始化mysql多实例:

[root@slave-node1 ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf

[root@slave-node1 ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3308.cnf

#启动mysql多实例:

[root@slave-node1 ~]# mysqld_safe --defaults-file=/etc/my3307.cnf &

[root@slave-node1 ~]# mysqld_safe --defaults-file=/etc/my3308.cnf &

[root@slave-node1 ~]# netstat -tunlp -4 | grep 330

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1273/mysqld

tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 6794/mysqld

tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 6608/mysqld

#为mysql多实例创建新的密码:

[root@slave-node1 ~]# mysqladmin -S /data/3307/mysql.sock -uroot password '123456'

[root@slave-node1 ~]# mysqladmin -h127.0.0.1 -P3308 -uroot password '123456'

#创建mysql多实例监控的用户:

[root@slave-node1 ~]# mysql -h127.0.0.1 -P3307 -uroot -p123456

MariaDB [(none)]> show global variables like 'port';

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

| Variable_name | Value |

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

| port | 3307 |

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

1 row in set (0.00 sec)

MariaDB [(none)]> grant select on *.* to zabbix@"localhost" identified by "123456";

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit;

[root@slave-node1 ~]# mysql -h127.0.0.1 -P3308 -uroot -p123456

MariaDB [(none)]> show global variables like 'port';

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

| Variable_name | Value |

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

| port | 3308 |

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

1 row in set (0.00 sec)

MariaDB [(none)]> grant select on *.* to zabbix@"localhost" identified by "123456";

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit;

2)编写mysql多实例低级自动发现脚本:

[root@slave-node1 ~]# netstat -tunlp -4 | grep mysqld | awk -F "[ :]+" '{print $5}'

3306

3307

3308

[root@slave-node1 ~]# cat /etc/zabbix/zabbix_agentd.d/discovery-mysql.sh

#!/bin/bash

# ###################################################

# Script-Name: discovery-mysql.sh

# Revision: 1.0

# Date:

# Author:

# Email:

# Website:

#####################################################

res=`netstat -tunlp -4 | grep mysqld | awk -F "[ :]+" '{print $5}'`

port=($res)

printf '{\n'

printf '\t"data":[\n'

for key in ${!port[@]}

do

if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then

printf '\t {\n'

printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"},\n"

else [[ "${key}" -eq "((${#port[@]}-1))" ]]

printf '\t {\n'

printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"}\n"

fi

done

printf '\t ]\n'

printf '}\n'

[root@slave-node1 ~]# sh /etc/zabbix/zabbix_agentd.d/discovery-mysql.sh | python -m json.tool

{

"data": [

{

"{#MYSQLPORT}": "3306"

},

{

"{#MYSQLPORT}": "3307"

},

{

"{#MYSQLPORT}": "3308"

}

]

}

[root@slave-node1 ~]# cat /etc/zabbix/zabbix_agentd.d/discovery-mysql.conf

UserParameter=discovery-mysql,sh /etc/zabbix/zabbix_agentd.d/discovery-mysql.sh

#由于netstat命令zabbix用户无法使用,需要赋予该命令s权限位:

[root@slave-node1 ~]# chmod u+s /usr/bin/netstat

3)重启zabbix-agent:

[root@slave-node1 ~]# systemctl restart zabbix-agent.service

4)使用"zabbix_get"命令测试:

zabbix_get命令是被动模式,现在zabbix-agent使用的是主动模式所以需要在zabbix-agent配置文件中打开被动模式;

[root@slave-node1 ~]# zabbix_get -s 172.16.1.91 -k discovery-mysql

{

"data":[

{

"{#MYSQLPORT}":"3306"},

{

"{#MYSQLPORT}":"3307"},

{

"{#MYSQLPORT}":"3308"}

]

}

5)创建mysql多实例低级自动现item原型脚本:

#修改zabbix-agent自带的mysql监控配置文件:

[root@slave-node1 ~]# egrep -v "^#|^$" /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

UserParameter=mysql.status[*],echo "show global status where Variable_name='$4';" | HOME=/var/lib/zabbix mysql -u$1 -p$2 -h127.0.0.1 -P$3 -N | awk '{print $$2}'

UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'

UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$1 -p$2 -h127.0.0.1 -P$3 ping | grep -c alive

UserParameter=mysql.version[*],mysql -u$1 -p$2 -h127.0.0.1 -P$3 -V

6)重启zabbix-agent:

[root@slave-node1 ~]# systemctl restart zabbix-agent.service

7)测试:

[root@slave-node1 ~]# zabbix_get -s 172.16.1.91 -k mysql.status[zabbix,123456,3308,Uptime]

16922

[root@slave-node1 ~]# zabbix_get -s 172.16.1.91 -k mysql.status[zabbix,123456,3307,Uptime]

16918

8)在zabbix-web界面中创建mysql多实例低级自动发现规则:

A、

B、

9)创建mysql多实例低级自动现item、触发器、图像原型(模仿系统中自带的mysql模板):

A、item原型:

a、

b、

B、触发器原型:

C、图像原型:

10)测试:

A、查看最新数据:

B、触发器:

C、图像:

9.5、zabbix高级操作(1)的更多相关文章

  1. 9.5、zabbix高级操作(2)

    4.zabbix的分布式监控: 使用zabbix-proxy主动方式(被动也可),使用zabbix-agent的主动方式(被动也可): Zabbix Server <- Zabbix Proxy ...

  2. [Session] SessionHelper2---C#关于Session高级操作帮助类 (转载)

    点击下载 SessionHelper2.rar 这个类是关于Session的一些高级操作1.添加时限制时间2.读取对象3.读取数据等等看下面代码吧 /// <summary> /// 联系 ...

  3. cassandra高级操作之索引、排序以及分页

    本次就给大家讲讲cassandra的高级操作:索引.排序和分页:处于性能的考虑,cassandra对这些支持都比较简单,所以我们不能希望cassandra完全适用于我们的逻辑,而是应该将我们的逻辑设计 ...

  4. MySQL学习笔记_9_MySQL高级操作(上)

    MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 ...

  5. MySQL学习笔记_10_MySQL高级操作(下)

    MySQL高级操作(下) 五.MySQL预处理语句 1.设置预处理stmt,传递一个数据作为where的判断条件 prepare stmt from "select * from table ...

  6. python列表(list)的使用技巧及高级操作

    python列表(list)的使用技巧及高级操作置顶 2018年03月25日 13:39:41 顽劣的石头 阅读数:5478 标签: python extend bisect list enumera ...

  7. C语言指针的高级操作

    C语言指针的高级操作 指针  指针 在上篇博客中我介绍了C语言指针的最基本操作,那么我在这篇博客中会介绍一下C语言指针的一些骚操作. 指向指针的指针 这名字乍一听有点拗口,再次一听就更加拗口了.先看定 ...

  8. django之创建第8-3个项目-数据库数据提取之高级操作

    1.配置test2.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  9. SpringMVC整合Mongodb开发,高级操作

    开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 +  ...

随机推荐

  1. Win7通过cmd进入d盘的方法

    Win7通过cmd进入d盘的方法 时间:2016-05-13 15:06:03 作者:yunchun 来源:系统之家  手机查看 评论 我们在使用Win7系统过程中,对于经常使用DOS程序的朋友们来说 ...

  2. gitlab同步插件gitlab-mirrors报错<已解决,未找到原因>

    今天下午在使用gitlab-mirrors同步插件时,发现一直在报错 # ~/gitlab-mirrors/add_mirror.sh --git --project-name manifests - ...

  3. touch -d 同时修改atime与mtime

    1.touch命令 touch命令用于创建空白文件或设置文件的时间,格式为"touch [选项] [文件]". 在创建空白的文本文件方面,这个touch命令相当简捷,简捷到没有必要 ...

  4. k8s运行容器之Job应用(6)

    容器按照持续运行的时间可分为两类:服务类容器和工作类容器. 服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等.工作类容器则是一次性任务,比如批处理程序,完成后容 ...

  5. STM32用FreeRTOS时任务优先级和中断优先级说明

    下面对 FreeRTOS 优先级相关的几个重要知识点进行下说明,这些知识点在以后的使用中务必要掌握牢固. FreeRTOS 中任务的最高优先级是通过 FreeRTOSConfig.h 文件中的 co ...

  6. object_pool对象池

    object_pool对象池 object_pool是用于类实例(对象)的内存池,它能够在析构时调用所有已经分配的内存块调用析构函数,从而正确释放资源,需要包含以下头文件: #include < ...

  7. WebConfig配置,添加静态资源,外部可以直接访问地址

    此配置是处理springboot拦截静态文件的 代码如下: @Configuration public class WebMvcConfig implements WebMvcConfigurer { ...

  8. 情景剧:C/C++中的未定义行为(undefined behavior)

    写在前面 本文尝试以情景剧的方式,轻松.直观地解释C/C++中未定义行为(undefined behavior)的概念.设计动机.优缺点等内容1,希望读者能够通过阅读本文,对undefined beh ...

  9. Go探索-String

    字符 字符梗概 ASCII字符集 → (GB2312,BIG5,GBK...) → unicode通用字符集 → utf-8 , ascii子符集,一个符号对应一个数字编号,数字编号即可以二进制形式表 ...

  10. python+selenium基础篇,句柄操作(多个页面切换)

    1.我们打开网页有时候会开出多个页面,导致我们常常定位不到我们需要的元素,这种情况可能就是句柄的因素,如下图所示: 2.句柄切换代码如下: from selenium import webdriver ...