zabbix 监控类型:硬件、软件、业务指标数据采集通道:ssh、agent、snmp、telnet、IPMI监控工具:cacti、nagios、zabbix、ganglia 特性数据采样:snmp、ssh\telnet、agent、ipmi,jmx自定义检测机制:UserParamenter自定义指定时间间隔实时绘图展示:graph、map、screen、slide show告警:自定义脚本、notiflcation存储:mysql、pgsql支持模板支持网络自动发现支持API二次开发分布式监控(server<-->proxy<-->agent) Zabbix程序构成zabbix_server:服务端守护进程;zabbix_agentd:agent端守护进行;zabbix_get:命令行工具,通常用于server端手动测试采集数据;zabbix_sender:命令行工具,通常用于agent端手动发送数据;zabbix_proxy:代理服务器,可选组件;zabbix_java_gateway:java网关,用于监控jvm相关的信息; YUM安装1、创建数据库MariaDB [(none)]> create database zabbix CHARSET utf8;MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';MariaDB [(none)]> flush privileges;2、安装server端[root@node1 ~]# yum install -y zabbix40 zabbix40-dbfiles-mysql zabbix40-server3、导入数据[root@node1 ~]# mysql zabbix < /usr/share/zabbix-mysql/schema.sql[root@node1 ~]# mysql zabbix < /usr/share/zabbix-mysql/images.sql[root@node1 ~]# mysql zabbix < /usr/share/zabbix-mysql/data.sql4、配置文件[root@node1 etc]# grep '^[^#]' zabbix_server.confLogFile=/var/log/zabbixsrv/zabbix_server.logLogFileSize=0PidFile=/run/zabbixsrv/zabbix_server.pidSocketDir=/var/lib/zabbixsrv/tmpDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=zabbixTimeout=4AlertScriptsPath=/var/lib/zabbixsrv/alertscriptsExternalScripts=/var/lib/zabbixsrv/externalscriptsLogSlowQueries=3000TmpDir=/var/lib/zabbixsrv/tmpSSLCertLocation=/var/lib/zabbixsrv/ssl/certsSSLKeyLocation=/var/lib/zabbixsrv/ssl/keys4、安装LAMP环境[root@node1 ~]# yum install -y php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml5、安装web GUI[root@node1 ~]# yum install -y zabbix40-web zabbix40-web-mysql # 会自动在/etc/conf.d下面创建zabbix.conf访问入口http://172.16.1.2/zabbix/setup.php默认账号密码是admin/zabbix6、安装zabbix-agent[root@node1 ~]# yum install -y zabbix40-agent7、agent配置Server=127.0.0.1:被动监控指明允许哪个服务端过来采样;ListenPort=10050:服务端要过来采样那么就需要监听在地址;StartAgents=3:相应监控端发送监控请求的线程;ServerActive=127.0.0.1:主动监控服务端的IP;Hostname=node1:要给服务端报告信息得告诉服务端自己是谁;RefreshActiveChecks=120:多长时间刷新监控; 安装# 安装所需要的组件[root@node1 ~]# yum install httpd mariadb mariadb-server php php-mysql php-devel php-xml php-bcmath php-mbstring php-gd wget expect net-snmp gcc mysql-devel libxml2-devel net-snmp-devel libevent-devel curl-devel -y# 创建运行用户[root@node1 ~]# groupadd --system zabbix[root@node1 ~]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c 'Zabbix Monitoring System' zabbix# 编译安装[root@node1 zabbix-4.0.12]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2[root@node1 zabbix-4.0.12]# make -j 4[root@node1 zabbix-4.0.12]# make install[root@node1 ~]# chown zabbix:zabbix /usr/local/zabbix/ -R# 创建初始化数据[root@node1 ~]# mysql -uroot -e 'create database zabbix character set utf8 collate utf8_bin;'[root@node1 ~]# mysql -uroot -e 'grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';'[root@node1 ~]# mysql -uroot -e 'flush privileges;'[root@node1 ~]# mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-4.0.12/database/mysql/schema.sql[root@node1 ~]# mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-4.0.12/database/mysql/images.sql[root@node1 ~]# mysql -uzabbix -pzabbix zabbix < /usr/local/src/zabbix-4.0.12/database/mysql/data.sql# server基础配置[root@node1 ~]# grep '^[^#]' /usr/local/zabbix/etc/zabbix_server.confLogFile=/tmp/zabbix_server.logDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=zabbixTimeout=4LogSlowQueries=3000# 配置server和agent启动脚本[root@node1 ~]# cp /usr/local/src/zabbix-4.0.12/misc/init.d/fedora/core/zabbix_server /etc/init.d/[root@node1 ~]# cp /usr/local/src/zabbix-4.0.12/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/# 配置前端[root@node1 ~]# cp -r /usr/local/src/zabbix-4.0.12/frontends/php/* /var/www/html/[root@node1 ~]# chown apache:apache /var/www/html -R# 配置中文[root@node1 ~]# mv simkai.ttf /var/www/html/assets/fonts/[root@node1 ~]# cat -n /var/www/html/include/defines.inc.php|grep 'simkai'71 define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name112 define('ZBX_FONT_NAME', 'simkai'); 快速配置一个监控项主机组->主机->应用->监控项->触发器(生成事件)->注册操作 自定义监控自定义监控示例# 编写agent端监控脚本[root@node2 ]# cat /data/scripts/hostname.sh case $1 incce) echo $HOSTNAME;;esac# 加入监控项[root@node2 ]# grep '^Include' zabbix_agentd.confInclude=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf[root@node2 ]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix.conf UserParameter=hostname[*],/data/scripts/hostname.sh $1# [*]:表示接受传过来的所有参数# 在server端测试监控[root@node1 ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.1.3 -k 'hostname[cce]'node2.cce.com
因为zabbix的actions可以有步骤的触发相应的事件,那么我们就可以利用这个特点来做当首次触发的时候我们可以执行远程命令,第二次触发的时候可以发送邮件脚本,第三次触发的时候我们可以利用python调用阿里云的电话接口给相应的技术人员打电话,这两个通知的事件通过用户组的组名来区别; 注意点:在创建新的用户的时候,创建的新用户需要加入组,并且组的权限要对所有群组至少有读的权限,否则该用户将无法接收到报警信息 |
|