Zabbix学习笔记02

Zabbix配置文件参数

  • Zabbix监控系统组件为server、proxy、agentd端,对各自组件的参数深入理解能够对Zabbix进行调优
  • zabbix_server.conf配置文件参数:
    • DBHost:数据库主机地址
    • DBName:数据库名称
    • DBPasswd:数据库密码
    • DBPort:数据库端口号,默认为3306
    • AlertScriptsPath:告警脚本存放路径
    • CacheSize:存储监控数据的缓存
    • CacheUpdateFrequency:更新一次缓存的事件
    • DebugLevel:日志级别
    • LogFile:日志文件路径
    • LogFileSize:日志文件大小,超过自动切割
    • LogSlowQueries:数据库慢查询记录,单位为ms
    • PidFile:PID文件
    • ProxyConfigFrequency:proxy被动模式下,server用多少秒同步配置文件至proxy
    • ProxyDataFrequency:被动模式下,server间隔多少秒向proxy请求历史数据
    • StartDiscoverers:发现规则线程数
    • Timeout:连接agent超时时间
    • TrendCacheSize:历史数据缓存大小
    • User:Zabbix运行的用户
    • HistoryCacheSize:历史记录缓存大小
    • ListenIP:监听本机的IP地址
    • ListenPort:监听端口
    • LoadModule:模块名称
    • LoadModulePath:模块路径
  • zabbix_proxy.conf配置文件参数:
    • ProxyMode:proxy工作模式,默认为主动模式,主动发送数据至server端
    • Server:指定server端IP地址
    • ServerPort:server端端口
    • Hostname:proxy端主机名
    • ListenPort:proxy端监听端口
    • LogFile:proxy代理端日志路径
    • PidFile:PID文件的路径
    • DBHost:proxy端数据库主机名
    • DBName:proxy端数据库名称
    • DBUsert:proxy端数据库用户
    • DBPasswd:proxy端数据库密码
    • DBSocket:proxy端数据库socket路径
    • DBPort:proxy端数据库端口号
    • DataSenderFrequency:proxy向server发送数据的时间间隔
    • StartPollers:proxy线程池数量
    • StartDiscoverers:proxy端自动发现主机的线程数量
    • CacheSize:内存缓存配置
    • StartDBSyncers:同步数据线程数
    • HistoryCacheSize:历史记录缓存大小
    • LogSlowQueries:数据库慢查询记录,单位为ms
    • Timeout:超时时间
  • zabbix_agentd.conf配置文件参数:
    • EnableRemoteCommands:是否运行服务端远程至客户端执行命令或者脚本
    • Hostname:客户端主机名
    • ListenIP:监听的IP地址
    • ListenPort:监听端口
    • LoadModulePath:模块路径
    • LogFile:日志文件路径
    • PidFile:PID文件名
    • Server:指定server端IP地址
    • ServerActive:Zabbix主动监控server的IP地址
    • StartAgents:agent启动进程,如果设置为0,表示禁用被动监控
    • Timeout:超时时间
    • User:运行Zabbix的用户
    • UserParameter:用户自定义key
    • BufferSize:缓冲区大小
    • DebugLevel:Zabbix日志级别

Zabbix自动发现及注册

  • Zabbix自动发现功能是为了解决批量监控而设计的.基于Zabbix server端设定的规则,自动批量的去发现局域网若干服务器,并自动把服务器添加至Zabbix监控平台

  • Zabbix最大的特点之一是可以批量自动发现主机并监控,利用发现(discovery)模块,实时自动发现主机、自动将主机添加到主机组、自动加载模块、自动创建项目(items)、自动创建监控图像,操作步骤为

    1. 依次选择Configuration --> Discovery --> Create discovery rule,创建客户端发现规则

      • Name:规则名称
      • Discovery by proxy:通过代理搜索
      • IP range:zabbix_server搜索区域的IP范围
      • Delay:搜索一次的时间间隔
      • Checks:检测方式,如用ping方式去发现主机,zabbix_server需安装fping,也可使用agent方式发现
      • Device uniqueness criteria:以IP地址作为被发现主机的标识
image.png
  1. Zabbix客户端安装agent

    • 由于发现规则里选择checks方式为agent,所以需在所有被监控的服务器安装Zabbix agent,安装方式可以手动,也可以使用shell脚本,脚本运行方法为sh auto_install_zabbix.sh
    # IP变量有问题
    
    #!/bin/bash
    #auto install zabbix
    ###########################
    ZABBIX_SOFT='zabbix-3.2.6.tar.gz'
    ZABBIX_PATH='zabbix-3.2.6'
    INSTALL_DIR='/usr/local/zabbix/'
    SERVER_IP='10.0.0.202'
    IP="ifconfig |awk 'NR==2{print $2}'"
    AGENT_INSTALL(){
    yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y
    groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
    tar -xzf $ZABBIX_SOFT;cd $ZABBIX_PATH
    ./configure --prefix=/usr/local/zabbix --enable-agent&&make install
    if [ $? - eq 0];then
       ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin
    fi
    cd -;cd $ZABBIX_PATH
    cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd;chmod o+x /etc/init.d/zabbix_agentd
    # config zabbix agentd
    cat >$INSTALL_DIR/etc/zabbix_agentd.conf<<EOF
    LogFile=/tmp/zabbix_agentd.log
    Server=$SERVER_IP
    ServerActive=$SERVER_IP
    Hostname=$IP
    EOF
    #start zabbix agentd
    /etc/init.d/zabbix_agentd restart
    /usr/bin/systemctl stop firewalld
    setenforce 0
    }
    AGENT_INSTALL
    
  2. 创建发现action

    • Zabbix发现规则创建完毕,客户端agent安装完后,被发现的IP主机不会自动添加至Zabbix监控列表,需要添加发现动作,一次选择Configuration --> Actions --> Event source(Discovery) --> Create action
    • 添加规则时,系统默认存在一条发现规则,可以新建规则,也可以使用默认规则
    • 新建规则时,在Operations中分别设置Add host、Add to host groups、Link to templates
image.png
image.png
image.png
 - 依次选择Monitoring --> Discovery查看通过发现规则找到的服务器IP列表
image.png
 - 依次选择Configuration --> Hosts,查看主机是否被自动监控至Zabbix监控平台
image.png
 - 依次选择Configuration --> Graphs,查看监控图像
image.png

Zabbix邮件报警

  • 在Zabbix服务器端设置邮件报警,当贝监控主机宕机或者达到设定的触发器预设值时,会自动发送报警邮件、微信信息到指定的人员.Zabbix邮件报警设置步骤为:
    1. 设置邮件模板及邮件服务器
      • 依次选择Administrator --> Media types --> Create media type,填写邮件服务器信息
    2. 配置接收报警的邮箱
      • 依次选择Administrator --> User --> Admin(Zabbix Administrator) --> user --> admin,再选择media,单击Add添加发送邮件的类型为Email,同时指定接收邮箱地址为841603636@qq.com

Zabbix监控MySQL主从复制

  • Zabbix除了可以监控agent客户端服务器状态、CPU、内存、硬盘、网卡流量等运行情况,同时Zabbix还可以监控MySQL主从复制、LAMP、Nginx Web服务器

  • Zabbix监控MySQL主从复制:

    1. 在10.0.0.203Zabbix agent端/data/sh目录创建shell脚本mysql_ab_check.sh
    #!/bin/bash
    /usr/local/mysql/bin/mysql -uroot -e 'show slave status\G;'|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
    
    1. 在客户端zabbix_agentd.conf配置文件中加入代码
    # 格式为UserParameter=key,command
    UserParameter=mysql.replication,sh /data/sh/mysql_ab_check.sh
    
    # 重启Zabbix agent使配置生效
    /etc/init.d/zabbix_agentd restart
    
    1. Zabbix服务器端获取监控数据,如果返回值为2,则证明从库I/O、SQL线程均为Yes,表示主从同步成功
    /usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k mysql.replication
    
    1. 在Zabbix Web平台,在10.0.0.203hosts中创建item监控项,单击右上角create item,在Key输入栏中填写zabbix_agentd配置文件中的mysql.replication
image.png
image.png
image.png
  • MySQL主从监控创建Graph图像
image.png
  • MySQL主从监控项创建触发器,MySQL主从状态监控,设置触发器条件Key值不等于2即可,不等于2即表示MySQL主从同步异常,匹配触发器会执行Actions
image.png
image.png
  • 如果主从同步状态异常,Key值不等于2,会触发邮件报警

Zabbix分布式

  • Zabbix是一个分布式监控系统,它可以以一个中心点、多个分节点的模式运行,使用proxy能大大地降低Zabbix server的压力,Zabbix proxy可以运行在独立的服务器上

  • 安装Zabbix proxy,基于zabbix-3.2.6.tar.gz软件包,同时导入Zabbix基础框架表

    1. 下载Zabbix软件包
    https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
    
    1. 在Zabbix proxy执行如下代码
    yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y
    groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
    
    1. Zabbix proxy端配置
    • 创建Zabbix数据库,执行授权命令

      create database zabbix_proxy charset=utf8;
      

    grant all on zabbix_proxy.* to zabbix@'10.0.0.%' identified by '123456';
    flush privileges;

      
      - 解压Zabbix软件包并将Zabbix基础SQL文件导入数据至Zabbix数据库
      
    ```sh
      tar xf zabbix-3.2.6.tar.gz
      cd zabbix-3.2.6
      mysql -uzabbix -p123456 zabbix_proxy < database/mysql/schema.sql 
      mysql -uzabbix -p123456 zabbix_proxy < database/mysql/images.sql
      # mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
    
    • 切换至Zabbix解压目录,安装zabbix_proxy
    ./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl  # 预编译
    make  # 编译安装
    make install  # 执行安装
    ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin  # 创建命令软链接
    
    • Zabbix proxy安装完毕,cd /usr/local/zabbix/etc目录
image.png
  1. 备份Zabbix proxy配置文件
cp zabbix_proxy.conf{,.bak}
  1. 配置zabbix_proxy.conf,并启动mysql_proxy
Server=10.0.0.202
Hostname=10.0.0.205
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
Timeout=4
LogSlowQueries=3000
DataSenderFrequency=30
HistoryCacheSize=128MB
CacheSize=128MB
# 启动mysql_proxy服务
/usr/local/zabbix/sbin/zabbix_proxy

# 报错
zabbix_proxy: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

# 解决方法
cd /usr/local/mysql/lib
cp libmysqlclient.so.20  /usr/lib64/libmysqlclient.so.20
zabbix_proxy
ps -ef|grep zabbix # 查看zabbix_proxy进程有没有启动
  1. Zabbix客户端安装agent,同时配置agent端server设置为proxy服务器的IP地址或者主机名,zabbix_agentd.conf配置如下
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.205
ServerActive=10.0.0.205
Hostname=10.0.0.206

# 保存退出配置文件并启动服务
/etc/init.d/zabbix_agentd start

# 在Zabbix proxy端测试是否能连接到Zabbix agent端
/usr/local/zabbix/bin/zabbix_get  -s 10.0.0.206 -k system.uname

# 查看Zabbix proxy端日志发现报错信息
cannot send list of active checks to "10.0.0.206": host [10.0.0.206] not found

# 解决方法,重新启动zabbix_proxy
zabbix_proxy
  1. 在Zabbix server Web端添加proxy,实现集中管理和分布式添加监控
image.png
image.png
image.png
  1. 添加Zabbix agent端10.0.0.206主机,并勾选Monitored by proxy的Zabbix proxy端主机或IP地址
image.png
image.png
image.png
  1. 查看代理agent的主机状态,发现已经为可用了
image.png

Zabbix触发命令及脚本

  • Zabbix在对服务或者设备进行监控的时候,如果被监控客户端服务异常,满足触发器,可以发送邮件报警、短信报警及微信报警.Zabbix还可以远程执行命令或者脚本,对部分故障实现自动修复,具体可以执行的任务为:
    • 重启应用程序,例如Apache、Nginx、MySQL、Tomcat服务等
    • 通过IPMI接口重启服务器
    • 删除服务器磁盘空间及数据
    • 执行脚本及资源调度管理
    • 远程命令最大长度为255个字符
    • 同时支持多个远程命令
    • Zabbix代理不支持远程命令
  • 使用Zabbix远程执行命令,需在Zabbix客户端配置文件开启对远程命令的支持,在zabbix_agentd.conf行尾加入如下代码,并重启服务
    • EnableRemoteCommands=1 运行服务端远程至客户端执行命令或脚本
vim /usr/local/zabbix/etc/zabbix_agentd.conf
EnableRemoteCommands=1   # 然后保存退出
  • 创建Action,依次选择Configuration -> Actions --> Triggers,类型选择Remote command,Steps表示执行命令1-3次,Step duration表示设置每次命令执行间隔时间,60s执行一次,执行命令方式选择Zabbix agent,基于sudo执行命令
image.png
image.png
  • 在Zabbix客户端/etc/sudoers配置文件中添加zabbix用户拥有执行权限且无需密码登录
Defaults:zabbix !requiretty
zabbix  ALL=(ALL) NOPASSWORD: ALL
  • 在Zabbix客户端/data/sh,创建auto_clean_disk.sh文件,脚本代码为
#!/bin/bash
#auto clean disk space
rm -rf /boot/test.img
find /boot/ -name "*.log" -size +100M -exec rm -rf {} \;
  • 将10.0.0.203服务器/boot目录临时写满,然后满足触发器,实现远程命令执行
  • 如果Zabbix客户端脚本或者命令没有执行成功,HTTP服务没有停止,可以在Zabbix server端执行如下命令
/usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k 'system.run[sudo /etc/init.d/httpd restart]'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容