一、 Linux监控平台介绍
二、 zabbix监控介绍
三、 安装zabbix
四、 忘记Admin密码如何做
五、 主动模式和被动模式
六、 添加监控主机
七、 添加自定义模板
八、 处理图形中的乱码
九、 自动发现
十、 添加自定义监控项目
十一、 配置邮件告警
十二、 测试告警
十三、 不发邮件的问题处理
十四、 扩展
一、 Linux监控平台介绍
常见开源监控方案有cacti、nagios、zabbix、smokeping、open-falcon等
cacti、smokeping偏向于基础监控,成图非常漂亮
cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图.
open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究。
二、 zabbix监控介绍
Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。
C/S架构,基于C++开发,监控中心支持web界面配置和管理,单server节点可以支持上万台客户端
最新版本3.4,官方文档https://www.zabbix.com/documentation/3.4/zh/manual
5个组件:
zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据;
数据库存储 存放数据,比如mysql;
web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因;
zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力;
zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报。
zabbix监控流程:
三、 安装zabbix
实验环境说明:
本实验需要两个虚拟机,一台作为Zabbix监控服务器,一台作为被监控的主机
#服务器与客户端最好关闭防火墙与SELINUX
需要预先安装epel扩展源和mysql服务,mysql如果未安装,需要按照之前lamp或者lnmp的方式安装
Zabbix服务器:
主机名:linux01(zabbix-server)
IP:192.168.239.128
Zabbix客户端:被监控的主机
主机名:zabbix-agent
IP:192.168.239.138
1. 准备安装Zabbix
这里使用yum安装的方式来安装Zabbix服务 ;yum扩展源里面的Zabbix服务版本比较老,所以需要先安装Zabbix官方的yum源
官网下载地址 www.zabbix.com/download
在zabbix服务器和客户端上都安装zabbix:
wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
2. 在zabbix服务器上yum安装Zabbix服务
[root@Linux01 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
# 这个会自动的安装Httpd服务和PHP服务,并且自动的配置好运行环境
3. zabbix服务器上数据库相关设置
①编辑mysql,将默认字符集设为utf8(目的是为了zabbix设为中文显示时避免显示异常)
vim /etc/my.cnf //需要增加配置
character_set_server = utf8
重启mysql:
[root@Linux01 ~]# systemctl restart mysql
②登录进入mysql命令行创建 zabbix 库和用户
[root@Linux01 ~]# mysql -uroot -p123456 //登录mysql库
mysql> create database zabbix character set utf8; //创建zabbix库,并定义默认字符集
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456'; //创建用户,设置密码
③导入zabbix初始化数据(安装时自带)
[root@Linux01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/ #注意版本号
[root@Linux01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz #解压初始化数据
[root@Linux01 zabbix-server-mysql-3.2.11]# mysql -uroot -p123456 zabbix < create.sql
#将解压出来的数据库脚本导入 zabbix 库中
4. 启动zabbix服务、httpd服务
①启动zabbix服务
[root@Linux01 ~]# systemctl start zabbix-server
②启动httpd服务
在启动前检查是否有其他服务占用80端口
[root@Linux01 ~]# ps aux|grep nginx
[root@Linux01 ~]# netstat -lntp|grep 80
关闭nginx服务并设为开机不自动启动
[root@Linux01 ~]# systemctl stop nginx
[root@Linux01 ~]# systemctl disable nginx
[root@Linux01 ~]# chkconfig nginx off
启动httpd服务:
[root@Linux01 ~]# systemctl start httpd
设为开机启动:
[root@Linux01 ~]# systemctl enable httpd
[root@Linux01 ~]# systemctl enable zabbix-server
检查服务是否正常启动:
[root@Linux01 ~]# ps aux|grep zabbix
[root@Linux01 ~]# netstat -lntp
发现zabbix进程在,但是未正常监控端口
[root@Linux01 ~]# less /var/log/zabbix/zabbix_server.log //查看日志,服务未正常启动,说明没有连接到mysql
修改zabbix配置文件
[root@Linux01 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1 //在DBName=zabbix上面增加
DBPassword=123456 //在DBuser下面增加
[root@Linux01 ~]# systemctl restart zabbix-server //重启zabbix服务
[root@Linux01 ~]# ps aux|grep zabbix
[root@Linux01 ~]# netstat -lntp