ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

zabbix4.4.10使用小结

2020-08-19 20:02:23  阅读:467  来源: 互联网

标签:10 grep etc zabbix sh awk print 小结 zabbix4.4


【1-1】如果有镜像源可以忽略此步骤
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

1.下载源的rpm包

一.zabbix安装

【1-1】 安 装 源
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
【1-2】清理缓存
yum clean all
【1-3】服务安装
yum install -y zabbix-server-mysql  zabbix-agent  zabbix-web-mysql zabbix-nginx-conf  
【1-4】修改配置

1.#备份并修改【/etc/nginx/nginx.conf】

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim  /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}

2.#修改【/etc/nginx/conf.d/zabbix.conf】

vim  /etc/nginx/conf.d/zabbix.conf 

server {
        listen          80;                                       #修改端口
        server_name     dev-picture-xssh.bilibiligame.jp;         #公司域名

        root    /usr/share/zabbix;

		allow 114.86.224.135;                                    # 放行公司IP
                deny all;

        index   index.php;

        location = /favicon.ico {
                log_not_found   off;
        }

        location / {
                try_files       $uri $uri/ =404;
        }

        location /assets {
                access_log      off;
                expires         10d;
        }

        location ~ /\.ht {
                deny            all;
        }

        location ~ /(api\/|conf[^\.]|include|locale) {
                deny            all;
                return          404;
        }

        location ~ [^/]\.php(/|$) {
                fastcgi_pass    unix:/run/php-fpm/zabbix.sock;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_index   index.php;

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;
                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

                include fastcgi_params;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;

                fastcgi_intercept_errors        on;
                fastcgi_ignore_client_abort     off;
                fastcgi_connect_timeout         60;
                fastcgi_send_timeout            180;
                fastcgi_read_timeout            180;
                fastcgi_buffer_size             128k;
                fastcgi_buffers                 4 256k;
                fastcgi_busy_buffers_size       256k;
                fastcgi_temp_file_write_size    256k;
        }
}

3.#修改区时

vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Tokyo

4.#启动并开机自启

systemctl start  nginx.service &&  systemctl enable nginx.service
systemctl start  php-fpm.service && systemctl enable php-fpm.service

二.安装数据库

【2-1】下载工具
 yum install -y ncurses-devel libaio-devel cmake gcc gcc-c++ glibc  rpm-build  autoconf numactl
【2-2】上 传 包

下载地址 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

【2-3 】 配 置

(一)【创建目录,用户,解压,改名,软连接】

mkdir /data
useradd mysql -s /sbin/nologin -M 
tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz   
ln -s /data/mysql.5.7.28/ /data/mysql

【在support-flie目录下创建default.cnf文件】

cat <<EOF> /data/mysql/support-files/my_default.cnf  
[mysqld]
server_id=2
log-bin = /data/mysql/logs/mysql-bin.log
#设置mysql的安装目录
basedir =/data/mysql/
#设置mysql数据库的数据存放目录
datadir = /data/mysql/data
#设置端口
port = 3306
socket = /var/lib/mysql/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /data/mysql/logs/mysqld.log
pid-file = /data/mysql/data/mysqld.pid
EOF

(三)【复制启动配置文件】

\cp /data/mysql/support-files/my_default.cnf  /etc/my.cnf

创建目录

mkdir  -p /data/mysql/logs/ 

(四)【授权目录,初始化】

chown mysql.mysql  /data/mysql/ -R 
/data/mysql/bin/mysqld  --initialize --user=mysql --basedir=/data/mysql/ --datadir=/data/mysql/data/

(五)【复制初始化脚本并替换启动脚本中的路径】

cp /data/mysql/support-files/mysql.server  /etc/init.d/mysqld 
 sed -i "s#usr/local#data#g" /etc/init.d/mysqld /data/mysql/bin/mysqld_safe    

(六)【设置成systemctl启动】

cat <<EOF> /usr/lib/systemd/system/mysqld.service     
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

(七)【配置环境变量 ,加载环境变量 ,给启动脚本授权700】

 echo 'PATH=/data/mysql/bin/:$PATH' >/etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
chmod 700 /etc/init.d/mysqld  

(八)【启动数据库,做链接,】

systemctl start mysqld && systemctl enable mysqld.service
 ln -s  /var/lib/mysql/mysql.sock /tmp/mysql.sock

(九)【查找mysql密码,登陆数据库】

[root@suzhu ~]# grep "local" /data/mysql/logs/mysqld.log 
mysql -uroot -p
 set password=password('qazwsx123456');
 flush privileges;
 create database zabbix character set utf8 collate utf8_bin;
 grant all privileges on zabbix.* to zabbix@"192.168.24.%" identified by  'zabbix';

(十)导入zabbix数据

zcat  /usr/share/doc/zabbix-server-mysql-4.2.8/create.sql.gz |mysql -uroot -p    zabbix

三.zabbix配置

【3-1】server端
vim /etc/zabbix/zabbix_server.conf

在如下行进行修改

 91 DBHost=localhost
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword=zabbix
【3-2】agent端
vim /etc/zabbix/zabbix_agentd.conf 
Server=192.168.24.132
ServerActive=192.168.24.132

【3-3】启动

systemctl start zabbix-agent.service  && systemctl enable zabbix-agent.service
systemctl start zabbix-server.service && systemctl enable zabbix-server.service

浏览器输入192.168.24.132即可安装

【3-3】补 充

修改zabbix web界面字体

电脑 C:\Windows\Fonts拉出来一个字体msyh.ttc ,传上去,重命名为DejaVuSans.ttf

ll /etc/alternatives |grep zabbix-web-font
cd  /usr/share/fonts/dejavu
mv DejaVuSans.ttf DejaVuSans.ttf.bak
mv msyh.ttc  DejaVuSans.ttf

刷新zabbix web页面即可

四.服务指标监控

【4-1】监控1:java监控
1.【监控内容】 针对java的堆,老年代,新生代,gc回收
2.【命令提权】 java程序时,由于部分命令zabbix没有权限,我们需要给zabbix提权,在93行左右
3.【脚本样例】下面例子是监控GameServer的脚本

2.#命令提权

vim  /etc/sudoers +101
zabbix  ALL=(ALL)       NOPASSWD:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/bin/jstat

3.#创建脚本目录放置脚本

mkdir -p /etc/zabbix/scripts

4.#创建监控脚本

vim /etc/zabbix/scripts/GameServer.sh 
#!/bin/bash
#获取服务进程(pid)
pid=`ps -ef | grep "GameServer" |grep -v $$| grep -v "cgroup" | grep -v "grep" | awk '{print $2}'`
sudo=/usr/bin/sudo
###################################################################################
#s0c             年轻代中第一块survivor容量
#s1c             年轻代中第二个survivor(幸存区)的容量 
#s0u             年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
#s1u             年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
#s1u_per         幸存区使用的容量百分比
###################################################################################
#ec              EdenCount  年轻代中Eden(伊甸园)的容量 (字节)
#eu              EdenUsed年轻代中Eden(伊甸园)目前已使用空间 (字节)
#ecu_per         EdenUsed %
###################################################################################
#oc              OldCount Old代的容量 (字节)
#ocu             Oldcount Used代的容量 (字节)
#ocuper          Old used%
###################################################################################
#ygc             年轻代gc回收次
#ygct            年轻代gc回收时间
#ogc             老年代gc回收次数
#ogct            老年代gc回收时间
#all_gct         老年代&&和年轻代总的回收时间
###################################################################################
#heap            Game堆的大小
#heapused        Game堆的使用情况
#heap_per        GAME堆的使用百分比
###################################################################################

#MB=kb/1024
#GC
s0c=`$sudo jstat -gc  $pid|awk  'NR==2{print $1/1024}'`
s1c=`$sudo jstat -gc  $pid|awk  'NR==2{print $2/1024}'`
s0u=`$sudo jstat -gc  $pid|awk  'NR==2{print $3/1024}'`
s1u=`$sudo jstat -gc  $pid|awk  'NR==2{print $4/1024}'`
s1u_per=`$sudo jstat -gc  $pid|awk  'NR==2{print $4/$2*100}'`

ec=`$sudo jstat -gc  $pid|awk  'NR==2{print $5/1024}'`
ecu=`$sudo jstat -gc  $pid|awk  'NR==2{print $6/1024}'`
ecu_per=`$sudo jstat -gc  $pid|awk  'NR==2{print $6/$5*100}'`

oc=`/usr/bin/sudo  jstat -gc  $pid|awk  'NR==2{print $7/1024}'`
ocu=`$sudo  jstat -gc  $pid|awk  'NR==2{print $8/1024}'`
ocu_per=`$sudo jstat -gc  $pid|awk  'NR==2{print $8/$7*100}'`


ygc=`$sudo jstat -gcnew  $pid|awk 'NR==2{print $(NF-1)}'`
ygct=`$sudo jstat -gcnew  $pid|awk 'NR==2{print $NF}'`

ogc=`$sudo jstat -gcoldcapacity $pid|awk 'NR==2{print $(NF-2)}'`
ogct=`$sudo jstat -gcoldcapacity $pid|awk 'NR==2{print $(NF-1)}'`
all_gct=`$sudo jstat -gcoldcapacity $pid|awk 'NR==2{print $NF}'`

heap=`$sudo jstat -gc $pid|awk 'NR==2{print ($2+$5+$7)/1024}'`
heapused=`$sudo  jstat -gc $pid|awk 'NR==2{print ($4+$6+$8)/1024}'`
heap_per=`$sudo jstat -gc $pid|awk 'NR==2{print ($4+$6+$8)/($2+$5+$7)*100}'`

case $1  in
s0c)
echo $s0c
;;
s1c)
echo $s1c
;;
s0u)
echo $s1u
;;
s1u)
echo $s1u
;;
s1u_per)
echo $s1u_per
;;

ec)
echo $ec
;;
ecu)
echo $ecu
;;
ecu_per)
echo $ecu_per
;;

oc)
echo $oc
;;
ocu)
echo $ocu
;;
ocu_per)
echo $ocu_per
;;

ygc)
echo $ygc
;;
ygct)
echo $ygct
;;
ogc)
echo $ogc
;;
ogct)
echo $ogct
;;
all_gct)
echo $all_gct
;;

heap)
echo $heap
;;
heapused)
echo $heapused
;;
heap_per)
echo $heap_per
;;
*)
echo "USAGE:{heap|heap_per|...}" 
;;
esac

5.【客户端配置】获取参数,添加如下

 vim /etc/zabbix/zabbix_agentd.d/system.conf
#GameServer的性能指标
UserParameter=Game[*],/usr/bin/sh /etc/zabbix/scripts/GameServer.sh   $1

6.重启

systemctl restart zabbix-agent.service
【4-2】监控2: cpu 内存
1【监控内容】针对各种服务的cpu占用,内存占用 脚本如下
 vim /etc/zabbix/scripts/processstatus.sh 

#!/bin/bash
# auth-tomcat  forest-friend  forest-gateway  forest-server     gm-tomcat  idip-tomcat  pay-tomcat
auth-memory(){
    ps aux|grep "auth-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
auth-cpu(){
    ps aux|grep "auth-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
friend-memory(){
    ps aux|grep "FriendServer"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
forest-cpu(){
    ps aux|grep "FriendServer"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
gateway-memory(){
    ps aux|grep "forest-gateway"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
gateway-cpu(){
    ps aux|grep "forest-gateway"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
game-memory(){
    ps aux|grep "GameServer"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
game-cpu(){
    ps aux|grep "GameServer"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
gm-memory(){
    ps aux|grep "gm-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
gm-cpu(){
    ps aux|grep "gm-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
idip-memory(){
    ps aux|grep "idip-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
idip-cpu(){
    ps aux|grep "idip-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
pay-memory(){
    ps aux|grep "pay-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum*1024}'
}
pay-cpu(){
    ps aux|grep "pay-tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}

case "$1" in
'auth-memory')
auth-memory
;;
'auth-cpu')
auth-cpu
;;
'friend-memory')
friend-memory
;;
'friend-cpu')
friend-cpu
;;
'gateway-memory')
gateway-memory
;;
'gateway-cpu')
gateway-cpu
;;
'game-memory')
game-memory
;;
'game-cpu')
game-cpu
;;
'gm-memory')
gm-memory
;;
'gm-cpu')
gm-cpu
;;
'idip-memory')
idip-memory
;;
'idip-cpu')
idip-cpu
;;
'pay-memory')
pay-memory
;;
'pay-cpu')
pay-cpu
;;
*)
echo "Usage: $0 {auth-memory|....}"
;;
esac

1.【客户端配置】获取参数

echo "UserParameter=process[*],/etc/zabbix/scripts/processstatus.sh \$1" >>/etc/zabbix/zabbix_agentd.d/system.conf

2.重启

systemctl restart zabbix-agent.service
【4-3】监控3: 端 口
1.【监控内容】各个服务的存活状态,0表示非存活,1表示存活,脚本如下
vim /etc/zabbix/scripts/check_process_id.sh
#!/bin/bash
# auth-tomcat  forest-friend  forest-gateway  forest-server     gm-tomcat  idip-tomcat  pay-tomcat
auth(){
    ps aux|grep "auth-tomcat"|grep -v "grep"|grep -v "check_process_id.sh"| wc -l
}
friend(){
    ps aux|grep "FriendServer"|grep -v "grep"|grep -v "check_process_id.sh" | wc -l
}
gateway(){
    ps aux|grep "forest-gateway"|grep -v "grep"|grep -v "check_process_id.sh" | wc -l
}
game(){
    ps aux|grep "GameServer"|grep -v "grep"|grep -v "check_process_id.sh" | wc -l
}
gm(){
    ps aux|grep "gm-tomcat"|grep -v "grep"|grep -v "check_process_id.sh" | wc -l
}
idip(){
    ps aux|grep "idip-tomcat"|grep -v "grep"|grep -v "check_process_id.sh" | wc -l
}
pay(){
    ps aux|grep "pay-tomcat"|grep -v "grep"|grep -v "check_process_id.sh"|wc -l 
}

case "$1" in
'auth')
auth
;;
'friend')
friend
;;
'gateway')
gateway
;;
'game')
game
;;
'gm')
gm
;;
'idip')
idip
;;
'pay')
pay
;;
*)
echo "Usage: $0 {auth|friend|...}"
;;
esac

1.【客户端配置】获取参数

echo "UserParameter=check[*],/usr/bin/sh /etc/zabbix/scripts/check_process_id \$1"  >>/etc/zabbix/zabbix_agentd.d/system.conf

重启客户端

systemctl restart zabbix-agent.service

五.系统指标监控

【5-1】系统指标
1.【监控内容】此监控脚本包含系统内存,CPU,磁盘的Io读写,目录的使用大小
vim /etc/zabbix/scripts/system_status1.sh 
#内存空余(%)
mem_ava=`free -m|awk '/^Mem/{print $NF*100/$2}'`
#交换分区空余(%)
swap_ava=`free -m|awk '/^Swap/{print $NF*100/$2}'`
#服务器的开机时间(days)
system_runtime=`w|awk 'NR==1{print $3}'`

#/data目录的使用大小(Gb)
data_size=`/usr/bin/sudo du -sh /data/|awk -F \G 'NR==1{print $1*1000*1000*1000}'`
#buffer缓存(Mb)
buffer_size=`free -m|awk 'NR==2{print $(NF-1)}'`
#swap的容量(Mb)
swap_size=`free -m|awk 'NR==3{print $2}'`

#CPU监控(%)
#1.cpu平均1min的利用百分比
cpu_load_1min=`w |awk -F \, 'NR==1{print $(NF-2)}'|awk '{print $3}'`
#2.cpu平均5min的利用百分比
cpu_load_5min=`uptime |awk -F \, '{print $(NF-1)}'`
#3.cpu平均15min的利用百分比
cpu_load_15min=`w|awk '/load average/{print $(NF)}'`



case $1 in 
mem_ava)
echo $mem_ava
;;
swap_ava)
echo $swap_ava
;;
system_runtime)
echo $system_runtime
;;
data_size)
echo $data_size
;;
buffer_size)
echo $buffer_size
;;
swap_size)
echo $swap_size
;;
cpu_load_1min)
echo $cpu_load_1min
;;

cpu_load_5min)
echo $cpu_load_5min
;;
cpu_load_15min)
echo $cpu_load_15min
;;
*)
echo "USAGE:{mem_ava|swap_ava|....}"
;;
esac

1.【客户端配置】获取参数

 vim /etc/zabbix/zabbix_agentd.d/system.conf

2.#添加如下

echo "UserParameter=system[*],/usr/bin/sh /etc/zabbix/scripts/system_status1.sh \$1"  >>/etc/zabbix/zabbix_agentd.d/system.conf

3.【重启客户端】

systemctl restart zabbix-agent.service
【5-2】磁盘监控
1【监控内容】磁盘的各项指标监控
2【监控脚本】仅供参考
vim /etc/zabbix/scripts/zbx_parse_iostat_values.sh
#!/bin/bash
dev=$1
type=$2

#enable debug mode
debug=0

if [[ -z "$dev" ]]; then
  echo "error: wrong input value (device)"
  exit 1
fi

if [[ -z "$type" ]]; then
  echo "error: wrong input value (type)"
  exit 1
fi

columns=`iostat -xN |egrep -o "^Device.*"`

columnsarray=($columns)

column_id=1

for i in "${columnsarray[@]}"
do
        #echo "column: $i"

        if [[ "$i" = "$type" ]]; then

            if [[ $debug -eq 1 ]]; then
                echo "right column (${i}) found...column_id: $column_id "
            fi

            id="$"
            column_id_id=$id$column_id

            iostats=`iostat -dxk 1 2|tail -5|egrep -o "^${dev}[[:space:]]+.*" |awk "{print ${column_id_id}}"`
        fi
    column_id=$[column_id + 1]
done

if [ -z "$iostats" ]; then
    echo "error: \"device\" or \"type\" not found (${dev},${type})"
    exit 3
fi

iostats_lines=`wc -l <<< "$iostats"`

if [ $iostats_lines -ne 1 ]; then
    echo "error: wrong output value (${iostats_lines})"
    exit 2
fi

echo $iostats

if [[ $debug -eq 1 ]]; then
    echo "- - - - - - - - - -"
    echo $columns
    iostats_debug=`iostat -xN |egrep -o "^${dev}[[:space:]]+.*"`
    echo $iostats_debug
    echo "- - - - - - - - - -"
fi

exit 0

1.【客户端配置】获取参数.

vim /etc/zabbix/zabbix_agentd.d/system.conf

# 磁盘读写
 #UserParameter=discovery.disks.iostats,/etc/zabbix/scripts/discover_disk.pl
UserParameter=custom.vfs.dev.iostats.rrqm[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "rrqm/s"  # 每秒进行 merge 的读操作数目
UserParameter=custom.vfs.dev.iostats.wrqm[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "wrqm/s"  # 每秒进行 merge 的写操作数目
UserParameter=custom.vfs.dev.iostats.rps[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "r/s"      # 每秒完成的读 I/O 设备次数
UserParameter=custom.vfs.dev.iostats.wps[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "w/s"      # 每秒完成的写 I/O 设备次数
UserParameter=custom.vfs.dev.iostats.rkb[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "rkB/s"    # 每秒读K字节数
UserParameter=custom.vfs.dev.iostats.wkb[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "wkB/s"    # 每秒写K字节数 
UserParameter=custom.vfs.dev.iostats.avgrq[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "avgrq-sz" # 平均每次设备I/O操作的数据大小
UserParameter=custom.vfs.dev.iostats.avgqu[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "avgqu-sz" # 平均I/O队列长度
UserParameter=custom.vfs.dev.iostats.await[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "await"    # 平均每次设备I/O操作的等待时间 (毫秒)
UserParameter=custom.vfs.dev.iostats.svctm[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "svctm"    # 平均每次设备I/O操作的服务时间 (毫秒)
UserParameter=custom.vfs.dev.iostats.util[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 "%util"     # 一秒中有百分之多少的时间用于 I/O 操作

2.【重启客户端】

 systemctl restart zabbix-agent.service

六.企业微信发送告警

【6-1】微信申请
1.【进入企业微信网页版本】
https://work.weixin.qq.com/wework_admin/gdt/25?from=0014100470&bd_vid=11860413431973884778
2.【申请注册并登陆】
3.点击: 【应用管理】——》【创建应用】——》【应用名称】--》【应用介绍】——》【选择部门成员】--完成
4.点击: 【通讯录】——》【创建部门】————》【添加子部门】——》【运维部】——》【点击成员】——》【设置所在部门】

5.三个信息:
【企业】:corpid = 'ww3c487ba1e6eec2ab' #CorpID是企业号的标识
【应用】:AgentId 1000002           应用的标识
【Secret】:LStqb7q8Ymh3ZecammdHdX134qyjFGRKqhKbTyGOqeo 

6-1安装

yum install python-simplejson -y
【6-2】配置脚本

1.#在zabbix特定目录下创建脚本

vim /usr/lib/zabbix/alertscripts/wechat.py 
#!/usr/bin/python
#_*_coding:utf-8 _*_

import urllib,urllib2
import json
import sys
import simplejson

reload(sys)
sys.setdefaultencoding('utf-8')

def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    print gettoken_url
    try:
        token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
        print e.code
        print e.read().decode("utf8")
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token

def senddata(access_token,user,subject,content):

    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
    "touser":"LiuZongLiang", #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
    "toparty":"2", #企业号中的部门id。
    "msgtype":"text", #消息类型。
    "agentid":"1000002", #企业号中的应用id。
    "text":{
        "content":subject + '\n' + content
       },
    "safe":"0"
    }
# send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)

if __name__ == '__main__':
    user = str(sys.argv[1]) #zabbix传过来的第一个参数
    subject = str(sys.argv[2]) #zabbix传过来的第二个参数
    content = str(sys.argv[3]) #zabbix传过来的第三个参数

    corpid = 'ww3c487ba1e6eec2ab' #CorpID是企业号的标识
    corpsecret = 'LStqb7q8Ymh3ZecammdHdX134qyjFGRKqhKbTyGOqeo' #corpsecretSecret是管理组凭证密钥
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)

【6-3】授权文件
 chmod 777 wechat.py 
 chown zabbix.zabbix wechat.py 
【6-4】配置页面

配置一:报警媒介


*名称:【wechat】
 类型:【脚本】                #下拉选择“脚本”

脚本名称【wechat.py】
脚本参数
       参数	                动作
       {ALERT.SENDTO}       【移除】
       {ALERT.SUBJECT}      【移除】
       {ALERT.MESSAGE}      【移除】
       【添加】
  已启用【√】          

  【添加】【取消】             #点击添加               

添加完后,点击右边测试(没有测试按钮的属于zabbix版本过低)
发送用户:LiuZongLiang          #发送接收的企业微信成员

配置二:用户关联

1.点击:
【管理】——》【用户】--》【别名】
2进入后,点击用户右边【报警媒介】
3.添加

类型:wechat
收件人:LiuZongLiang              #添加企业微信成员
当启用时间
1-7,00:00-24:00
如果存在严重性则使用如下
v【未分类】
v【信息】
v【警告】
v【一般严重】
v【严重】
v【灾难】
点击【已启用】
点击【添加】

配置三:动作配置

点击:
1.【动作】——》【名称】——》【触发器或者触发名称】——》[添加]——》【已启用】
然后点击【操作】——》【新的】——》【操作类型】——》【发送到用户群组】——》【用户】——>【仅送到所有】改为【wechat】——》点击[添加]——》【恢复操作】....——》【更新操作】——》【添加】
完成

七.QQ邮箱发送告警

【7-1】开启功能
1.点击【QQ】——》【邮箱】--》【设置】——》【账户设置】
开启服务:

POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?) 已关闭 |  开启
IMAP/SMTP服务 (什么是 IMAP,它又是如何设置?)     已关闭 |  开启
2.点击右边开启,然后会随机生成一个一长串的密码【figpneovepwwbecd】

【7-2】配置页面
【提示:】打√号的为选择方式
1.点击zabbix-web界面版
点击【管理】——》【创建媒体类型】——》

报警媒介类型
报警媒介类型选项
【名称】:QQ邮箱                                          #自定义为QQ邮箱
【类型】:电子邮件                                         #类型选择电子邮件
【SMTP服务器】: smtp.qq.com                             #填写smtp.qq.com
【SMTP服务器端口】:465                                   #端口号:456
【SMTP HELO】:qq.com                                    #qq.com
SMTP电邮: 5435435@qq.com                                #邮箱

安全链接 【无STARTTLS(纯文本通信协议扩展)】 [√]【SSL/TLS】   #安全连接选择SSl和TLS,下面两个SSL验证对端,和SSL验证主机打钩
SSL验证对端[√]

SSL验证主机[√]


认证:【无】 [√]【用户名和密码】                            #选择用户名密码认证,下面数据用户名和密码

用户名称 5435435@qq.com
密码    figpneovepwwbecd
Message format
【HTML】【文本】
已启用[√]

【添加】 【取消】


【添加完成后,右边有个测试的按钮,测试发送邮件是否成功
如果没有测试按钮的,属于zabbix版本过低,升级服务即可
【7-3】用户配置
1.测试成功后——》点击【配置】——》【用户】--》【Admin】——》右边【报警媒介】
2.点击【添加】
报警媒介
         类型: QQ邮箱

        收件人 【5435435@qq.com】              移除
             添加 

        当启用时 【1-7,00:00-24:00】
如果存在严重性则使用【】未分类
                【】信息
                【√】警告
                【√】一般严重
                【√】严重
                【√】灾难

           已启用【√】

                                     【添加】  【取消】
【8-4】动作配置
点击:
1.【动作】——》【名称】——》【触发器或者触发名称】——》[添加]——》【已启用】
然后点击【操作】——》【新的】——》【操作类型】——》【发送到用户群组】——》【用户】——>【仅送到所有】改为【wechat】——》点击[添加]——》【恢复操作】....——》【更新操作】——》【添加】
完成

标签:10,grep,etc,zabbix,sh,awk,print,小结,zabbix4.4
来源: https://www.cnblogs.com/zongliang-ya/p/13531524.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有