Zabbix 监控
zabbix server端及agent端 编译安装 \\ 版本 zabbix4.2.7 php5.6.16 nginx1.17 mysql5.6.47
# mysql -uroot -p \\ 首先安装LNMP 此为数据库与zabbix同一主机上
create database zabbix character set utf8; \\ 创建zabbix 表
grant all privileges on zabbix.* to zabbix@'%' identified by '123456'; \\ 创建用户 及授权
# yum install epel*
# yum install unixODBC-devel mysql-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel \\ libevent-devel base源
# mv /etc/my.cnf /etc/my.cnf.bak \\ 安装mysql-devel会在/etc/下生成my.cnf 会影响mysql启动 需要删除
# tar zxf zabbix-4.2.7.tar.gz
# cd zabbix-4.2.7
# ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc
# make -j4
# make install
# groupadd zabbix
# useradd -g zabbix zabbix -s /sbin/nologin
# cp -r /data/soft/zabbix-4.2.7/frontends/php/ /data/www/zabbix \\ 复制zabbix 网页文件
# cd /data/soft/zabbix-4.2.7/database/mysql
# mysql -uzabbix -p
use zabbix
source schema.sql;
source images.sql;
source data.sql;
# mkdir /var/lib/mysql
# ln -s /data/mysqldb/run/mysql.sock /var/lib/mysql/mysql.sock
# vim /usr/local/zabbix/etc/zabbix_server.conf
DBUser=zabbix \\ 需要改 数据库用户名
DBPassword=123456 \\ 需要改 数据库密码
DBSocket=/var/lib/mysql/mysql.sock \\ 此项可不修改...连接mysql时基于本地数据需要改 可以到mysql配置文件中查看
\\ socket文件位置 数据库不在本地不需要修改 最好使用此目录避免出现更多报错
# vim /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1 \\ 解决 php PHP option "always_populate_raw_post_data"
# vim /usr/local/nginx/nginx.conf
location ~ \.php$ {
root /data/www/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#include fastcgi_params; \\ 注释掉
include fastcgi.conf; \\ ... ... 修改此项目 否则zabbix网页会提示 没有权限访问
}
# chmod 757 /data/www/zabbix/conf \\ 给写权限
# cd /data/www/zabbix/assets/fonts \\ 字体目录
# rz msyhbd.ttf \\ 可以拷贝windos字体到此目录下面
# vim /data/www/zabbix/include/defines.inc.php \\ 修改字体配置文件 解决图片文字乱码问题
define('ZBX_GRAPH_FONT_NAME', 'msyhbd'); \\ 改变中文字体
\\ zabbix 解决 PHP LDAP Warning , 亦可以解决其他php未编译选项如 php bcmath fail
# cp -frp /usr/lib64/libldap* /usr/lib/ \\ 复制必要文件 否则会报错
# cd /data/soft/php-5.6.16/ext/ldap \\ 解决 PHP bcmath Fail
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
# extension=/usr/local/php/lib/php/extensi+ons/no-debug-non-zts-20131226/
# systemctl restart php-fpm
# vim /etc/init.d/zabbix_server \\ 创建启动文件 亦可以导入
#!/bin/sh
#chkconfig: 2345 80 05
#description: zabbix
case $1 in
start)
#/zabbix/start_zabbix.sh
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
sleep 3
ps -ef |grep zabbix|grep -v grep |grep -v start
process=`ps -ef |grep zabbix|grep -v grep |grep -v start|wc -l`
echo zabbix process $process
;;
stop)
#/zabbix/stop_zabbix.sh
ps -ef |grep zabbix|grep -v grep |awk '{print $2}' |xargs kill -9
ps -ef |grep zabbix|grep -v grep
;;
restart)
#/zabbix/stop_zabbix.sh
#/zabbix/start_zabbix.sh
;;
status)
ps -ef |grep zabbix|grep -v grep |grep -v status
process=`ps -ef |grep zabbix|grep -v grep |grep -v status |wc -l`
echo zabbix process $process
;;
*)
;;
esac
# chmod +x /etc/init.d/zabbix_server
# chkconfig --add zabbix_server
# chkconfig zabbix_server on
# systemctl restart zabbix_server
# ss -tnl \\ 10051 被监听
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1 \\ 允许哪些ip来获取信息 server端可以有多个 授权ip地址
ServerActive=127.0.0.1 \\ 主动发起请求同时个服务器
Hostname=Zabbix server \\ 最好dns解析后的主机名
EnableRemoteCommands=1 \\ 允许远程命令
LogRemoteCommands=1 \\ 远程命令的日志
# cd /etc/init.d
# rz zabbix_agentd \\ 复制 agent 启动文件
# vim /etc/init.d/zabbix_agentd \\ 修改此配置文件 此配置文件为纯agent准备的 需要修改目录
BASEDIR=/usr/local/zabbix
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
# systemctl restart zabbix_agentd
# ss -tnl \\ 10050 被监听 http://192.168.10.10/zabbix admin zabbix
注: 编译php的时候 加入 --with-ldap 选项 在make的时候会报错 \\ 解决zabbix PHP LDAP Warning
collect2: error: ld returned 1 exit status
❶ 可以 去掉 --with-ldap 后用单独编译解决
❷ # vim /data/soft/php-5.6.16/MakeFile \\ 需要make一次报错 之后才有此文件 然后在执行make
找到 开头是 'EXTRA_LIBS' 这一行 在结尾加上 '-llber' 然后执行 make && make install
❸ 官网 源码包地址: https://www.zabbix.com/cn/download_sources
zabbix-agent 编译安装
# groupadd zabbix
# useradd -g zabbix zabbix -s /sbin/nologin
# yum install gcc pcre-devel
# tar zxf zabbix-4.2.7.tar.gz
# cd zabbix-4.2.7
# ./configure --prefix=/usr/local/zabbix-agent --enable-agent
# make
# make install
# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf
Server=192.168.10.11
ServerActive=192.168.10.11
Hostname=10.15bianyi
UnsafeUserParameters=1 \\ 是否启用用户自定义监控脚本,1启用,0不启用
Include=/usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/*.conf \\ 开启 自定本脚本目录
# vim /etc/init.d/zabbix_agentd \\ 创建配置文件 亦可导入
#!/bin/bash
#
# chkconfig: 345 95 95
# desctription: Zabbix Agentd
#
# @name: zabbix_agentd
# @author: Alexander Hagenah <hagenah@topconcepts.com>
# @created: 18.04.2006
#
# Modified for Zabbix 2.0.0
# May 2012, Zabbix SIA
#
# Source function library.
. /etc/init.d/functions
# Variables
# Edit these to match your system settings
# Zabbix-Directory
BASEDIR=/usr/local/zabbix-agent
# Binary File
BINARY_NAME=zabbix_agentd
# Full Binary File Call
FULLPATH=$BASEDIR/sbin/$BINARY_NAME
# PID file
PIDFILE=/tmp/$BINARY_NAME.pid
# Establish args
ERROR=0
STOPPING=0
#
# No need to edit the things below
#
# application checking status
if [ -f $PIDFILE ] && [ -s $PIDFILE ]
then
PID=`cat $PIDFILE`
if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null && [ $BINARY_NAME == `ps -e | grep $PID | awk '{print $4}'` ]
then
STATUS="$BINARY_NAME (pid `pidof $APP`) running.."
RUNNING=1
else
rm -f $PIDFILE
STATUS="$BINARY_NAME (pid file existed ($PID) and now removed) not running.."
RUNNING=0
fi
else
if [ `ps -e | grep $BINARY_NAME | head -1 | awk '{ print $1 }'` ]
then
STATUS="$BINARY_NAME (pid `pidof $APP`, but no pid file) running.."
else
STATUS="$BINARY_NAME (no pid file) not running"
fi
RUNNING=0
fi
# functions
start() {
if [ $RUNNING -eq 1 ]
then
echo "$0 $ARG: $BINARY_NAME (pid $PID) already running"
else
action $"Starting $BINARY_NAME: " $FULLPATH
touch /var/lock/subsys/$BINARY_NAME
fi
}
stop() {
echo -n $"Shutting down $BINARY_NAME: "
killproc $BINARY_NAME
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$BINARY_NAME
RUNNING=0
}
# logic
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $BINARY_NAME
;;
restart)
stop
sleep 10
start
;;
help|*)
echo $"Usage: $0 {start|stop|status|restart|help}"
cat <<EOF
start - start $BINARY_NAME
stop - stop $BINARY_NAME
status - show current status of $BINARY_NAME
restart - restart $BINARY_NAME if running by sending a SIGHUP or start if not running
help - this screen
EOF
exit 1
;;
esac
exit 0
# chmod +x /etc/init.d/zabbix_agentd
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
# systemctl restart zabbix_agentd
# ss -tnl \\ 10051 被监控
添加监控项目
配置 --> 主机群组 --> 创建主机群组 组1
主机 --> 创建主机
主机名称 192.168.10.11
可见的名称 测试服务器01
群组 组1
agent代理程序的接口 192.168.10.11
模板 --> 选择
Template App Nginx Status Connections \\ nginx 监控
Template Tcp_connect Status \\ TCP 监控
Template DB MySQL \\ mysql 系统自带 只添加 脚本及配置文件即可
Redis Discovery \\ redis 监控
Template ports Discovery \\ 端口 监控
Template OS Linux \\ linux 默认
SA_Linux \\ 不知啥玩意
zabbix 配置文件 调优 \\ 会解决很多zabbix 服务器的警报 如 75% busy 等
# vim /etc/zabbix/zabbix_server.conf
CacheSize=·256M \\ 缓存大小, 单位字节. 用于存储主机、监控项、触发器数据的共享内存大小.服务器内存有4G
CacheUpdateFrequency=180 \\ Zabbix 缓存更新频率, 单位秒. 默认60
HistoryCacheSize=64M \\ 历史缓存数据大小, 单位字节. 默认16M
HistoryIndexCacheSize=10M \\ 历史索引缓存大小, 单位字节.用于索引历史缓存中历史数据的共享内存大小. 默认4M
StartPollersUnreachable=80 \\ 不可达主机 (包括IPMI 和 Java)的轮询器实例数量。 默认1
StartPollers=100 \\ 轮询器实例数量。根据具体情况设置大小 解决Zabbix alerter processes more than 75% busy
StartDiscoverers=10 \\ 自动发现子进程实例个数 默认1
StartTrappers=15 \\ trappers进程实例数量 至少要运行一个trapper进程来显示前端的服务器可用性和视图队列。
Timeout=30 \\ agent, SNMP 设备或外部检查的超时时长(单位秒)
TrendCacheSize=128M \\ 趋势缓存的大小,单位字节 用于存储趋势数据的共享内存大小。
ValueCacheSize=128M \\ 历史数据缓存大小, 单位bytes.缓存item历史数据请求的共享内存大小. 0即禁止缓存 (不建议).
添加 Nginx 监控到 Zabbix
# mkdir -p /usr/local/zabbix-agent/scripts
# cd /usr/local/zabbix-agent/scripts/ \\ 复制 nginx_status.sh 自定义监控脚本
# vim nginx_status.sh \\ 创建 nginx监控脚本
#!/bin/bash
# Script to fetch nginx statuses for tribily monitoring systems
# Set Variables
#HOST=`/sbin/ifconfig eth1 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'`
HOST=`curl -s ifconfig.me`
PORT="81"
# Functions to return nginx stats
function alive {
alive=`/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| grep 'Active' | awk '{print $NF}'`
if [ -z ${alive} ];
then
echo 0
else
echo 1
fi
}
function active {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2> /dev/null| awk NR==3 | awk '{print $3}'
}
# Run the requested function
$1
# chmod +x nginx_status.sh
# cd /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/
# vim nginx_status.conf \\ 创建nginx监控 配置文件
UserParameter=nginx.alive,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh alive
UserParameter=nginx.connections.active,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh active
UserParameter=nginx.accepts,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh accepts
UserParameter=nginx.handled,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh handled
UserParameter=nginx.requests,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh requests
UserParameter=nginx.connections.reading,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh reading
UserParameter=nginx.connections.writing,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh writing
UserParameter=nginx.connections.waiting,/bin/sh /usr/local/zabbix-agent/scripts/nginx_status.sh waiting
# systemctl restart zabbix_agentd.service \\ 键值为 nginx.alive nginx.accepts等
# /usr/local/zabbix-agent/scripts/nginx_status.sh active \\ 本机测试 有返回数值
# /usr/local/zabbix/bin/zabbix_get -s 192.168.10.11 -k nginx.alive \\ 在服务器端测试 有返回数值
为 Nginx 创建模板 \\ web端 为自定义监控 nginx 及 tcp 创建 监控项目
配置 --> 模板 --> 创建模板 \\ 为 nginx 创建 模板
模板名称 Template App Nginx Status Connections
群组 Templates
编辑模板
应用集 --> 创建应用集
名称 nginx_status
监控项 --> 创建监控项
名称 nginx.alive
类型 Zabbix 客户端 \\ 键值 nginx.alive nginx.connections.active nginx.accepts
键值 nginx.alive \\ nginx.handled nginx.requests nginx.connections.reading
应用集 nginx_status \\ nginx.connections.writing nginx.connections.waiting
触发器 --> 创建触发器
名称 Nginx server status \\ 监控 nginx 运行状态
严重性 严重
表达式 {Template App Nginx Status Connections:nginx.alive.last()}=0
描述 nginx服务器状态
图形 --> 创建图形
名称 nginx_status
监控项 --> 添加
注: 需要nginx开启status页面 下面为配置文件 直接导入到nginx配置文件目录即可
# vim agent_nginx.conf
server {
listen 81 default;
server_name _;
#return 500;
location /nginx_status {
stub_status on;
access_log off;
allow 47.91.219.10;
allow 47.91.219.64;
allow 47.91.219.0/24;
deny all;
}
}
添加 Tcp 监控到 Zabbix
# mkdir -p /usr/local/zabbix-agent/tmp \\ 创建tcp数据存储目录
# chown -R zabbix.zabbix /usr/local/zabbix-agent/tmp \\ 给权限 需要写入数据
# vim /usr/local/zabbix-agent/scripts/tcp_status.sh \\ 创建监控脚本文件 亦可导入
#!/bin/bash
#tcp_status
[ $# -ne 1 ] && echo "Usage:CLOSE-WAIT|CLOSED|CLOSING|ESTAB|FIN-WAIT-1|FIN-WAIT-2|LAST-ACK|LISTEN|SYN-RECV SYN-SENT|TIME-WAIT" && exit 1
ss_file=/usr/local/zabbix-agent/tmp/ss.txt
tcp_status_fun(){
tcp_stat=$1
ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s)print k,s[k]}' > ${ss_file}
tcp_stat_value=$(grep ${tcp_stat} $ss_file | awk {'print $NF'})
if [ -z "$tcp_stat_value" ];then
tcp_stat_value=0
fi
echo $tcp_stat_value
}
tcp_status_fun $1
# chmod +x /usr/local/zabbix-agent/scripts/tcp_status.sh
# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/tcp_status.conf \\ 创建配置文件 亦可导入
UserParameter=tcp_status[*],/usr/local/zabbix-agent/scripts/tcp_status.sh $1
# systemctl restart zabbix_agentd.service
# /usr/local/zabbix/bin/zabbix_get -s 192.168.10.11 -p 10050 -k tcp_status[ESTAB] \\ 在服务器端 测试 有返回值
为 Tcp 创建 模板
配置 --> 模板 --> 创建模板
模板名称 Template Tcp_connect Status
群组 Templates
编辑模板
应用集 --> 创建应用集
名称 tcp_status
监控项 --> 创建监控项
名称 tcp_status[ESTAB]
类型 Zabbix 客户端 \\ 键值tcp_status[]的值 CLOSED CLOSING ESTAB FIN-WAIT-1 FIN-WAIT-2
键值 tcp_status[ESTAB] \\ LAST-ACK LISTEN SYN-RECV SYN-SENT TIME-WAIT CLOSE-WAIT
应用集 tcp_status
图形 --> 创建图形
名称 tcp_status
监控项 --> 添加
添加 Mysql 监控到 Zabbix
# vim /usr/local/zabbix-agent/scripts/mysql_status.sh \\ 创建监控脚本文件 亦可导入
#!/bin/bash
HOST="localhost"
USER="root"
PASSWORD="123456"
PORT="3306"
CONNECTION="mysqladmin -h ${HOST} -u ${USER} -P ${PORT} -p${PASSWORD}"
if [ $# -ne "1" ];then
echo "arg error!"
fi
case $1 in
Uptime)
result=`${CONNECTION} status 2>/dev/null |awk '{print $2}'`
echo $result
;;
Questions)
result=`${CONNECTION} status 2>/dev/null |awk '{print $6}'`
echo $result
;;
Com_update)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_update" |awk '{print $4}'`
echo $result
;;
Slow_queries)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Slow_queries" |awk '{print $4}'`
echo $result
;;
Com_select)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_select" |awk '{print $4}'`
echo $result
;;
Com_rollback)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_rollback" |awk '{print $4}'`
echo $result
;;
Com_insert)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_insert" |awk '{print $4}'`
echo $result
;;
Com_delete)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_delete" |awk '{print $4}'`
echo $result
;;
Com_commit)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_commit" |awk '{print $4}'`
echo $result
;;
Bytes_sent)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Bytes_sent" |awk '{print $4}'`
echo $result
;;
Bytes_received)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Bytes_received" |awk '{print $4}'`
echo $result
;;
Com_begin)
result=`${CONNECTION} extended-status 2>/dev/null |grep -w "Com_begin" |awk '{print $4}'`
echo $result
;;*)
echo "Usage:$0(Uptime|Questions|Com_update|Slow_queries|Com_select|Com_rollback|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
# chmod +x /usr/local/zabbix-agent/scripts/mysql_status.sh \\ 不需要防火墙开启3306端口
# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/userparameter_mysql.conf \\ 密码创建配置文件 需要加入mysql密码
UserParameter=mysql.status[*],/usr/local/zabbix-agent/scripts/mysql_status.sh $1
UserParameter=mysql.ping,mysqladmin -u root -h localhost -p123456 ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,mysql -V
为 mysql 添加 监控模板
Template DB MySQL \\ 使用mysql 系统自带模板即可 只添加 脚本及配置文件即可
添加 Redis 监控到 Zabbix
# vim /usr/local/zabbix-agent/scripts/redis_discovery.py \\ 创建监控脚本 脚本为python脚本 需要python环境 默认有
#!/usr/bin/env python
import os
import json
t=os.popen("""sudo netstat -tlpn |grep redis|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """)
ports = []
for port in t.readlines():
r = os.path.basename(port.strip())
ports += [{'{#REDISPORT}':r}]
print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
# chmod +x /usr/local/zabbix-agent/scripts/redis_discovery.py
# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/redis_discovery_port.conf \\ 创建配置文件 需加入密码foobared
UserParameter=redis.discovery,/usr/bin/python /usr/local/zabbix-agent/scripts/redis_discovery.py
UserParameter=redis_stats[*],redis-cli -p $1 -h 127.0.0.1 -a foobared info | grep -w $2 | cut -d : -f2
# echo 'Defaults:zabbix !requiretty' >> /etc/sudoers \\ 给zabbix用户sudo权限
# echo 'zabbix ALL=(root) NOPASSWD:/bin/netsta' >> /etc/sudoers
# /usr/local/zabbix-agent/scripts/redis_discovery.py \\ 本机测试 会获取到端口
为 Redis 添加 监控模板
配置 --> 模板 --> 创建模板 \\ 为 Redis 创建 模板
模板名称 Redis Discovery
群组 Templates
编辑模板
应用集 --> 创建应用集
名称 redis_status
监控项 --> 自动发现规则
名称 Redis Status Discovery
类型 Zabbix 客户端
键值 redis.discovery
更新间隔 60s
资源周期不足 1d
监控项 --> 自动发现规则 --> 监控项原型
名称 Redis $1 Port Blocked clients
类型 Zabbix 客户端
键值 redis_stats[{#REDISPORT},blocked_clients]
更新间隔 60s
应用集 redis_status
名称及键值 逐一添加 \\ 其他的信息类型 默认即可
Redis $1 Port Blocked clients
redis_stats[{#REDISPORT},blocked_clients]
Redis $1 Port Connected clients
redis_stats[{#REDISPORT},connected_clients]
信息类型 文本
Redis $1 Port Connected slave
redis_stats[{#REDISPORT},connected_slaves]
Redis $1 Port Connection rate
redis_stats[{#REDISPORT},total_connections_received]
Redis $1 Port Expired keys
redis_stats[{#REDISPORT},expired_keys]
Redis $1 Port mem_fragmentation_ratio
redis_stats[{#REDISPORT},mem_fragmentation_ratio]
信息类型 浮点数
Redis $1 Port Rejected Connections
redis_stats[{#REDISPORT},rejected_connections]
Redis $1 Port Request rate
redis_stats[{#REDISPORT},instantaneous_ops_per_sec]
Redis $1 Port Role
redis_stats[{#REDISPORT},role]
信息类型 文本
Redis $1 Port Uptime in seconds
redis_stats[{#REDISPORT},uptime_in_seconds]
Redis $1 Port Used memory
redis_stats[{#REDISPORT},used_memory]
Redis $1 Port Used_Memory_Peak
redis_stats[{#REDISPORT},used_memory_peak]
Redis $1 Port Used_memory_rss
redis_stats[{#REDISPORT},used_memory_rss]
监控项 --> 自动发现规则 --> 触发器类型
名 称 Redis-{#REDISPORT}服务使用内存异常,请检查
严重性 一般严重
表达式 {Redis Discovery:redis_stats[{#REDISPORT},used_memory].last()}<0
名 称 Redis-{$REDISPORT}redis内存交换至swap
严重性 警告
表达式 {Redis Discovery:redis_stats[{#REDISPORT},mem_fragmentation_ratio].last()}<1
名 称 Redis-{$REDISPORT}最大客户端数量已达到最大值
表达式 {Redis Discovery:redis_stats[{#REDISPORT},rejected_connections].last()}>0 and {Redis Discovery:redis_stats[{#REDISPORT},Connected_clients].last()}>9800
监控项 --> 自动发现规则 --> 图形原型
名 称 Redis-{#REDISPORT} Port Connections
添加原型 看着加
名 称 Redis-{#REDISPORT} Port key
添加原型 Redis {#REDISPORT} Port Expired keys
名 称 Redis-{#REDISPORT} Port mem_fragmentation_ratio
添加原型 Redis {#REDISPORT} Port mem_fragmentation_ratio
名 称 Redis-{#REDISPORT} Uptime_in_seconds
添加原型 Redis Discovery: Redis {#REDISPORT} Port Uptime in seconds
名 称 Redis-{#REDISPORT} Port Used memory
添加原型 Redis {#REDISPORT} Port Used memory
添加 端口 到 Zabbix
# vim /usr/local/zabbix-agent/scripts/check_port.py \\ 注意for下面的代码有缩进 否则会报错
#!/usr/bin/env python
import os
import json
portlist = []
new_port_list = []
port_dict = {"data":None}
cmd = '''netstat -tnlp|egrep -i "$1"|awk {'print $4'}|'''
cmd += '''awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort -n| uniq 2>/dev/null'''
auto_localport = os.popen(cmd).readlines()
for ports in auto_localport:
new_port = ports.strip()
portlist.append(new_port)
for port in portlist:
pdict = {}
pdict["{#TCP_PORT}"] = port
new_port_list.append(pdict)
port_dict["data"] = new_port_list
jsonStr = json.dumps(port_dict,sort_keys=True,indent=4)
#python3
#print(jsonStr)
#python2
print jsonStr
# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/check_port.conf
UnsafeUserParameters=1
UserParameter=tcpportlisten,/usr/local/zabbix-agent/scripts/check_port.py
# chmod +s /bin/netstat \\ 给 netstat 命令加 普通用户执行权限
# zabbix_get -s 192.168.10.12 -p 10050 -k tcpportlisten \\ 在主服务器端 可获取到端口
为 端口 添加 监控模板
配置 --> 模板 --> 创建模板 \\ 为 Redis 创建 模板
模板名称 Template ports Discovery
群组 Templates
编辑模板
监控项 --> 自动发现规则
名称 Template Ports Discovery
类型 Zabbix 客户端
键值 tcpportlisten
更新间隔 30s
资源周期不足 1d
监控项 --> 自动发现规则 --> 监控项原型
名称 tcp port $1
类型 Zabbix 客户端
键值 net.tcp.listen[{#TCP_PORT}]
更新间隔 30s
监控项 --> 自动发现规则 --> 触发器类型
名称 tcp_port{#TCP_PORT}status
严重性 严重 \\ count(#3,0,eq) > 1表示最近3次的返回值为0,这个条件触发一次则报警.
表达式 {Template ports Discovery:net.tcp.listen[{#TCP_PORT}].count(#3,0,eq)}>1
为 节点 自动添加 agetn 脚本 \\ 可删除之前的版本 安装包为4.0 集成了mysql redis tcp nginx 端口 监控
# vim agent.sh
#!/bin/bash
ip=`curl -s ifconfig.me`
old_ver=`rpm -qa zabbix-agent`
old_url=`find /usr/local/ -name zabbix_agentd.conf | awk -F'/' 'BEGIN{OFS="/"} {print $1,$2,$3,$4}'`
if [ ${#old_ver} -ne 0 ];then
yum remove -y zabbix-agent
fi
if [ ${#old_url} -ne 0 ];then
rm -rf $old_url
fi
rm -rf /etc/init.d/zabbix_agentd
id zabbix
if [ $? -ne 0 ];then
groupadd zabbix
useradd -g zabbix zabbix -s /sbin/nologin
fi
chmod +s /bin/netstat
echo 'Defaults:zabbix !requiretty' >> /etc/sudoers
echo 'zabbix ALL=(root) NOPASSWD:/bin/netsta' >> /etc/sudoers
wget http://www.syk.my/download/zabbix-agent.tar.gz
tar zxvf zabbix-agent.tar.gz -C /usr/local/
rm -rf zabbix-agent.tar.gz
mv /usr/local/zabbix-agent/zabbix_agentd /etc/init.d/
chown zabbix.zabbix /usr/local/zabbix-agent/tmp
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
systemctl restart zabbix_agentd
#cat > /etc/nginx/conf.d/agent_nginx.conf <<-EOF
#server {
# listen 81 default;
# server_name _;
# location /nginx_status {
# stub_status on;
# access_log off;
# allow $ip;
# allow 154.80.251.90;
# allow 43.243.95.0/24;
# deny all;
# }
#}
#EOF
Zabbix服务器 添加 Telegram 发送告警
方法一: 使用tg
https://my.telegram.org/auth?to=apps \\ 访问此网址获取用户私钥
+639770000000 \\ telegram的电话
vc7nuXtw-Mf \\ 会发送到 telegram 的验证码
App title: test123
Short name: test123 \\ 填写两项即可
Public keys: \\ 复制所有内容
# yum install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel git uuid-devel libuuid libuuid-devel
# cd /usr/local
# git clone --recursive https://github.com/vysheng/tg.git \\ 下载tg文件 亦可以导入
# cd tg
# ./configure --disable-json
# make
# vim /usr/locla/tg/tg-server.pub \\ 复制进去 上面复制的私钥
# /usr/local/tg/bin/telegram-cli -k /usr/local/tg/tg-server.pub \\ 登录 第一次登录要验证码
phone number: +639770000000
code ('CALL' for phone code): 48904 \\ 验证码会发送到telegrams
msg qi aaaaaaaa \\ 给qi发送信息 如果提示错误 FAIL: 38: can not parse arg #1 先用手机发送 在用此发送即可
quit \\ 退出
# /usr/local/tg/bin/telegram-cli -k /usr/local/tg/tg-server.pub -WDCRE -P 8890 -d &>/dev/null & \\ 8890端口在后台运行程序
# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts \\ 定义 自定义脚本目录
# /usr/local/zabbix/alertscripts/tg.sh
#!/bin/sh
echo -e "msg $1 $2 $3" | nc localhost 8890
# /etc/profile.d/telegram-cli.sh \\ 创建开机启动脚本 添加到开机启动
/usr/local/tg/bin/telegram-cli -k /usr/local/tg/tg-server.pub -WDCRE -P 8890 -d &>/dev/null &
# systemctl restart zabbix_server.service
方法二: 使用机器人
申请telegram机器人
telegram搜索框中搜索 @BotFather
/start 找到机器人后与其对话输入 /start
/newbot 继续输入 /newbot
zabbizteo1bot 输入你创建机器人的昵称 随便起但不能重复 后面要跟bot 如zabbizteo1bot 有 Done提示即完成
t.me/zabbizteo1bot \\ 点进去 发送 /start 及随便发送其他信息
/start
1353054608:AAEleccGmr-z8a6nq7uK6KzLFsIFokMCHfc \\ api秘钥 即token
创建群组 里面拉入 此机器人 \\ 群组名字随便11223344 如果需要群组的话创建 不需要不用创建
浏览器访问访问 https://api.telegram.org/bot替换为你的秘钥/getUpdates 来获取id
https://api.telegram.org/bot1353054608:AAEleccGmr-z8a6nq7uK6KzLFsIFokMCHfc/getUpdates
{"ok":true,"result":[{"update_id":812594943,
chat":{"id":779671758,"first_name":"Teo","type":"private"}
chat":{"id":-325911383,"title":"11223344","type":"group"
779671758 用户id
-325911383 组id \\ 组id前面有 -
Linux 服务器测试 使用机器人发送信息 浏览器也可以 \\ 浏览器测试未成功 可能格式有误
curl -X POST "https://api.telegram.org/bot你的秘钥/sendMessage" -d "chat_id=你的ID &text=测试123"
curl -X POST "https://api.telegram.org/bot1353054608:AAEleccGmr-z8a6nq7uK6KzLFsIFokMCHfc/sendMessage" -d "chat_id=779671758 &text=测试1234" \\ 单个用户发送
curl -X POST "https://api.telegram.org/bot1353054608:AAEleccGmr-z8a6nq7uK6KzLFsIFokMCHfc/sendMessage" -d "chat_id=-325911383 &text=测试1234" \\ 给组发送
# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts \\ 定义 自定义脚本目录
# vim /usr/local/zabbix/alertscripts/alert.sh \\ 亦可导入
#!/bin/bash
#方式一:直接调用telegram-bot api 接口发送消息
MSG=$3
Token='1354261576:AAHrlPtKslxFNyh-Zgx8me7STc3_rPNqvDI'
ChatID='-325911383'
curl -X GET "https://api.telegram.org/bot$Token/sendMessage" -d "chat
# systemctl restart zabbix_server.service
添加 Telegram 发送告警功能
管理 --> 报警媒介类型 --> 创建媒体类型
名称 Telegram_group
类型 脚本
脚本名称 tg.sh \\ 方法二 alert.sh
脚本参数 {ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理 --> 用户 --> Admin --> 报警媒介 --> 添加 \\ 可以添加多个人
类型 Telegram_group
收件人 11223344 \\ 此为 telegram 要发送的 联系人名或群名字 方法二名字在脚本总
配置 --> 动作 --> 创建动作
动作
名称 Telegram_group
新的触发条件
触发器示警度 大于等于 信息 \\ 看情况即可
操作
默认操作步骤持续时间 1m
默认标题 故障!:告警节点:{TRIGGER.NAME}
消息内容 问题详情: {ITEM.NAME}:{ITEM.VALUE} \\ 此处有换行 方法一 只识别一行 需要在同一行
告警主机: {HOST.NAME} \\ 方法二 可以直接使用 可当换行使用
告警时间: {EVENT.DATE} {EVENT.TIME} \\ 方法二 可在内容前面加个 . 为单独一行
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
事件ID: {EVENT.ID}zbxtg:graphs
zbxtg:graphs_period=10800
zbxtq:itemid:{ITEM.ID1}
zbxtg:title:{HOST.HOST} - {TRIGGER.NAME}
操作 --> 新的 --> 操作细节
发送到用户 --> 添加 --> Admin
仅送到 --> Telegram_group
更新
恢复操作
默认标题 恢复!:恢复节点:{TRIGGER.NAME}
消息内容 问题详情: {ITEM.NAME}:{ITEM.VALUE}
恢复主机: {HOST.NAME}
恢复时间: {EVENT.DATE} {EVENT.TIME}
事件等级: {TRIGGER.SEVERITY}
恢复项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
事件ID: {EVENT.ID} zbxtg:graphs
zbxtg:graphs_period=10800
zbxtq:itemid:{ITEM.ID1}
zbxtg:title:{HOST.HOST} - {TRIGGER.NAME}
操作 --> 新的 --> 操作细节
发送到用户 --> 添加 --> Admin
仅送到 --> Telegram_group
更新
外部邮箱账号发送报警邮件设置 smtp
# yum install mailx \\ 登录qq邮箱 --> 设置 --> 开启服务IMAP/SMTP服务(需要短信验证)
# yum install sendmail
# systemctl stop postfix \\ 需要停止postfix
# systemctl disable postfix
# systemctl restart sendmail
# vim /etc/mail.rc \\ 最后添加即可
set smtp=smtps://smtp.qq.com:465 \\ 第三方发邮件的smtp服务器地址 smtps://smtp.gmail.com:465
set from=113487@qq.com \\ 对方收到邮件时显示的发件人 a09669461688@gmail.com
set smtp-auth-user=113487@qq.com \\ 第三方发邮件的用户名 a09669461688@gmail.com
set smtp-auth-password=ppkcmcfkbpdtcafi \\ 授权码 在邮箱中开启smtp服务器会有授权码 google邮箱可以使用密码
set ssl-verify=ignore
set nss-config-dir=/root/.certs
set smtp-auth=login \\ SMTP的认证方式
# mkdir -p /root/.certs/ \\ 配置证书
# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
# certutil -L -d /root/.certs
# echo -e "Hello" | mail -v -s "test" 113487@qq.com \\ 测试 可以给自己发送
# vim /usr/local/zabbix/alertscripts/mail.sh
#!/bin/bash
sendto=$1
subject=$2
message=$3
echo -e "$message" | mail -v -s "$subject" $sendto
注: 使用谷歌邮箱 设置 --> 查看所有设置 --> 转发和 POP/IMAP --> 启用 IMAP
方法一: 谷歌邮箱需要开启 安全性较低的应用的访问权限 https://myaccount.google.com/lesssecureapps
方法二: 开启 管理谷歌账号 --> 安全性 --> 两步验证
后设置应用专用密码 https://security.google.com/settings/security/apppasswords
添加 邮件 发送告警功能
管理 --> 报警媒介类型 --> 创建媒体类型
名称 mail_script
类型 脚本
脚本名称 mail.sh
脚本参数 {ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理 --> 用户 --> Admin --> 报警媒介 --> 添加 \\ 可以添加多个人
类型 mail_script
收件人 113487@qq.com \\ 此为要发送的邮箱账号 即$1
配置 --> 动作 --> 创建动作
动作
名称 mail_script
新的触发条件
触发器示警度 大于等于 信息 \\ 看情况即可
操作
默认操作步骤持续时间 1m
默认标题 故障!:告警节点:{TRIGGER.NAME} \\ 下面 \n为echo换行符 否则zabbix换行符^M在mail中会以附件形式发送
问题详情: {ITEM.NAME}:{ITEM.VALUE}\n告警主机: {HOST.NAME}\n告警时间: {EVENT.DATE} {EVENT.TIME}\n告警等级: {TRIGGER.SEVERITY}\n告警信息: {TRIGGER.NAME}\n告警项目: {TRIGGER.KEY1}\n当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}\n事件ID: {EVENT.ID}zbxtg:graphs\nzbxtg:graphs_period=10800\nzbxtq:itemid:{ITEM.ID1}\nzbxtg:title:{HOST.HOST} - {TRIGGER.NAME}\n
操作 --> 新的 --> 操作细节
发送到用户 --> 添加 --> Admin
仅送到 --> mail_script
更新
恢复操作
默认标题 恢复!:恢复节点:{TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}\n恢复主机: {HOST.NAME}\n恢复时间: {EVENT.DATE} {EVENT.TIME}\n事件等级: {TRIGGER.SEVERITY}\n恢复项目: {TRIGGER.KEY1}\n当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}\n事件ID: {EVENT.ID} zbxtg:graphs\nzbxtg:graphs_period=10800\nzbxtq:itemid:{ITEM.ID1}\nzbxtg:title:{HOST.HOST} - {TRIGGER.NAME}\n
操作 --> 新的 --> 操作细节
发送到用户 --> 添加 --> Admin
仅送到 --> mail_script
更新
........................................................................................................................
zabbix server端及agent端 yum安装
# mysql -uroot -p \\ 首先安装LNMP 此为数据库与zabbix同一主机上
create database zabbix character set utf8; \\ 创建zabbix 表
grant all privileges on zabbix.* to zabbix@'%' identified by '123456'; \\ 创建用户 及授权
# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm \\ 最新版本 yum 源
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
# vim /usr/share/doc/zabbix-server-mysql-4.2.6/create.sql.gz
USE zabbix; \\ 如果导入不成功需要在首行加入
# zcat create.sql.gz | mysql -uzabbix -p123456 \\ zabbix数据文件导入到数据库
# vim /etc/zabbix/zabbix_server.conf \\ 主 配置文件
DBUser=zbbbix \\ 需要改 数据库用户名
DBPassword=123456 \\ 需要改 数据库密码
DBSocket=/var/lib/mysql/mysql.sock \\ 连接mysql时基于本地数据需要改 可以到mysql配置文件中查看
\\ socket文件位置 数据库不在本地不需要修改 最好使用此目录避免出现更多报错
# setenforce 0
# systemctl restart zabbix-server.service \\ 启动 注意要先启动数据库 3306 和httpd或nginx 80
# ss -tnl \\ 10051被监听
# vim /etc/php.ini \\ 需要修改php里面的时区
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1 \\ 解决 php PHP option "always_populate_raw_post_data"
/var/log/zabbix/zabbix_server.log \\ 日志文件保存位置
注 1 启动不起来 注意日志文件 如果提示找不到mysql.sock 首先关闭selinux lsof -c mysqld | grep sock$ 使用此命令可以查看
2 安装完zabbix后 会安装mariadb-lib 会和编译安装的mariadb冲突 把/etc/my.cnf 删除或者替换就可以
3 把mysql.sock目录设在/var/lib/mysql/mysql.sock可在my.cnf修改。要给此目777权限和mysql的属组权限,否则mysql启动不了
使用 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立软连接 否则安全初始化会提示找不到/tmp/mysql.sock文件,权限
4 网页配置的时候出现报错mysql.sock报错 上面没设置正确 可以吧localhost修改成127.0.0.1 临时解决
5 # vim /etc/httpd/conf.d/zabbix.conf \\ 会在此目录 生成 zabbix.conf
php_value date.timezone Asia/Shanghai \\ 可以在此设置时区
6 修改中文后 图片乱码问题
# rpm -ql zabbix-web | grep fonts
# cd /usr/share/zabbix/fonts \\ 复制Windows 上的字体 到 此目录下面
# vim /usr/share/zabbix/include/defines.inc.php \\ 修改文件中的字体配置 指明字体名字
define('ZBX_GRAPH_FONT_NAME', 'msyhbd'); // font file name \\ graphfont替换成msyhbd(复制过去的字体名字)
7 解决zabbix 识别成其他数据库 之后重启httpd和zabbix
# yum install php-mysql
/etc/zabbix/web/zabbix.conf.php \\ 可修改数据库密码等
admin
zabbix \\ 默认用户名密码
8 以上安装是基于httpd yum安装即可
# zabbix_server -V \\ 查看 Zabbix 服务器版本
# zabbix_agentd -V \\ 查看 Zabbix 客户端版本
zabbix 本机agent端
# vim /etc/zabbix/zabbix_agentd.conf \\ 主配置文件 上面已有安装 agent端的源及文件
Server=127.0.0.1,192.168.10.13 \\ 允许哪些ip来获取信息 server端可以有多个 授权ip地址
ServerActive=127.0.0.1,192.168.10.13 \\ 主动发起请求同时个服务器
Hostname=teo5.com \\ 最好dns解析后的主机名
EnableRemoteCommands=1 \\ 允许远程命令
LogRemoteCommands=1 \\ 远程命令的日志
# systemctl restart zabbix-agent.service
# ss -tnl \\ 10051端口被监控
纯agent端
# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm
# yum install zabbix-agent
# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.10
ServerActive=192.168.10.10
Hostname=192.168.10.15
ListemIP=192.168.10.15 \\ 自动agent注册功能 需要添加到监听本机ip
# systemctl restart zabbix-agent.service
# systemctl status zabbix-agent.service
# ss -tnl \\ 10050端口被监控
# tail /var/log/zabbix/zabbix_agentd.log \\ 错误日志文件
# iptables -A IN_public -d 192.168.10.15 -p tcp --dport 10050 -j ACCEPT \\ 要在防火墙放行10050端口
对于本地有rpm包的可以直接安装 \\ --nogpgcheck 不做秘钥检查
# yum --nogpgcheck localinstall zabbix-2.4.8-1.el7.x86_64.rpm zabbix-agent-2.4.8-1.el7.x86_64.rpm
zabbix-proxy 代理端
首先安装mariadb \\ 数据库与zabbix-proxy同一主机上
mysql
create database zabbix_proxy character set utf8; \\ 创建zabbix_proxy 表
grant all privileges on zabbix.* to zabbix@'%' identified by '123456'; \\ 创建用户 及授权
# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm \\ 最新版本 yum 源
# yum install zabbix-agent zabbix-proxy-mysql
# rpm -ql zabbix-proxy-mysql \\ 会显示文件目录
# cd /usr/share/doc/zabbix-proxy-mysql-4.2.7/
# vim schema.sql.gz
USE zabbix_proxy; \\ zabbix_proxy 是自己创建的数据库
# zcat schema.sql.gz | mysql -uzabbix -p123456
# vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.10.11 \\ 要填写 服务器的ip
Hostname=Zabbix proxy \\ 主机名
LogFile=/var/log/zabbix/zabbix_proxy.log \\ 日志目录
DBHost=192.168.10.12 \\ 数据库ip 一般为本机 不使用socket连接 适用
DBName=zabbix_proxy \\ 数据库 的表名字
DBUser=zabbix \\ 数据库用户名
DBPassword=123456 \\ 数据库密码
HeartbeatFrequency=60 \\ 每隔多长时间 去探测一下服务器端的活动状态 默认为60秒
ConfigFrequency=3600 \\ 每隔多长时间 去服务器拉取 和自己的相关配置 默认为3600秒
DataSenderFrequency=1 \\ 每隔多少时间 向服务器送一次数据 默认为1s
zabbix 2.4 服务器端 安装需要替换的命令
# rpm -Uvh https://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm \\ 2.4版本的源
# yum install zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql zabbix-agent zabbix-sender zabbix-server zabbix
# yum clean all
# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create \\ 此目录下会有三个表 需要导入到数据库 有顺序
# mysql -uroot -p zabbix < schema.sql \\ 导入数据库
# mysql -uroot -p zabbix < images.sql
# mysql -uroot -p zabbix < data.sql
# mysql \\ 会看到刚 导入的三个表
show databases;
use zabbix;
show tables;