Zabbix监控使用总结

Posted by jintang on 2017-09-10

Zabbix架构体系

  1. Zabbix Server
  2. Zabbix Agent
  3. 数据库(独立)

安装

参考:https://www.zabbix.com/download?zabbix=3.0&os_distribution=centos&os_version=7&db=mysql

安装源:

1
2
# rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
# yum clean all

server需要安装zabbix-server, frontend, agent

1
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

数据库需要事先安装好!

创建账号:

1
2
3
4
5
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;

导入基础数据

1
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

修改zabbix-server连接数据库

1
2
# vim /etc/zabbix/zabbix_server.conf
# DBPassword=password

修改 PHP配置

1
2
# vim /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Asia/Shanghai

启动

1
2
# systemctl start zabbix-server zabbix-agent httpd
# systemctl enable zaabix-server zabbix-agent httpd

安装zabbix-web

浏览器打开:

http://xxx/zabbix

按照提示配置完即可

注意问题:

  1. 目录写权限的问题
  2. 连接数据库信息
  3. web的配置文件路径:/etc/zabbix/web/zabbix.conf.php

配置文件路径

1
2
3
4
5
6
7
8
# server
/etc/zabbix/zabbix_server.conf

# agent
/etc/zabbix/zabbix_agentd.conf

# web
/etc/zabbix/web/zabbix.conf.php

如何监控一台主机

假设场景:

1
2
server: 192.168.254.100 (zabbix server)
host: 192.168.254.101 (需要监控的主机)

host: 192.168.254.101 需要安装zabbix-agent客户端

1
2
3
4
# rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
# yum install -y zabbix-agent
# systemctl start zabbox-agent
# netstat -lntup | grep 10050 (检查服务)

配置host的agent客户端允许server连接

1
2
3
# vim /etc/zabbix/zabbix-agentd.conf
# 找到Server,修改成Server=192.168.254.100
# systemctl restart zabbix-agent

登录zabbix-web添加host主机(登录密码默认:Admin zabbix)

操作路径:

1
配置 > 主机 > 添加主机

自定义监控项

自定义监控:

  1. 监控系统中的对象
  2. 如何增加监控项

假设需要监控iostat:

1
2
3
4
5
6
7
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.08 0.00 0.45 0.01 0.00 99.46

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.32 9.86 11.02 291418 325959
dm-0 0.30 8.72 10.95 257966 323891
dm-1 0.00 0.08 0.00 2228 0

其中 sda行的tps的列是我们需要监控的

如何获取:

1
iostat | awk '/^sda/ {print $2}'

给agent客户端添加配置(192.168.254.104)

1
2
3
4
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=<key>,<shell command>
# See 'zabbix_agentd' directory for examples.

额外的配置在/etc/zabbix/zabbix_agentd.d/,添加一个conf配置文件

1
2
# vim /etc/zabbix/zabbix_agentd.d/iotps.conf
# UserParameter=iotps,iostat | awk '/^sda/ {print $2}'

需要按装具体的io命令包: sysstat

1
# yum install -y sysstat

重启一下agent客户端

1
# systemctl restart zabbix-agent

检查一下是否添加成功

1
# zabbix-agent -p | grep iotps

在server端也检查一下

需要安装zabbix-get命令

1
# yum install -y zabbox-get

检查iotps是否已经获取到了:

1
# zabbix-get -s 192.168.254.104 -p10050 -k iotps

在web中添加监控项,操作路径

1
2
1. 配置 > 主机 > 192.168.254.104 > 监控项 > 创建监控项 # 重点是名称、键值、主机接口、信息类型和单位
2. 监测 > 最新数据 > 搜索主机和名称

总结

添加应用监控基本套路:

  1. 先看文档中有没有对应的脚本和xml模板(主要看看别人是怎么监控一个应用的)
  2. 在服务端导入模板,查看对应的监控项key
  3. 测试脚本是否能取到对应的值,并存放在/etc/zabbix/scripts目录下,一定要给执行权限
  4. 编写/etc/zabbix/zabbix-agentd.d/配置文件,添加监控项定义参数
  5. 最后重启zabbix-agent
  6. server校验对应的值是否取到: zabbix_get -s 192.168.254.104 -k xxx
  7. 去web做微调