学习zabbix(一)
一、zabbix监控简介
server: 通过收集snmp和agent发送的数据,写入数据库(MySQL,ORACLE),再通过 php+apache 在 web 前端展示。
agent:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
二、Zabbix功能
--具备常见的商业监控软件所具备的功能
主机的性能监控、网络设备监控、数据库监控、多种报警方式、实时绘图功能
--支持自动发现网络设备和服务器
--支持分布式,能集中展示、管理分布式的监控点
--扩展性强,server提供通用接口,可以自己开发完善各类监控
三、安装zbbix
yum源 cat /etc/yum.repos.d/a.repo [os] name=aliyun baseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/ enabled=1 gpgcheck=0 [zabbix] name=zabbix baseurl=http://mirrors.ustc.edu.cn/epel/6/x86_64/ enabled=1 gpgcheck=0
server 端:
1、安装zabbix-server yum -y install zabbix22-server zabbix22-web zabbix22-web-mysql zabbix22-dbfiles-mysql zabbix22-agent mysql-server mysql php php-devel php-mysql 2、导入数据结构 service mysqld start mysql CREATE DATABASE zabbix CHARACTER SET utf8; GRANT ALL ON zabbix.* TO 'zabbix'@'192.168.4.%' IDENTIFIED BY 'zabbix'; FLUSH PRIVILEGES; mysql -u root -p zabbix < schema.sql 各种表结构 mysql -u root -p zabbix < images.sql 基本数据 mysql -u root -p zabbix < data.sql 自带模板 mysql -e 'USE zabbix;SHOW TABLES;' 3、配置文件 grep -n '^[a-Z]' /etc/zabbix_server.conf 39:LogFile=/var/log/zabbixsrv/zabbix_server.log 48:LogFileSize=0 68:PidFile=/var/run/zabbixsrv/zabbix_server.pid 77:DBHost=192.168.4.19 87:DBName=zabbix 103:DBUser=zabbix 111:DBPassword=zabbix 118:DBSocket=/var/lib/mysql/mysql.sock 458:AlertScriptsPath=/var/lib/zabbixsrv/alertscripts 466:ExternalScripts=/var/lib/zabbixsrv/externalscripts 507:TmpDir=/var/lib/zabbixsrv/tmp
agent
1、安装 yum -y install zabbix22-agent 2、配置文件 grep -n '^[a-Z]' /etc/zabbix_agentd.conf 11:PidFile=/var/run/zabbix/zabbix_agentd.pid 21:LogFile=/var/log/zabbix/zabbix_agentd.log 30:LogFileSize=0 81:Server=192.168.4.19 122:ServerActive=127.0.0.1 133:Hostname=Zabbix server
访问http://192.168.4.19/zabbix
点Next
修改配置文件
vim /etc/php.ini 945date.timezone = Asia/Shanghai 设置时区 440max_execution_time = 300 最大执行时间,秒 729post_max_size = 32M POST数据最大容量 449max_input_time = 300 服务器接收数据的时间限制 457memory_limit = 128M PHP内存占用的容量限制
service httpd restart
默认管理员账户密码:admin zabbix
生成配置文件: /etc/zabbix/web/zabbix.conf.php
若切至中文有乱码,解决办法:
1、查看/etc/httpd/conf.d/zabbix.conf得知zabbix网页目录为/usr/share/zabbix/;
2、查看/usr/share/zabbix/include/defines.inc.php得知字体目录位置:
define('ZBX_FONTPATH', '/usr/share/fonts/dejavu');// where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name;
3、将win中的任意字体(控制面板-->字体,例如仿宋或华文雅黑)复制到/usr/share/fonts/dejavu/下并覆盖改名为DejaVuSans.ttf;
添加一台主机
Configuration-->Hosts,Createhost--> Host name(test2) Visable name(test2) New group(demo) IP address(192.168.4.19) Port(10050) Status(Monitored)
添加报警:
注:报警针对用户和用户组;生产环境最好有短信平台,或晚上用SMS,白天email;
Administration-->Users-->选Zabbixadministrators旁的Users-->右上角Create User,User标签(Alias(demo),
Name(demo),Groups(Zabbix administrators),Password(demo)两次,勾选Auto-login-->Media标签,
Add,Type(Email),Send to(*@163.com),Add-->Permissions标签(User-type选Zabbix Super Admin)-->Save;
右上角logout,用demo登录;
注:Configuration-->Templates中的Applications应用集是监控项的集合,Item项目是监控的最小单位,有的Templates有Triggers有的没
四、添加mysql监控
添加项目:
Configuration-->Hosts,选test2中的Items-->点右上角Createitem,如下图创建,Name(mysql_check),Key(mysql_alive),update interval(in sec)(60),new flexible interval(300)-->Add,new application(MySQL),Description(MySQL Check)-->Save
agent 端的配置
vim /etc/zabbix/zabbix_agentd.conf UserParameter=mysql_alive,mysqladminping | grep -c alive
service zabbix-agentd restart
添加 触发器
Configuration-->Hosts,选test2的triggers,右上角Createtrigger-->Name(MySQL down),Expression(点Add,如下图,点Select,test2的mysql_check,Function(选Last (most recent) T value is NOT N,N(1))-->Insert-->Severity(disaster)
点Trigger标签旁边的Dependencies-->Add,选Zabbix agent on {HOST.NAME} is unreachable for 5minutes-->Save
添加图形:
Configuration-->Hosts,选test2的graph,右上角Creategraph,Name(mysql status),Graph type(Normal),Items-->Add,选test2的mysql_check,点Graph标签旁边的Preview可预览-->Save
添加报警
Configuration-->Actions,将Reportproblems to Zabbix administrators的status改为Enabled-->点Report problems to Zabbix administrators,Action标签中的项(要精简,一条短信是70个字符),Conditions,Operations(Operation details,from 1 to 3,第1次到第3次报警每次发送通知给指定的人,Operation type选Send message)-->先点Update-->再Save
五、添加报警邮件
配置邮箱
vim /etc/mail.rc #######set mail set from=usertzc@163.com smtp=smtp.163.com set smtp-auth-user=usertzc smtp-auth-password=password smtp-auth=login
添加脚本
cd /var/lib/zabbixsrv/alertscripts/ #(此目录下的脚本必须支持三个参数,介质参数(email or SMS),title,content) vim /usr/lib/zabbix/alertscripts/mail.sh #!/bin/sh MAIL_TITLE=$2 MAIL_CON=$3 echo "$MAIL_CON" | /bin/mail -s "$MAIL_TITLE" $1 echo "$1 $2 $3" >> /tmp/alert chmod 755 send_mail.sh
配置报警邮件
Administration-->Media types-->Create media type,Name(send_mail),Type(Script),Script name(会自动生成),勾选Enabled-->Save
Configuration-->Actions-->点Report problems to Zabbix administrators-->选Operations,Edit,Operation details中,User group为zabbix administrator,Send only to选send_mail-->Update-->Save
Administration-->Users-->demo-->Media-->Add,Type(send_mail),Send to(jowinchai@163.com)-->Add-->Save
Administration-->Users-->Admin-->Media-->Add,Type(send_mail),Send to(root@localhost)-->Add-->Save
设置报警声音:
右上角Profile-->Messaging标签,勾选Frontend messaging;
测试:
1、将test2的mysqld停掉,#service mysqld stop|start 2、在Monitoring-->Dashboard中查看System status、Host status、Last 20issues中的Actions
less /var/log/zabbixsrv/zabbix_server.log tail -f /var/log/maillog