zabbix

简述

zabbix是一种开源的,能够监视各种网络参数以保证服务器正常运行的监控工具。zabbix具有灵活的通知机制,可以帮助管理者快速确定问题出在哪,并且zabbix可以提供分布式系统监控,使得大量主机的集成监控也成为了可能。
zabbix相当于cacti和nagios的集合,它集两款工具的优势于一身,在开源软件中,zabbix可以称得上最好用的监控工具了。
zabbix的agent端被安装在需要监控的主机上,它定时收集各种数据并发送到server端,server端将数据存储在数据库中,httpd则将数据在前端展示为报表和图表供管理人员查看。

组件
zabbix server负责接收agent发送的数据,是zabbix的核心组件。zabbix配置,数据统计均在此进行
database storage存储zabbix配置信息和收集到的数据
web interfacezabbix的GUI接口,通常会与server运行在一台主机上
proxy用于部署分布式监控环境,作为server端的代理接收agent来的数据
agent部署在需要监控的主机上,收集本机的数据

部署zabbix server

下载所需软件

yum -y install MariaDB zabbix-server-mysql zabbix-web-mysql zabbix-agent
systemctl enable mariadb
systemctl restart mariadb

登录mariadb

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '123';

修改mariadb配置文件/etc/my.cnf.d/server.cnf并重启mariadb

[mysqld]
innodb_strict_mode = 0

修改server组件的配置文件/etc/zabbix/zabbix_server.conf
添加用户zabbix的数据库登录密码
修改web组件的配置文件/etc/httpd/conf.d/zabbix.conf
把时区修改为上海

DBPassword=123
php_value date.timezone Asia/Shanghai

导入zabbix数据库需要的表和数据

zcat /usr/share/doc/zabbix-server-mysql-4.0.12/create.sql.gz | mysql -uzabbix -p123 zabbix

开启防火墙,重启服务

firewall-cmd --add-port=10050/tcp
firewall-cmd --add-port=10051/tcp
firewall-cmd --add-port=10050/tcp --permanent
firewall-cmd --add-port=10051/tcp --permanent
systemctl enable zabbix-server zabbix-agent httpd
systemctl restart zabbix-server zabbix-agent httpd

当使用zabbix的中文界面时经常会出现乱码,这时需要找一个中文字体文件放到zabbix的字体目录下替换原有的字体文件

cp simsun.ttc /usr/share/zabbix/fonts
mv graphfont.ttf graphfont.ttf.bak
mv simsun.ttc graphfont.ttf

部署zabbix agent

agent端只需安装agent组件

yum -y install zabbix-agent

修改agent组件的配置文件/etc/zabbix/zabbix_agentd.conf

Server=192.168.10.101
ServerActive=192.168.10.101
Hostname=192.168.10.102

关闭防火墙,重启服务

firewall-cmd --add-port=10050/tcp
firewall-cmd --add-port=10050/tcp --permanent
systemctl enable zabbix-agent
systemctl restart zabbix-agent

部署zabbix proxy

下载所需软件

yum -y install MariaDB zabbix-proxy

修改proxy的配置文件/etc/zabbix/zabbix_proxy.conf

Server=192.168.10.101
Hostname=proxy1
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123	

创建数据库和用户zabbix

create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@localhost identified by '123';

导入数据库需要的表和数据

zcat /usr/share/doc/zabbix-proxy-mysql-4.0.12/schema.sql.gz | mysql -uzabbix -p123 zabbix_proxy

开启防火墙,重启服务

firewall-cmd --add-port=10051/tcp
firewall-cmd --add-port=10051/tcp --permanent
systemctl enable zabbix-proxy
systemctl restart zabbix-proxy

自定义监控

创建一个自定义监控脚本的存放目录
	mkdir /zabbix
修改属主属组为zabbix
	chown -R zabbix.zabbix /zabbix
修改客户端配置文件
	cat >> /etc/zabbix_agentd.conf <<EOF
	UnsafeUserParameters=1
	UserParameter=<key_name>,  <shell command>
	EOF
重启zabbix
	systemctl restart zabbix-agent

这个UserParameter后面加的是类似键值对的数据,键可以随便写,值要写执行的命令或脚本

举几个例子

检测mysql状态
	UserParameter=mysql.status, mysqladmin -uroot -p123456 ping | grep alive
检测网站连通性
	UserParameter=curl.hsadmin,curl -i -s www.baidu.com| grep HTTP | grep 200 | wc -l
	UserParameter=curl.hsapi,curl -i -s www.baidu.com| grep HTTP | grep 404 | wc -l
	UserParameter=curl.jpush,curl -kis 'www.baidu.com' -X POST -d ''|grep HTTP |grep 401 | wc -l
检测nginx服务状态
	cat >> /etc/zabbix_agentd.conf <<EOF
	UnsafeUserParameters=1   
	UserParameter=ps_nginx,/bin/bash /zabbix/ps_nginx.sh
	EOF
	cat >> /zabbix/ps_nginx.sh <<EOF
	#!/bin/bash
	failed=`systemctl status nginx |grep failed`
	error=`systemctl status nginx |grep error`
	if [ -n $failed ] || [ -n $error ]
	do
	echo '你Apache炸了'|mail -s "报警" ********@163.com
	done
	EOF
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值