zabbix官网
zabbix中文手册
监控工具mrtg,cacti,rrdtool,nagios,zabbix比较和安装
数据采集
可用性和性能检查;
支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
您可以参考后端数据库定义非常灵活的告警阈值,即触发器
高度可配置化的告警
可以根据递增计划、接收者、媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有用;
自动操作包含远程执行命令。
实时图形
使用内置图形功能可以将监控项实时绘制成图形。
Web 监控功能
Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
丰富的可视化选项
可以组合多个监控项到单个视图中,创建自定义图表;
网络拓扑图;
以仪表盘样式展示自定义聚合图形和幻灯片演示;
报表;
监控资源的更高层次展示视图(业务视图)。
历史数据存储
存储在数据库中的数据;
历史配置;
内置数据管理机制(housekeeping)。
配置简单
将被监控设备添加为主机;
主机一旦添加到数据库中,就会采集数据用于监控;
将模板用于监控设备。
使用模板
模板中分组检查;
模板可以关联模板,继承已关联模板的属性。
网络发现
自动发现网络设备;
Zabbix Agent 发现设备后自动注册;
自动发现文件系统、网络接口和 SNMP OIDs 值。
快捷的 Web 界面
基于 PHP 的 Web 前端;
可以从任何地方访问;
您可以定制自己的操作方式;
您可以通过审计日志来查看你的操作。
Zabbix API
Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
权限管理系统
安全的用户身份验证;
指定的用户只能查看指定的权限范围内的视图。
功能强大且易于扩展的 Zabbix Agent
部署于被监控对象上;
支持 Linux 和 Windows ;
二进制守护进程
为了更好的性能和更少的内存占用,采用 C 语言编写;
便于移植。
适应更复杂的环境
使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。
Zabbix 由几个主要的功能组件组成,其功能介绍如下所示。
Server
数据库
Web 界面
Proxy
Agent
数据流
zabbix常用术语
可以用官网yum源,但使用阿里云镜像网站,速度更快!
获取官方yum源方式
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
本实验选择阿里源
vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0
server1:172.25.2.1
yum install -y zabbix-server-mysql
yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by '密码';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> quit;
cd /usr/share/doc/zabbix-server-mysql-4.0.31/
zcat create.sql.gz | mysql -uzabbix -pwestos zabbix
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost#默认
DBName=zabbix#默认
DBUser=zabbix#默认
DBPassword=westos
systemctl enable --now zabbix-server
ps ax
cat /var/log/zabbix/zabbix_server.log
无erroryum install -y zabbix-agent
systemctl enable --now zabbix-agent
netstat -antlupe | grep zabbix
:查看端口
yum list php
:查看php版本为 5.4.16-46.el7yum install -y zabbix-web-mysql
yum install -y php-mbstring-5.4.16-46.el7.x86_64.rpm
(阿里云可下载)yum install -y php-bcmath-5.4.16-46.el7.x86_64.rpm
(阿里云可下载)vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
cd /usr/share/zabbix/assets/fonts/
:下载 simkai.ttf 到此目录下chmod 777 simkai.ttf
vim /usr/share/zabbix/include/defines.inc.php
执行:%s/graphfont/simkai/g
systemctl enable --now httpd
server2:172.25.2.2
server3:172.25.2.3
vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
:编辑主配置文件Server=172.25.2.1#监控系统server端的IP
ServerActive=172.25.2.1#监控系统server端的IP
Hostname=server2或server3 #agent端 本机的hostname
vim /etc/hosts
:配置解析
172.25.2.1 server1
172.25.2.2 server2
172.25.2.3 server3
官方文档配置相关内容
systemctl restart zabbix-agent.service
官方操作指导
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。广泛用于:
Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两件事:
结构
get, create, update 和 delete
,分别是检索,创建,更新和删除数据
,但是某些API提供一套完全不同的一组方法。server1:172.25.2.1
请求对象属性:
curl -s -XPOST http://172.25.2.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d
'{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}' | python -m json.tool
响应对象属性:
vim get_zabbix_api.sh
curl -s -XPOST http://172.25.2.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 1,
"auth": "bca627f5f2aa8e50d0ee8ccbfcba5f13"
}' | python -m json.tool
vim del_zabbix_api.sh
curl -s -XPOST http://172.25.2.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10273"
],
"id": 1,
"auth": "bca627f5f2aa8e50d0ee8ccbfcba5f13"
}' | python -m json.tool
vim create_zabbix_api.sh
curl -s -XPOST http://172.25.2.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server3",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.2.3",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
],
"inventory_mode": 0,
"inventory": {
"macaddress_a": "01234",
"macaddress_b": "56768"
}
},
"auth": "bca627f5f2aa8e50d0ee8ccbfcba5f13",
"id": 1
}' | python -m json.tool
server2:172.25.2.2
agent端配置httpd
yum install -y httpd
systemctl enable --now httpd
echo server2 > /var/www/html/index.html
server3:172.25.2.3
tar zxf nginx-1.18.0.tar.gz
cd nginx-1.18.0
yum install -y gcc pcre-devel openssl-devel
:安装gcc、pcre-devel、openssl-develvim auto/cc/gcc
#CFLAGS="$CFLAGS -g"
#注释此行(127行),关闭debug,可以使安装后的二进制文件更小
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
configure脚本,指定安装路径等参数
make && make install
创建软连接
cd /usr/local/nginx/sbin/
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
配置文件
vim /usr/local/nginx/conf/nginx.conf
location /status {
stub_status on;
access_log off;#不记录日志
allow 127.0.0.1;
deny all;
}
nginx -t
nginx
Active connections 并发连接数
accepts 允许连接次数
handled 建立tcp三次握手次数
requests 处理请求次数
ab -c10 -n 1000 http://172.25.2.3/index.html
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk 'NR==3{print $1}'
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk 'NR==3{print $2}'
UserParameter=nginx.request,curl -s http://127.0.0.1/status | awk 'NR==3{print $3}'
systemctl restart zabbix-agent.service
:重启服务
yum install -y zabbix-get
:server1安装zabbix-getzabbix_get -s 192.168.17.3 -p 10050 -k "nginx.active"
zabbix_get -s 172.25.2.3 -p 10050 -k "nginx.accept"
zabbix_get -s 172.25.2.3 -p 10050 -k "nginx.handled"
zabbix_get -s 172.25.2.3 -p 10050 -k "nginx.request"