ZABBIX工作流程与自定义监控项




  • 解决zabbix中文乱码问题
  • 1.创建主机组
  • 2.添加监控项
  • A.用模板添加
  • B.用手动方式
  • 3.添加触发器
  • 4.添加媒介
  • 5.添加动作
  • 其他添加媒介动作的方法
  • 1.使用脚本
  • 2.配置文件mail.rc
  • 自定义监控项
  • 1.自定义监控日志
  • 2.自定义监控 MySQL主从
  • 3.自定义监控 MySQL延迟
  • 给监控项加声音
  • Zabbix常用监控项


1.安装zabbix客户端

[root@192 zabbix-5.0.1]# yum install gcc  pcre*

[root@192 zabbix-5.0.1]# ./configure --enable-agent
[root@192 zabbix-5.0.1]# make install

[root@192 zabbix-5.0.1]# useradd -r -M -s /sbin/nologin zabbix

[root@192 zabbix-5.0.1]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.30.226
ServerActive=192.168.30.22
Hostname=001


[root@192 zabbix-5.0.1]# zabbix_agentd 
[root@192 zabbix-5.0.1]# ss -anlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128              *:22                           *:*                  
LISTEN      0      128              *:10050                        *:*                  
LISTEN      0      128             :::22                          :::*             



**服务端**
可以取到值
[root@zyy180 ~]# zabbix_get -s 192.168.30.178 -k vfs.file.cksum[/tmp/zyy]
621795530


解决zabbix中文乱码问题

将自己电脑上的字体导出来

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件



zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_02



zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_03



源码安装,将文件拖进这个位置,并改名MSYHBD

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_04



zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_05



zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_06



zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_07



图表没有乱码

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_08



1.创建主机组

1.右上角创建

zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_09

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_10




2.添加主机

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_11



Host name要与配置文件一致

右上角添加

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_12

2.添加监控项

A.用模板添加


1.右上角创建主机的第二列

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_13

2.查看图形

点一下IP,在弹框里点Graphs

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_14

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_15



B.用手动方式

1.点ltems

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_16



2.右上角添加监控项

Type选择 Zabbix agent

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_17




3.查看*

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_18





3.添加触发器

1.点击Tiggers

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_19



2.右上角添加

选择刚刚添加的监控项

点击Add选择监控项要是使用的函数

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_20




3.查看触发器

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_21





4.添加媒介

1.媒体配置

SMTP server 是邮箱的服务器(到自己的邮箱网站下查看)

STMP email 是 指定使用邮箱(希望那个邮箱发送邮件给你)

password是pop3/smtp授权码

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_22


选择模板

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_23



2.创建一个用户

zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_24



3.添加发送的mail

Type选择刚刚创建的媒介

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_25


zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_26


5.添加动作

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_27



1.选择刚刚创建的用户和媒体

Add选择刚刚创建的用户

Seed only to 选择刚刚创建的媒体

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_28


2.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_29



zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_30



其他添加媒介动作的方法

1.使用脚本
**在服务器端**

[root@zyy180 yum.repos.d]# yum -y install mailx
[root@zyy180 ~]# echo "666" |mail -s "111" zyy130988@163.com  //可以发邮件
 


 //设置脚本存放路径
[root@zyy180 etc]# vim zabbix_server.conf     
AlertScriptsPath=/usr/local/etc/zabbix/alertscripts


[root@zyy180 etc]#mkdir  -p  /usr/local/etc/zabbix/alertscripts

[root@zyy180 etc]#cd /usr/local/zabbix/alertscripts

[root@zyy180 alertscripts]# vim sendmail.sh

[root@zyy180 alertscripts]# chmod +x sendmail.sh 




[root@zyy180 alertscripts]# vim sendmail.sh

#!/bin/bash

SUBJECT=$(echo -e $2 |tr "\r\n" "\n")
MESSAGE=$(echo -e $1 |tr "\r\n" "\n")


echo "$MESSAGE" | /usr/bin/mail  -s "SUBJECT" $3


[root@zyy180 etc]# chown -R zabbix.zabbix zabbix

重启服务



1.配置媒介,选择Script(脚本

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_31




2.选择参数

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_32


3.选择刚创建的媒介

Edit修改 Type改为刚刚创建的媒介

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_33


4.修改动作

send only to 选择刚刚创建的媒介

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_34


5.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_35

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_36




2.配置文件mail.rc
[root@zyy180 alertscripts]# vim /etc/mail.rc   //更改邮件的配置文件

set from=zyy130988@163.com
set smtp="smtp.163.com"
set smtp-auth-user=zyy130988@163.com
set smtp-auth-password=DJAVQTYYZRYYTYKU
set smtp-auth=login


[root@zyy180 alertscripts]# systemctl restart postfix   //重新启动



1.添加媒介

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_37




2.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_38


自定义监控项

**客户端**

1.创建一个脚本存放目录
[root@192 ~]# mkdir /scripts/
[root@192 ~]# cd /scripts/


2.创建脚本文件
[root@192 scripts]# vim check_process.sh 

#!/bin/bash

process_status=$(ps -ef|grep  $1 |grep -Ev "grep|$0" | wc -l )

if [ $process_status -eq 0 ];then
    echo '1'
else 
    echo '0'

fi


3.给执行权限
[root@192 scripts]# chmod +x check_process.sh 




4.修改配置文件启动功能,启动功能

[root@192 scripts]# vim /usr/local/etc/zabbix_agentd.conf

UnsafeUserParameters=1

UserParameter=check_process[*],/bin/bash    /scripts/check_process.sh  $1
                  key         用/bin/bash执行   脚本位置                参数




5.重启服务
[root@192 etc]# pkill zabbix
[root@192 etc]# zabbix_agentd 



**服务端**
[root@zyy180 etc]# zabbix_get -s 192.168.30.178 -k check_process[vim]
0



1.添加监控项

key要写配置文件里的

有函数就在[写进来]

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_39



2.查看监控项

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_40



3.查看监控项的状态值

右上角更改View as

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_41




4.添加触发器

ltem选择刚刚添加的监控项

Resuit=1 (等于1就触发)

zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_42

5.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_43





1.自定义监控日志

1.配置客户端文件

1.将脚本下载下来
https://github.com/chendao2015/pyscripts



2.cp到脚本目录下
[root@localhost ~]# unzip pyscripts-master.zip
[root@localhost ~]# cd pyscripts-master
[root@localhost pyscripts-master]mv log.py /scripts/



3.更改配置文件
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=log_information[*],/usr/bin/python /scripts/log.py $1 $2 $3



4.在服务端测试
[root@zyy180 ~]# zabbix_get -s 192.168.30.230 -k log_information[/var/log/secure,/tmp/logseek,Failed]
1


tail -f  实时查看日志


2.添加监控项

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_44



3.添加触发器

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_45



4.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_46



zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_47


2.自定义监控 MySQL主从

1.配置文件

**在1号客户端安装mysql**
**在2号客户端上安装mysql与zabbix客户端**
**1号客户端和2号客户端将主从配好**


1.在2号客户端创建脚本目录(与1号客户端一致)
[root@yyslave ~]# mkdir /scripts
[root@yyslave ~]#cd /scripts/





2.编写脚本
[root@yyslave scripts]# vim master_slave.sh 

#!/bin/bash

master_slave=$( /usr/bin/mysql  -uroot -e 'show slave status\G;' 2>/dev/null | grep "Slave.*Running" | grep -c 'Yes' )

if [ $master_slave -eq 2 ];then
    echo "0"
else
    echo "1"
fi




3.更改配置文件
[root@yyslave scripts]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=master_slave,/usr/bin/bash /scripts/master_slave.sh




4.重启服务
[root@yyslave ~]# pkill zabbix
[root@yyslave ~]# zabbix_agentd 




5.在服务端测试
[root@zyy180 ~]# zabbix_get -s 192.168.30.231 -k master_slave 
0


2.添加监控项

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_48



3.添加触发器

zabbix监控自定义服务 zabbix自定义监控项具体步骤_vim_49



4.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_客户端_50



zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_51




3.自定义监控 MySQL延迟

1.更改配置文件

1.进入脚本目录,编写目录
[root@yyslave scripts]# vim database_delay.sh 
#!/bin/bash



delay=$( /usr/bin/mysql -uroot -e 'show slave status\G;' 2>/dev/null | grep 'Seconds_Behind_Master' | awk -F ': '\+ '{print $2}' )

if [ $delay -eq 0 ];then
    echo "0"
else
    echo "1"
fi




2.更改配置文件
[root@yyslave scripts]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=database_delay,/usr/bin/bash /scripts/database_delay.sh




3.重启服务
[root@yyslave scripts]# pkill zabbix
[root@yyslave scripts]# zabbix_agentd 




4.服务端测试
[root@zyy180 ~]# zabbix_get -s 192.168.30.231 -k database_delay 
0


2.添加监控项

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_52



3.添加触发器

这里应该是>0 ,

但为了试验效果所以 表达式=0

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_53


4.完成

zabbix监控自定义服务 zabbix自定义监控项具体步骤_配置文件_54


zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_55

给监控项加声音

点击User settings,在点击第三个选项

zabbix监控自定义服务 zabbix自定义监控项具体步骤_zabbix监控自定义服务_56



Zabbix常用监控项

Windons系统:

项目

items

items说明

内存

vm.memory.size[free]

vm.memory.size[total]

系统可用内存量

系统总共内存量


swap空间

system.swap.size[,free]

system.swap.size[,total]


swap情况


CPU

system.cpu.util[,avg1]

CPU

system.cpu.util[,avg5]

系统CPU平均5min的利用百分比

CPU

system.cpu.util[,avg15]

系统CPU平均15min的利用百分比

CPU

system.cpu.load[percpu,avg1]

系统CPU总负载/在线cpu个数平均1min的利用百分比

CPU

system.cpu.load[percpu,avg5]

系统CPU总负载/在线cpu个数平均5min的利用百分比

CPU

system.cpu.load[percpu,avg15]

系统CPU总负载/在线cpu个数平均15min的利用百分比

CPU

perf_counter[“\Processor(_Total)% User Time”]

系统CPU使用时间百分比情况

CPU

perf_counter[“\Processor(_Total)% Processor Time”]

系统CPU使用负载百分比情况


磁盘空间(可用量)

vfs.fs.size[{#FSNAME},free]

可用磁盘空间大小

磁盘空间(使用百分比)

vfs.fs.size[{#FSNAME},pfree]

可用磁盘空间大小占分区总磁盘空间的百分比

磁盘空间(总量)

vfs.fs.size[{#FSNAME},total]

分区总磁盘空间大小

磁盘空间(使用量)

vfs.fs.size[{#FSNAME},used]

已使用磁盘空间大小


I/O (读)

perf_counter[\2\16]

磁盘读取量 (bytes)

I/O (写)

perf_counter[\2\18]

磁盘写入量 (bytes)

I/O (读队列)

perf_counter[\234(_Total)\1402]

磁盘读取队列数

I/O (写队列)

perf_counter[\234(_Total)\1404]

磁盘写入队列数


网络流量(进口)

net.if.in[{#IFNAME}]

网络进接口流量 (bps)

网络流量(出口)

net.if.out[{#IFNAME}]

网络出接口流量 (bps)


系统

proc.num[]

系统中总进程数量

系统

perf_counter[\2\250]

系统中线程的数量

系统

system.localtime

系统时间



Agent

agent.ping

检查客户端可用性

Agent

agent.version

检查客户端使用版本

Agent

system.uname

系统详细信息

Agent

system.uptime

系统开启持续时间

Agent

agent.hostname

客户端主机名




程序内存/虚拟内存

proc_info[<process>,<attribute>,<type>]

程序内存、虚拟内存监控:

process - process name

attribute - requested process

attribute(vmsize,wkset内存)

type -min,max,avg,sum

eg:proc_info[NewImport.exe,vmsize,sum]

NewImport.exe的内存使用情况

程序PID监控

perf_counter[counter,]

监控程序Pid

counter-“\Process(reportserver)\ID Process”

Linux系统:

项目

items

items说明

内存

vm.memory.size[available]

系统中已用内存量

内存

vm.memory.size[total]

系统总共内存量

swap空间

system.swap.size[,free]

system.swap.size[,pfree]

system.swap.size[,total]


CPU

system.cpu.switches

系统文件切换 (bps)

CPU

system.cpu.util[,user]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,nice]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,system]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,iowait]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,idle]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,interrupt]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,steal]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.util[,softirq]

类似于对应系统中top命令查看CPU显示值

CPU

system.cpu.load[percpu,avg1]

系统CPU总负载/在线cpu个数平均1min的利用百分比

CPU

system.cpu.load[percpu,avg5]

系统CPU总负载/在线cpu个数平均5min的利用百分比

CPU

system.cpu.load[percpu,avg15]

系统CPU总负载/在线cpu个数平均15min的利用百分比


磁盘空间(可用量)

vfs.fs.size[{#FSNAME},free]

可用磁盘空间大小

磁盘空间(使用百分比)

vfs.fs.size[{#FSNAME},pfree]

可用磁盘空间大小占分区总磁盘空间的百分比

磁盘空间(总量)

vfs.fs.size[{#FSNAME},total]

分区总磁盘空间大小

磁盘空间(使用量)

vfs.fs.size[{#FSNAME},used]

已使用磁盘空间大小

磁盘空间(节点数占用)

vfs.fs.inode[{#FSNAME},pfree]

可用磁盘节点数占总节点数的百分比


网络流量(进口)

net.if.in[{#IFNAME}]

网络进接口流量 (bps)

网络流量(出口)

net.if.out[{#IFNAME}]

网络出接口流量 (bps)


系统

proc.num[]

系统中总进程数量,通过top查看

系统

proc.num[,run]

系统中处于running的进程,通过top查看

系统

system.localtime

系统时间

系统

vfs.file.cksum[/etc/passwd]

系统文件passwd的文件总数

系统

system.boottime

系统启动的时间戳

系统

system.hostname

系统名称

系统

system.cpu.intr

设备中断

系统

kernel.maxfiles

系统支持打开文件的最大数量

系统

kernel.maxproc

系统支持打开进程的最大数量

系统

system.users.num

登陆系统的用户数

Agent

agent.ping

检查客户端可用性

Agent

agent.version

检查客户端使用版本

Agent

system.uname

系统详细信息

Agent

system.uptime

系统开启持续时间

Agent

agent.hostname

客户端主机名


端口

net.tcp.listen[port]

监控程序端口启用