美文网首页linux tools
zabbix的使用(一)

zabbix的使用(一)

作者: 早_wsm | 来源:发表于2019-07-29 20:41 被阅读19次

    1.监控一台服务器主机

    在安装完zabbix进入页面后发现存在一个报警,是因为我没有安装zabbix-agent

    image.png
    • 先安装zabbix-agent完成自己对自己的监控
      yum install -y zabbix-agent
      systemctl start zabbix-agent 并启动
    • 创建一台zabbix-web服务器做被监控对象,ip为10.0.0.7,简单优化后
      安装zabbix-agent

    在这里不配置zabbix依赖直接在清华源下在rpm包然后安装

    rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm
    
    • 修改配置
    vim /etc/zabbix/zabbix_agentd.conf
    在这里只修改server地址,server=10.0.0.62(我的zabbix-server地址)
    

    systemctl start zabbix-agent 修改后启动agent
    systemctl enable zabbix-agent 设置为开机自启动

    • 在zabbix的web界面上进行配置
    image.png

    在创建主机后主要填写带*号区域


    image.png

    然后再指定一个模板


    image.png
    在这里我使用linux模板
    image.png
    等待被监控,也可以直接重启systemctl restart zabbix-server.service 服务加快监控
    image.png

    此处已显示被监控

    2.自定义监控项

    2.1监控硬盘的tps值

    在监测前先进行取值,在服务器上发现没有iostat命令,先安装sysstat

    yum install sysstat -y
    
    • 先测试使用命令可以取出tps值
    [root@zabbix-server ~]# iostat |awk '/^sda/{print $2}'
    2.12
    
    • 修改一下配置文件
    [root@zabbix-web ~]# vim /etc/zabbix/zabbix_agentd.conf
    UserParameter=tps,iostat|awk '/^sda/{print $2}'  #UserParameter用户自定义的监控参数
    

    systemctl restart zabbix-agent 再重启一下服务

    在命令行内使用zabbix_agentd -p可以打印所有监控项,在末尾可以看到我们新添加的监控项内容

    mysql.size                                    [t|bash: mysql: command not found]
    mysql.ping                                    [t|sh: mysqladmin: command not found
    0]
    mysql.version                                 [t|sh: mysql: command not found]
    tps                                           [t|2.52]
    

    在监测的最新数据下可以查看我们监控的主机的各项数据


    image.png
    • 在web界面配置监控项
    image.png

    点击监控项进入配置界面再点击创建监控项,这里以创建每秒进程io次数为例


    image.png

    最后点击“添加”便完成了一个自定义监控项的创建

    2.2监控tcp的11种状态的数量

    • 先考虑如何取出tcp11种状态值
    [root@zabbix-server ~]# netstat -antup|grep -c ESTABLISHED #因为要取11种状态,所以这里可以设置为变量
    2
    
    • 修改配置文件

    修改配置文件/etc/zabbix/zabbix_agentd.d,在文件内存在Include=/etc/zabbix/zabbix_agentd.d/*.conf,所以不必把所有监测文件都写在/etc/zabbix/zabbix_agentd.conf内。

    [root@zabbix-web ~]# cd /etc/zabbix/zabbix_agentd.d/
    [root@zabbix-web zabbix_agentd.d]# vim tcp.conf
    
    UserParameter=tcp_state[*],netstat -antup|grep -c $1  #写入传参监控命令
    

    systemctl restart zabbix-agent 再重启一下服务
    在这里我们需要使用zabbix_get测试zabbix是否能获取到数据,但发现没有安装,所以先安装一下,还是去清华源直接安装

    [root@zabbix-server ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.4-1.el7.x86_64.rpm
    Retrieving https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.4-1.el7.x86_64.rpm
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:zabbix-get-4.0.4-1.el7           ################################# [100%]
    

    先传入一个状态参数测试一下

    [root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[ESTABLISHED]
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    2   #这里出现一堆提示(说什么不是所有进程都能被识别,你只有是root用户才能看到所有。大概是这个意思)
    

    注意:因为在监控端是zabbix普通用户去执行netstat -antup这个命令,普通用户存在权限不足的情况,无法取到全部信息,甚至会报错会出现如下情况:

    [root@zabbix-web zabbix_agentd.d]# useradd gcy
    [root@zabbix-web zabbix_agentd.d]# su - gcy
    [gcy@zabbix-web ~]$ netstat -antup
    (No info could be read for "-p": geteuid()=1000 but you should be root.)
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      -                   
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
    tcp        0      0 10.0.0.7:10050          10.0.0.62:36544         TIME_WAIT   -            
    

    这里我们为netstat修改一下权限

    [root@zabbix-web zabbix_agentd.d]# which netstat 
    /bin/netstat
    [root@zabbix-web zabbix_agentd.d]# chmod u+s /bin/netstat
    

    然后再使用zabbix_get检验,发现可以正常取值了

    [root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[ESTABLISHED]
    2
    [root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[SYN_SENT]
    0
    [root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[SYN_RECV]
    0
    [root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[CLOSE]
    0
    [root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[LISTEN]
    6
    
    • 在web界面配置监控项
      选择所要监控的主机,点击监控项进入并创建监控项
    image.png

    完成添加一个监控项


    image.png

    其他10种状态监控可以使用克隆监控项修改,这里不在演示

    小提示:在出现不支持的项目并找到原因修改后,需要刷新不支持的项目默认是十分钟,可以在下面的界面中修改时间,加速刷新

    image.png

    总结:自定义监控项,主要分三步:
    1.编写监控项的key的表达式,并测试
    2.写入配置文件UserParameter=
    3.在web页面上进行添加监控项

    未完

    相关文章

      网友评论

        本文标题:zabbix的使用(一)

        本文链接:https://www.haomeiwen.com/subject/lavirctx.html