zabbix部署
简介
- Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。
- 监控的原因是我们需要及时得知服务器是否正常运行,如果管理一两台服务器还好说,出问题马上就可以发现,但是如果管理上百台服务器,有些时候就分身乏术了,这个时候就需要一个这样的网络监控管理系统,zabbix无疑可以提高网站的可用性
- 高可用性,HA(High Available)有一个衡量的标准——x个9
1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天 2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天 3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。 4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。 5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。 6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒
- 监控的内容(就像电脑上面的鲁大师一样)
硬件 温度,硬盘
系统 cpu,内存,硬盘使用率等等
服务 apache,nginx等等
性能 服务器性能,数据库性能等
日志 访问日志,错误日志等等
安全 对不同类型攻击的统计
网络 端口,网络流量等等
安装
这里做实验用了两台centos的虚拟机,一台当作服务端,另一台当作客户端
服务端
- 安装zabbix源、aliyun YUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
- 安装zabbix
yum install -y zabbix-server-mysql zabbix-web-mysql
- 安装Mariadb数据库
yum install -y mariadb-server
- 启动Mariadb数据库
systemctl start mariadb.service
MariaDB数据库管理系统是MySQL的一个分支
- 创建数据库
mysql -e 'create database zabbix character set utf8 collate utf8_bin;' mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
- set utf8 设置数据库的默认编码为utf8
- collate utf_bin是 以二进制值比较,也就是区分大小写,collate是核对的意思
- uft-8_general_ci 一般比较,不区分大小写
- grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
- 当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
- 当数据库名称.表名称被.代替,表示赋予用户操作服务器上所有数据库所有表的权限.这里的zabbix.*表示的是zabbix数据库里面的所有表
- 用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接
- 连接口令不能为空,否则创建失败。
cd /usr/share/doc/zabbix-server-mysql-3.0.32
zcat create.sql.gz | mysql -uzabbix -pzabbix zabbix
- zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩
- mysql -u -p (用用户名和密码)登录到mysql
- 配置zabbix-server连接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
sed 的 -i 选项可以直接修改文件内容,a 动作是在匹配的行之后追加字符串,这里就是在115行后面新增DBPassword=zabbix
- 添加时区
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
- 解决中文乱码问题
yum -y install wqy-microhei-fonts \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
cp(英文全拼:copy file)命令主要用于复制文件或目录
- 关掉防火墙以及Linux的安全子系统
setenforce 0 systemctl stop firewalld
- 设置为开机自启动
chmod +x /etc/rc.d/rc.local cat >>/etc/rc.d/rc.local<<EOF systemctl start mariadb.service systemctl start httpd systemctl start zabbix-server EOF
rc.local开机自启动配置文件,这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次。
- 启动服务(如果做实验可以选择不设为开机自启动,这里没有开启数据库是因为之前已经打开了)
systemctl start httpd
systemctl start zabbix-server
- 输出信息
echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix"
- 这时候去访问给出的地址就会发现服务端已经安装好了
客户端
- 安装zabbix源、aliyun、YUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
- 安装zabbix客户端
yum install zabbix-agent -y
- 设置主服务器的IP,修改配置文件
/etc/zabbix/zabbix_agentd.conf
把
Server=127.0.0.1
ServerActive=127.0.0.1
改为
Server=192.168.31.249
ServerActive=192.168.31.249
- 启动服务
systemctl start zabbix-agent.service
- 写入为开机自启动(做实验可以不用)
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start zabbix-agent.service
EOF
检测连通性
- 服务端安装zabbit-get检测工具
yum install zabbix-get
- 在服务端进行测试
zabbix_get -s 192.168.31.162 -p 10050 -k "system.cpu.load[all,avg1]"
web界面操作
zabbix的web安装
- 检测信息
- 选择数据库
MySQL数据库嘛,所以我选的是3306端口,这里的密码是前面配置zabbixserver连接mysql时设置的
- abbix server details
host和port可以不用修改,名字自定义
- 确认信息
- 安装完成,点击finish
- 登录,默认用户名是Admin,密码是zabbix
添加监控信息
- 修改监控管理机
- 添加新的主机
可以选择添加一个模板
- 添加完成
查看监控内容
然后就会出现所有的监控项
查看图像
下图中的两个地方进行选择,然后就会出图
总结
上面只介绍了安装、配置以及最最最基础的使用方法。在查询资料的时候借鉴了部分博客园博主【惨绿少年】的文章内容,在此表示感谢并附上原文链接,里面还介绍了其他的功能和高级使用方法,如果想要深入学习的可以参考一下。