Zabbix——创建自定义监控模板

一,使用zabbix自带模板

1,模板(template)的作用

简单来说就是给需要监控的项组合到一起作为一个监控模板,后续有其他主机需要监控相同的项,直接使用该模板即可,不必要在手动逐个添加监控项了。

2,举例使用zabbix自带模板

配置--主机--创建主机--模板--选择模板--添加模板

zabbix监控模板大全:

方法一:去官网下载监控模板

www.zabbix.com/integration…

方法二:自定义监控模板

案例:自定义监控客户端服务器登录的人数

需求:监控客户端的登录人数,超过 3 个就发出报警信息

3,为什么要自行创建模板

因为zabbix自带的模板,其中定义的监控项等不一定适合我们自己的实际使用场景,而我们对监控需求的机器又比较多,这时候自定义符合自己使用场景的模板就很重要了

1)在客户端创建自定义 key

 #在客户端创建自定义 key
 1.明确需要执行的 linux 命令
 who | wc -l
 ​
 2.客户端,创建 zabbix 的监控项配置文件,用于自定义 key
 vim /etc/zabbix/zabbix_agent2.conf   #查看agent2 配置文件
 ##268行,可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
 Include=/etc/zabbix/zabbix_agent2.d/*.conf   #268行指定配置文件
 ##291行,自定义监控项的格式如下,即按照此格式来进行配置文件的编写
 #   Format: UserParameter=,    
 ​
 cd /etc/zabbix/zabbix_agent2.d/
 vim User_login_num.conf    #编写自定义的监控项配置文件
 UserParameter=login.user,who|wc -l
 #login.user是键名称,"who|wc -l"表示键通过什么命令或脚本获取值
 ​
 systemctl restart zabbix-agent2   #重启服务
 ​
 3.在服务端验证新建的监控项,获取客户端当前的登录人数。
 zabbix_get -s '192.168.6.187' -p 10050 -k 'login.user'
login.user 为键值

1、客户端,创建 zabbix 的监控项配置文件:

vim /etc/zabbix/zabbix.conf

Zabbix——创建自定义监控模板_第1张图片

Zabbix——创建自定义监控模板_第2张图片 Zabbix——创建自定义监控模板_第3张图片

 

 2、在服务端验证新建的监控项,获取客户端当前的登录人数:

Zabbix——创建自定义监控模板_第4张图片

 2)在 Web 页面创建自定义监控项模板

 1.创建模板
 点击左边菜单栏【配置】中的【模板】,点击【创建模板】
 【模板名称】设置成 Template Login User
 【可见的名称】设置成 Template Login User
 【群组】选择 Templates
 【描述】可自定义
 点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
 ​
 2.创建应用集(用于管理监控项的)
 点击上方菜单栏【应用集】,点击【创建应用集】
 【名称】设置成 Login User
 点击 【添加】
 ​
 3.创建监控项
 点击上方菜单栏【监控项】,点击【创建监控项】
 【名称】设置成 Number of login users
 【键值】设置成 login.user          #键值必须要与自定义的监控项配置文件中设置的保持一致
 【更新间隔】设置成 10s   #监控的间隔时间,多久采集一次数据
 【历史数据保留时长】Storage period    30d     #保留时间可自定义设置
 【趋势存储时间】Storage period  30d
 点击 【添加】
 ​
 4.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
 点击上方菜单栏【触发器】,点击【创建触发器】
 【名称】设置成 Number of login users is greater than 3
 【严重性】设置成 一般严重
 【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择>3,点击 【插入】
 点击 【添加】
 ​
 5.创建图形
 点击上方菜单栏【图形】,点击【创建图形】
 【名称】设置成 Number of login users
 【宽】、【高】可直接采用默认值
 【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
 点击 【添加】
 ​
 6.将主机与模板关联起来(一个主机可以关联多个模板)
 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
 点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】
 ​
 此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标。

Zabbix——创建自定义监控模板_第5张图片

Zabbix——创建自定义监控模板_第6张图片

 Zabbix——创建自定义监控模板_第7张图片

2、创建应用集(用于管理监控项的)

  • 点击上方菜单栏【应用集】,点击【创建应用集】
  • 【名称】设置成 Login User
  • 点击 【添加】

Zabbix——创建自定义监控模板_第8张图片

Zabbix——创建自定义监控模板_第9张图片

3、创建监控项

  • 点击上方菜单栏【监控项】,点击【创建监控项】
  • 【名称】设置成 Number of login users
  • 【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
  • 【更新间隔】设置成 10s
  • 【历史数据保留时长】Storage period 30d #保留时间可自定义设置
  • 点击 【添加】

Zabbix——创建自定义监控模板_第10张图片Zabbix——创建自定义监控模板_第11张图片Zabbix——创建自定义监控模板_第12张图片

 4、创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

  • 点击上方菜单栏【触发器】,点击【创建触发器】
  • 【名称】设置成 Number of login users is greater than 3
  • 【严重性】设置成 一般严重
  • 【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择>3,点击 【插入】
  • 点击 【添加】

Zabbix——创建自定义监控模板_第13张图片

Zabbix——创建自定义监控模板_第14张图片

Zabbix——创建自定义监控模板_第15张图片Zabbix——创建自定义监控模板_第16张图片

5、创建图形

  • 点击上方菜单栏【图形】,点击【创建图形】
  • 【名称】设置成 Number of login users
  • 【宽】、【高】可直接采用默认值
  • 【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
  • 点击 【添加】

Zabbix——创建自定义监控模板_第17张图片

 Zabbix——创建自定义监控模板_第18张图片

 Zabbix——创建自定义监控模板_第19张图片

6、将主机与模板关联起来(一个主机可以关联多个模板)

  • 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
  • 点击上方菜单栏【模板】,【Link new templates】搜索 login,选择 Template Login User,点击【更新】
  • 此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标。

Zabbix——创建自定义监控模板_第20张图片

 Zabbix——创建自定义监控模板_第21张图片

此时客户端再多开两个终端,让登录人数大于3。

可以看到zabbix监测到了登录人数问题。

Zabbix——创建自定义监控模板_第22张图片

Zabbix——创建自定义监控模板_第23张图片

二.对nginx的并发连接数进行监控

1.首先在客户端安装nginx工具(yum安装,编译都可以)

2.写入脚本进行监控

监控脚本:

#/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scripts

HOST="localhost"
PORT=80
stub_status="stub_status"
NGINX_COMMAND=$1

#/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scripts

HOST="localhost"
PORT=80
stub_status="stub_status"
NGINX_COMMAND=$1

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

nginx_active(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Active/ {print $NF}'
}

nginx_reading(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Reading/ {print $2}'
}

nginx_writing(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Writing/ {print $4}'
}

nginx_waiting(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Waiting/ {print $6}'
}

nginx_accepts(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $1}'
}

nginx_handled(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $2}'
}

nginx_requests(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $3}'
}

case $NGINX_COMMAND in
    check)
        nginx_check
        ;;
nginx_check() {
    if [ -f /sbin/pidof ]; then
       /sbin/pidof nginx | wc -w
    else
       ps aux | grep -v "grep" | grep -c "nginx:"
    fi
}

nginx_active(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Active/ {print $NF}'
}

nginx_reading(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Reading/ {print $2}'
}

nginx_writing(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Writing/ {print $4}'
}

nginx_waiting(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Waiting/ {print $6}'
}

nginx_accepts(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $1}'
}

nginx_handled(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $2}'
}

nginx_requests(){
    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $3}'
}

case $NGINX_COMMAND in
    check)
        nginx_check
        ;;
    active)
        nginx_active
        ;;
    reading)
        nginx_reading
        ;;
    writing)
        nginx_writing
        ;;
    waiting)
        nginx_waiting
        ;;
    accepts)
        nginx_accepts
        ;;
    handled)
        nginx_handled
        ;;
    requests)
        nginx_requests
        ;;
    *)
        echo $"USAGE:$0 {check|active|reading|writing|waiting|accepts|handled|requests}"
esac

Zabbix——创建自定义监控模板_第24张图片

 Zabbix——创建自定义监控模板_第25张图片

Zabbix——创建自定义监控模板_第26张图片

 点击主机,创建模板,创建应用集,创建触发器,创建监控项,创建图形;监控项可定义多个进行监控

Zabbix——创建自定义监控模板_第27张图片

 Zabbix——创建自定义监控模板_第28张图片

 Zabbix——创建自定义监控模板_第29张图片

 Zabbix——创建自定义监控模板_第30张图片

 Zabbix——创建自定义监控模板_第31张图片

 此时干掉nginx会进行报警

Zabbix——创建自定义监控模板_第32张图片

 设置邮件报警

 7.设置邮件报警
 点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
 【名称】设置成 qq_Email
 【SMTP服务器】设置成 smtp.qq.com
 【SMTP服务器端口】设置成 25   #25端口不进行加密,465端口,通过ssl进行加密
 【SMTP HELO】设置成 qq.com
 【SMTP电邮】设置成 自己的邮箱地址,例如 [email protected]
 【认证】选择 用户名和密码
 【用户名称】设置成 自己的邮箱地址,例如 [email protected]
 【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
 【描述】可自定义
 点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
 点击 【添加】,并测试功能
 ​
 点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
 【类型】选择 qq_Email
 【收件人】设置成 [email protected]
 【当启用时】设置成 1-7,00:00-24:00
 点击 【添加】
 再点击 【更新】
 ​
 点击左边菜单栏【配置】中的【动作】
 选择相对应的动作名称点击进入,点击 【添加】
 【类型】选择 触发器,【触发器】点击选择 Nunber of login users is greater than 3
 点击【启用】
 ​
 #测试邮件报警
 增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警

1、首先确认邮箱的SMTP服务已开启:

Zabbix——创建自定义监控模板_第33张图片

 2、之后在zabbix web界面中设置邮件报警:

Zabbix——创建自定义监控模板_第34张图片

 Zabbix——创建自定义监控模板_第35张图片

 Zabbix——创建自定义监控模板_第36张图片

 Zabbix——创建自定义监控模板_第37张图片

 Zabbix——创建自定义监控模板_第38张图片Zabbix——创建自定义监控模板_第39张图片

  

Zabbix——创建自定义监控模板_第40张图片

 Zabbix——创建自定义监控模板_第41张图片

 

总结

自定义监控模板:

1、先明确获取监控数据的方式,比如通过命令或者shell/python脚本来获取。

2、创建zabbix 的监控项配置文件( /etc/zabbix/ zabbix-agent2.d/*.conf) ,自定义监控数据的键名 Userparameter=,

3、在zabbix-server 的WEB页面上设置自定义监控模板:

  • 配置->模板->应用集->监控项->触发器->图形
  • 将自定义监控模板和主机关联起来

4、设置邮件报警:

  • 管理 -> 报警媒介类型,设置发件人邮箱配置并测试
  • user settings->报警媒介 ,设置收件人的邮箱和运行时间
  • 配置 -> 动作,将触发器和报警媒介关联起来
  • 测试

你可能感兴趣的:(zabbix)