Zabbix 创建自定义监控模版

159 阅读3分钟

1.自定义监控模板

1.1实验内容

  • 案例:自定义监控客户端服务器登录的人数
  • 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息

1.2 实验具体操作

1.在客户端创建自定义key,明确需要执行的 linux 命令 who | wc -l

image.png

2.创建 zabbix 的监控项配置文件

用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
281 Include=/etc/zabbix/zabbix_agent2.d/*.conf

#自定义监控项的格式如下
321 #	Format: UserParameter=<key>,<shell command>

image.png

3.到服务器中去检查一下自己做的键是否生成正确

image.png

image.png

4.我们在zabbix中的wab界面中创建模板

image.png

image.png

image.png

5.在这个模板下创建他的监控项、触发器、图形等

image.png

image.png

image.png

image.png

image.png

image.png

image.png

6.将我们设置好的监控模板与我们的客户机相连接

image.png

image.png

image.png

image.png

2.使用邮件来监控管理我们的服务器

2.1实验内容

让我们的监控软件24小时进行监控,如果出现报警就发邮件通知我们

2.2具体操作

1.创建媒介类型

image.png

2.进行配置设置

image.png

3.密码必须到qq邮箱里面进行授权获取

image.png

image.png

image.png

image.png

image.png

4.先不要急着点添加,设置message templates

image.png

image.png

image.png

image.png

5.点击测试来发送给我自己看看是否正常发送

image.png

image.png

image.png

6.让我们这个设置好的qq邮箱发送关联到我们的触发器上

image.png

image.png

image.png

image.png

image.png

image.png

image.png

7.来进行测试我们的邮件是否能正确的发送报警信息

image.png

image.png

image.png

image.png

3.使用zabbix来监控我们的nginx服务

3.1 实验内容

我们使用zabbix来查看nginx服务的并发量,与在线状态人数等详细信息

3.2 具体操作

1.先在我们的客户机上面安装nginx

image.png

2.查看nginx安装的模块

image.png

3.配置nginx的配置文件,输入状态页面配置

 location /status {
            stub_status on;
            access_log off;
}

image.png

4.先去浏览器访问一下是否设置好了

image.png

5.我们可以使用nginx脚本导入创建监控模块

#!/bin/bash
HOST="localhost"
PORT="80"
stub_status=status

function check() {
	if [ -f /sbin/pidof ]; then
	   /sbin/pidof nginx | wc -w
	else
	   ps ax | grep -v "grep" | grep -c "nginx:"
	fi
}

function active() {
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function accepts() { 
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled() { 
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests() {
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function reading() { 
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing() { 
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting() { 
	/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}

case "$1" in
	check)
		check
		;;
	active)
		active
		;;
	accepts)
		accepts
		;;
	handled)
		handled
		;;
	requests)
		requests
		;;
	reading)
		reading
		;;
	writing)
		writing
		;;
	waiting)
		waiting
		;;

	*)
		echo $"Usage $0 {check|active|accepts|handled|requests|reading|writing|waiting}"
		exit		
esac

image.png

image.png

6.到我们的子配置文件中创建配置文件

image.png

image.png

7.去我们的服务端中去测试我们这个脚本是否有用

image.png

8.将我们这个键名加入到我们的监控项中

image.png

image.png

image.png

image.png

image.png

image.png

9.我们可以再添加一个监控项

image.png

10.设置触发器

image.png

image.png

11.另外一个监控项也添加触发器

image.png

image.png

12.创建一个图形

image.png

image.png

13.将我们的图形与我们的客户端进行关联

image.png

image.png

14.到监控中主机里查看nginx的信息

image.png

4.zabbix的自动发现

4.1 zabbix的自动发现是什么

abbix 自动发现(对于 agent2 是被动模式) zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。

4.2 zabbix自发现的配置操作

1.我们先在一台新的服务器上配置zabbix agent组件

image.png

image.png

2.修改新zabbix agent服务器的配置文件

image.png

image.png

3.新机器配置好后,我们先在主机中把之前配置好的客户机删除掉,等会让他自动加入

image.png

4.在web页面中创建自动加入

image.png

image.png

image.png

image.png

image.png

image.png

image.png

5.到配置的主机中查看,稍微等会就会自动发现其他的agent主机

image.png

5.zabbix的自动注册

5.1 zabbix自动注册是什么

zabbix agent2 会主动上报自己的信息,发给 zabbix server。 缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。

5.2 具体操作

1.先将我们刚才的自动发现选项关闭

image.png

2.把配置主机中自动发现的主机删除掉

image.png

3.到我们的客户端中去修改配置文件

image.png

image.png

4.回到web页面上去创建注册动作

image.png

image.png

image.png

image.png

image.png

image.png

5.这个时候去配置主机中查看是否有主机自动添加进来了

image.png

6.部署zabbix的代理服务器

6.1 分布式监控的作用

  • 分担 server 的集中式压力
  • 解决多机房之间的网络延时问题

0733a9cdfd9842e9b436d5c4f2266fb.png

6.2 部署的具体操作

1.我们到zabbix的官网上去跟着官网的下载步骤去进行部署

image.png

2.我们使用一台新的服务器,修改主机名并添加hosts文件(每个机器都要添加哦)

image.png

image.png

3.安装zabbix-proxy

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

image.png

4.部署数据库mariadb

cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF

yum install -y mariadb-server mariadb

systemctl enable --now mariadb

image.png

5.初始化数据库

mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y

mysql -u root -pabc123

image.png

6.创建数据库并指定字符集,创建 zabbix 数据库用户并授权

CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;

GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

image.png

7.导入数据库信息

rpm -ql zabbix-sql-scripts 		
#查询 sql 文件的位置

cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy

image.png

8.修改zabbix_proxy的配置文件

image.png

image.png

image.png

image.png

9.然后到我们的web页面中进行配置,先将我们的自动注册关闭

image.png

image.png

10.创建agent代理程序

image.png

image.png

11.修改两台agent主机的配置文件,把他们的server地址指向我们的代理服务器

image.png

image.png

12.在web页面当中创建主机

image.png

image.png

image.png

image.png

7.部署zabbix的高可用

1.在主节点server中配置

image.png

2.之后在另外一台server主机上配置一样的地方,注意主机名不一样

image.png

image.png

3.重启server服务,去到web页面进行查看

image.png

image.png

4.去配置客户端上的配置,

image.png

image.png

8.zabbix 对window的监控

1.先下载windows客户端的zabbix agent2

https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.13/zabbix_agent2-6.0.13-windows-amd64-openssl.msi

image.png

2.双击这个图标进行安装

image.png

image.png

3.然后去web服务端中创建主机

image.png

image.png

9.怎么监控java应用

1.先配置java环境,并安装好tomcat

image.png

2.在/usr/local/tomcat/bin/catalina.sh下添加一些配置文件

......	#位置在 cygwin=false 前
CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.223.102"           #tomcat服务器地址

image.png

3.启动服务

image.png

4.在我们的服务端进行安装zabbix-java-gateway,注意如果我们是通过proxy进行转发的我们要在proxy服务器上进行安装

yum install -y zabbix-java-gateway

systemctl enable --now zabbix-java-gateway.service

image.png

5.修改我们的server服务配置文件

image.png

image.png

6.重启我们的server服务并查看我们是否开启了java进程

systemctl status zabbix-server.service 

ps aux | grep zabbix | grep java

image.png

7.在我们web页面上进行设置

image.png

image.png

image.png

10.zabbix监控SNMP

SNMP,简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。

1.客户端中安装snmp监控程序

yum install -y net-snmp net-snmp-utils

image.png

2.修改/etc/snmp/snmp.conf这个配置文件

image.png

image.png

3.我们去web页面上配置主机

image.png

image.png

image.png

image.png