栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

zabbix监控配置流程与自定义监控

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zabbix监控配置流程与自定义监控

文章目录
  • 1.Zabbix常规监控指标:
  • 2.监控配置具体流程
    • 2.1 添加受控主机或主机组
      • Linux-agent端安装zabbix-agent
      • Windows-agent端安装zabbix-agent
    • 2.2 添加监控项的配置
      • 使用模板添加-Linux agent端
      • 创建自定义模板
      • 手动添加,自行配置
    • 2.3 添加触发器
    • 2.4 添加媒介
    • 2.5 配置用户要使用的媒介
    • 2.6 添加动作
    • 2.7 手动触发 进行验证
  • 3. 自定义监控
    • 自定义监控进程
    • 自定义监控日志

1.Zabbix常规监控指标:

系统方面的指标

  • CPU负荷
  • 内存使用
  • 磁盘使用

网络方面的指标

  • 网络状况(网卡 网口)

业务方面的指标

  • 进程监视
  • 端口监视
  • 日志监视
2.监控配置具体流程
  • zabbix监控配置一般包括以下几步
  1. 添加主机或主机组
  2. 添加监控项
  • 使用模板添加
  • 创建自定义模板
  • 手动添加,自行配置
  1. 添加触发器
  2. 添加媒介
  3. 添加动作(报警方式)
  4. 手动触发 进行验证
2.1 添加受控主机或主机组
实验环境OSip
server端Linux192.168.177.136
agent端Linux192.168.177.150
agent端Windows192.168.0.102
Linux-agent端安装zabbix-agent
#从服务端传zabbix安装包
[root@node1 pkgs]# scp ./zabbix-5.0.25.tar.gz 192.168.177.150:/root/
zabbix-5.0.25.tar.gz                             100%   20MB  56.1MB/s   00:00    
[root@node1 pkgs]#  pwd
/tmp/pkgs
[root@zabbix-agent ~]#  ls
anaconda-ks.cfg  zabbix-5.0.25.tar.gz

#解压软件包
[root@zabbix-agent ~]#tar xf zabbix-5.0.25.tar.gz

#创建用户
[root@zabbix-agent ~]# useradd -r  -M -s /sbin/nologin zabbix
[root@zabbix-agent ~]# id zabbix 
uid=994(zabbix) gid=991(zabbix) 组=991(zabbix)

#安装依赖包
[root@zabbix-agent ~]# yum -y install gcc gcc-c++ make

#执行编译命令
[root@zabbix-agent ~]# ls
anaconda-ks.cfg  zabbix-5.0.25  zabbix-5.0.25.tar.gz
[root@zabbix-agent ~]# cd zabbix-5.0.25/
[root@zabbix-agent zabbix-5.0.25]# ./configure  --enable-agent

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*                                  *
***********************************************************
 
#编译安装make install
[root@zabbix-agent zabbix-5.0.25]# make install


#关闭防火墙和selinux
[root@zabbix-agent zabbix-5.0.25]# cd
[root@zabbix-agent ~]# systemctl  disable --now firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zabbix-agent ~]# vim /etc/sysconfig/selinux
SELINUX=disabled   //默认为enforcing

#生成随机数
[root@zabbix-agent ~]# echo $RANDOM
26074

#修改客户端配置文件
[root@zabbix-agent ~]# cd /usr/local/etc/
[root@zabbix-agent etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@zabbix-agent etc]# vim zabbix_agentd.conf
Server=192.168.177.136
ServerActive=192.168.177.136
Hostname=26074  
//找到以上三行 并补充完整服务端ip 与随机主机名

#启动服务
[root@zabbix-agent etc]# cd
[root@zabbix-agent ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port       Peer Address:Port   Process   
LISTEN    0         128                0.0.0.0:22              0.0.0.0:*                               
LISTEN    0         128                   [::]:22                 [::]:*                
[root@zabbix-agent ~]# zabbix_agentd 
[root@zabbix-agent ~]# ss -antl
State    Recv-Q    Send-Q       Local Address:Port        Peer Address:Port   Process   
LISTEN   0         128                0.0.0.0:10050            0.0.0.0:*                
LISTEN   0         128                0.0.0.0:22               0.0.0.0:*                            
LISTEN   0         128                   [::]:22                   [::]:*   

  • 配置服务端 添加主机


Windows-agent端安装zabbix-agent
  • 下载windows版的zabbix_agentd

1.解压至e:windows_zabbix_agentd

2.修改 e:windows_zabbix_agentdconfzabbix_agentd.conf 文件内容 
//修改的三行内容如下:
Server=192.168.177.136
ServerActive=192.168.177.136
Hostname=27149

3.win+R 使用命令提示符启动服务
e:windows_zabbix_agentdbinzabbix_agentd.exe -c e:windows_zabbix_agentdconfzabbix_agentd.conf -i 
e:windows_zabbix_agentdbinzabbix_agentd.exe -c e:windows_zabbix_agentdconfzabbix_agentd.conf -s

  • 验证启动

  • 关闭防火墙

  • 配置服务端 添加主机


2.2 添加监控项的配置 使用模板添加-Linux agent端

创建自定义模板



手动添加,自行配置


2.3 添加触发器


2.4 添加媒介
  • 以email为例子,一般需要去指定的邮箱开启SMTP服务,并获取特征码
[root@node1 ~]# yum -y install postfix
[root@node1 ~]# systemctl enable --now postfix.service 
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
[root@node1 ~]# ss -anlt
State    Recv-Q    Send-Q       Local Address:Port        Peer Address:Port   Process   
LISTEN   0         128                0.0.0.0:22               0.0.0.0:*                
LISTEN   0         100              127.0.0.1:25               0.0.0.0:*                
LISTEN   0         128                0.0.0.0:10050            0.0.0.0:*                
LISTEN   0         128                0.0.0.0:10051            0.0.0.0:*                
LISTEN   0         128              127.0.0.1:9000             0.0.0.0:*                
LISTEN   0         128                   [::]:22                  [::]:*                
LISTEN   0         100                  [::1]:25                  [::]:*                
LISTEN   0         80                       *:3306                   *:*                
LISTEN   0         128                      *:80                     *:*   




2.5 配置用户要使用的媒介



2.6 添加动作




2.7 手动触发 进行验证
[root@node1 ~]# echo 123456  > /tmp/passwd 
[root@node1 ~]# ll /tmp/passwd
-rw-r--r-- 1 root root 7 Jul  8 02:23 /tmp/passwd

更新内容后首页会显示warning
[root@node1 ~]# echo rookie >> /tmp/passwd 
[root@node1 ~]# echo rookie >> /tmp/passwd 
[root@node1 ~]# echo rookie >> /tmp/passwd

3. 自定义监控 自定义监控进程
实验环境OS
server端Linux
agent端Linux
# 以agent端的httpd服务进程为例 先安装服务 
[root@zabbix-agent ~]# yum -y install  httpd
[root@zabbix-agent ~]# systemctl  start httpd
[root@zabbix-agent ~]# ss -antl 
State    Recv-Q    Send-Q       Local Address:Port        Peer Address:Port   Process   
LISTEN   0         128                0.0.0.0:22               0.0.0.0:*                
LISTEN   0         128                0.0.0.0:10050            0.0.0.0:*                
LISTEN   0         128                      *:80                     *:*                
LISTEN   0         128                   [::]:22                  [::]:* 
[root@zabbix-agent ~]# ps -ef|grep -v grep|grep -c httpd
5

#改客户端的zabbix 配置文件 开启自定义监控 并写入监控进程的脚本                           
[root@zabbix-agent ~]# cd /usr/local/etc/
[root@zabbix-agent etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@zabbix-agent etc]# vim zabbix_agentd.conf
UnsafeUserParameters=1 //取消注释此行 默认值=0 这一步是为了打开自定义监控 

UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1

#脚本判定httpd服务进程数是否为0,如果为0 则有问题输出'1',没问题输出'0'
[root@zabbix-agent etc]# mkdir /scripts
[root@zabbix-agent etc]# cd /scripts/
[root@zabbix-agent scripts]# vim check_process.sh

count=$(ps -ef|grep -Ev "grep|$0"|grep -c $1)
if [ $count -eq 0 ];then
    echo '1' 
else
    echo '0'    
fi
[root@zabbix-agent scripts]# chmod +x check_process.sh
[root@zabbix-agent scripts]# ./check_process.sh httpd 

#重启zabbix客户端 并 停掉httpd服务
[root@zabbix-agent scripts]# pkill  zabbix_agentd 
[root@zabbix-agent scripts]# zabbix_agentd
[root@zabbix-agent scripts]# systemctl  stop  httpd
  • 配置网页 zabbix 添加item 、trigger 并测试报警页面


自定义监控日志
# 以agent端的httpd日志为例,用log.py脚本监控日志文件的内容 
[root@zabbix-agent scripts]# rpm -qa |grep python
[root@zabbix-agent ~]# cd /scripts/
[root@zabbix-agent scripts]# ls
check_process.sh
[root@zabbix-agent scripts]# vim log.py

#!/usr/bin/env python3
import sys
import re

def prePos(seekfile):
    global curpos
    try:
        cf = open(seekfile)
    except IOError:
        curpos = 0
        return curpos
    except FileNotFoundError:
        curpos = 0
        return curpos
    else:
        try:
            curpos = int(cf.readline().strip())
        except ValueError:
            curpos = 0
            cf.close()
            return curpos
        cf.close()
    return curpos

def lastPos(filename):
    with open(filename) as lfile:
        if lfile.readline():
            lfile.seek(0,2)
        else:
            return 0
        lastPos = lfile.tell()
    return lastPos

def getSeekFile():
    try:
        seekfile = sys.argv[2]
    except IndexError:
        seekfile = '/tmp/logseek'
    return seekfile

def getKey():
    try:
        tagKey = str(sys.argv[3])
    except IndexError:
        tagKey = 'Error'
    return tagKey

def getResult(filename,seekfile,tagkey):
    destPos = prePos(seekfile)
    curPos = lastPos(filename)

    if curPos < destPos:
        curpos = 0

    try:
        f = open(filename)
    except IOError:
        print('Could not open file: %s' % filename)
    except FileNotFoundError:
        print('Could not open file: %s' % filename)
    else:
        f.seek(destPos)

        while curPos != 0 and f.tell() < curPos:
            rresult = f.readline().strip()
            global result
            if re.search(tagkey, rresult):
                result = 1
                break
            else:
                result = 0

        with open(seekfile,'w') as sf:
            sf.write(str(curPos))
    finally:
        f.close()
    return result

if __name__ == "__main__":
    result = 0
    curpos = 0
    tagkey = getKey()
    seekfile = getSeekFile()
    result = getResult(sys.argv[1],seekfile,tagkey)
    print(result)
[root@zabbix-agent scripts]# chmod +x log.py

# 找到httpd日志文件所在目录 
[root@zabbix-agent scripts]# ls /var/log/ 
anaconda           dnf.log              messages           vmware-network.1.log
audit              dnf.rpm.log          messages-20220708  vmware-network.2.log
boot.log           firewalld            messages-20220710  vmware-network.3.log
boot.log-20220616  hawkey.log           private            vmware-network.4.log
boot.log-20220708  hawkey.log-20220708  secure             vmware-network.5.log
boot.log-20220710  hawkey.log-20220710  secure-20220708    vmware-network.log
btmp               httpd                secure-20220710    vmware-vgauthsvc.log.0
btmp-20220708      kdump.log            spooler            vmware-vmsvc-root.log
cron               lastlog              spooler-20220708   vmware-vmtoolsd-root.log
cron-20220708      maillog              spooler-20220710   wtmp
cron-20220710      maillog-20220708     sssd
dnf.librepo.log    maillog-20220710     tuned
[root@zabbix-agent scripts]# cd /var/log/httpd/
[root@zabbix-agent httpd]# ls
access_log  error_log

# 给zabbix用户 关于httpd目录 的读和执行权限
[root@zabbix-agent log]# pwd
/var/log
[root@zabbix-agent log]# ll -d httpd
drwx------. 2 root root 41 7月  10 02:39 httpd
[root@zabbix-agent log]# setfacl -m u:zabbix:rx /var/log/httpd/
[root@zabbix-agent log]# getfacl /var/log/httpd/
getfacl: Removing leading '/' from absolute path names
# file: var/log/httpd/
# owner: root
# group: root
user::rwx
user:zabbix:r-x
group::---
mask::r-x
other::---

#改一下agent配置文件把监控日志的命令放进去 
[root@zabbix-agent scripts]# vim /usr/local/etc/zabbix_agentd.conf

UserParameter=check_logs[*],/usr/bin/python3 /scripts/log.py $1 $2 $3 //添加此行

#测试 并尝试触发
[root@zabbix-agent scripts]# python3 log.py /var/log/httpd/error_log 
0
[root@zabbix-agent scripts]# echo Error >> /var/log/httpd/error_log
[root@zabbix-agent scripts]# python3 log.py /var/log/httpd/error_log 
1


#避免网页zabbix用户创建文件失败 ,需要先删除root用户的/tmp/logseek 然后重启 
[root@zabbix-agent scripts]# ll /tmp/logseek 
-rw-r--r-- 1 root root 4 7月  10 12:29 /tmp/logseek
[root@zabbix-agent scripts]# rm -f /tmp/logseek
[root@zabbix-agent scripts]# pkill zabbix_agentd 
[root@zabbix-agent scripts]# zabbix_agentd 
  • 配置网页 zabbix 添加item 、trigger 并测试报警页面


自定义监控mysql主从状态

自定义监控mysql主从延迟

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号