1. Linux监控平台介绍
常见的Linux监控平台有cacti、nagios、zabbix、smokeping、open-falcon等等
-
cacti、smokeping偏向于基础监控,成图非常漂亮
-
cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 ,这几款软件都有web操作界面
-
open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究
2. zabbix监控介绍
C/S架构(被监控的server需要安装监控软件,既可以主动连接客户端,也可以被动的让客户端推送自己的状态),基于C++开发,监控中心支持web界面配置和管理。
单server节点可以支持上万台客户端(可支持同时上万台的server监控,并发量高,如果超过一定的量,性能可能会降低,但是我们可以增加Proxy代理点来充当监控服务器来减轻压力)
2.1 5个组件
-
zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据。
-
数据存储 存放数据,比如mysql。
-
web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因。
-
zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力。
-
zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报
扫描二维码关注公众号,回复: 103568 查看本文章
2.2 zabbix监控流程图
3. 安装zabbix
3.1 准备工作
因为Zabbix的特性,需要2至少2台服务器,1台监控服务端,1台客户端,还需要PHP和Mysql的环境支持,还有自带的web UI,还需要httpd支持。
主机名 | IP地址 | 角色 |
---|---|---|
yt-04 | 192.168.2.134 | server |
yt-05 | 192.168.2.135 | cilent |
官网下载地址,系统自带yum源的2.2版本很老了,在此使用zabbix官方提供的对应版本的yum源安装较新版本的。
www.zabbix.com/download
我们先配置好服务端,再配置客户端。
3.2 server安装zabbix
安装zabbix之前需要先安装其yum源仓库
# 下载指定版本
[root@yt-04 src]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# 安装zabbix的yum扩展源
[root@yt-04 src]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
# 安装zabbix及其组件
[root@yt-04 src]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
# zabbix-agent是客户端程序
# zabbix-get是服务端上命令行获取客户端检测项目的组件
# zabbix-server-mysql是zabbix-server MySQL组件
# zabbix-web是web界面组件
# zabbix-web-mysql:web界面MySQL相关组件
# 该过程会顺带安装上PHP和httpd服务。
3.3 安装和配置MySQL
安装MySQL
安装mysql可以使用两种方法:1. yum安装 2.编译mysql安装,可参考之前LAMP安装的过程 这里选择直接yum安装
[root@yt-04 src]# yum install -y mysql mysql-server mysql-devel
[root@yt-04 src]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
ls -1 /etc/yum.repos.d/mysql-community*
yum install mysql-server
[root@yt-04 src]# systemctl start mysqld
[root@yt-04 src]# ps aux | grep mysql
配置MySQL
[root@yt-04 src]# vim /etc/my.cnf
# 需要增加配置。设置默认字符集的目的是让web UI可以正常的用中文显示。
character_set_server = utf8
# 重启mysqld服务
[root@yt-04 src]# /etc/init.d/mysqld restart
#进入mysql,创建zabbix库(类似安装wordpress,zabbix的web UI就是一个php写的监控网站)
[root@yt-04 ~]# mysql -uroot -p123456
mysql> create database zabbix character set utf8;
#创建库并指定其字符集
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456';
# 允许账户zabbix能从本机连接到数据库zabbix
Query OK, 0 rows affected (0.00 sec)
mysql> quit
3.4 导入zabbix自带的数据库
# 进入zabbix自带的数据库目录
[root@yt-04 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@yt-04 zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
# 解压create.sql.gz包,导入到新建的zabbix库
[root@zhdy-04 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz
[root@z1 zabbix-server-mysql-3.2.11]# mysql -uroot -p123456 zabbix < create.sql
3.5 启动zabbix服务
# 启动zabbix服务
[root@yt-04 zabbix-server-mysql-3.2.11]# systemctl start zabbix-server
# 启动http服务(如果之前有配置nginx,或者tomcat(配置了80端口)服务一定要先停掉。不然启动httpd会报错)
[root@yt-04 zabbix-server-mysql-3.2.11]# systemctl start httpd.service
[root@yt-04 zabbix-server-mysql-3.2.11]# netstat -lntp |grep httpd
tcp6 0 0 :::80 :::* LISTEN 2370/httpd
# 把zabbix、http等服务设置开机启动
[root@yt-04 ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@yt-04 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
3.6 查看zabbix的日志
[root@yt-04 ~]# less /var/log/zabbix/zabbix_server.log
3.7 配置zabbix
[root@yt-04 ~]# vim /etc/zabbix/zabbix_server.conf
# 更改配置文件
DBHost=127.0.0.1
# 此处写的是本机MySQL的IP,实际生产环境中zabbix可能单独使用一台机器,则要填实际IP地址
# 该IP应该和数据库授权时指定的IP一致
DBname=zabbix
DBUser=zabbix
DBPassword=123456
# 更改完成后,重启zabbix服务
[root@z1 ~]# systemctl restart zabbix-server.service
# 启动完成后查看其状态
[root@z1 ~]# ps aux |grep zabbix
netstat -lntp |grep zabbix
服务端zabbix默认监听10051端口
3.8 安装和配置zabbix web界面
使用浏览器访问server机器上的IP:192.168.2.134/zabbix
进入安装引导界面,进行该操作前保证server已关闭防火墙。
点击“Next step”进入检测界面
错误: 此处有错误提示,意识是PHP无法识别“data.timezone”(时区)
解决办法:编辑PHP配置文件,更改时区
# 修改时区
[root@yt-04 ~]# vim /etc/php.ini
date.timezone =Asia/Shanghai
# 重启httpd服务
[root@yt-05 ~]# systemctl restart httpd.service
浏览器刷新,问题解决!然后,继续点击“Next step”,配置数据库信息
点击“Next step”,设置服务器用户名(自定义)
继续点击“Next step”,至出现提示界面
已经安装完成!
# 切记:配置好了之后,第一件事情
# 更改密码!更改密码!更改密码!
# Administration→Users→Admin→Change password
# 并且在修改密码下,可以更改web界面为中文。
4. zabbix客户端配置
4.1 安装Zabbix客户端
# 下载指定版本
[root@yt-05 ~]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# 安装zabbix的yum扩展源
[root@yt-05 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
# client端仅仅只需要安装服务
[root@yt-05 ~]# yum install -y zabbix-agent
# 配置mysql
(略)
4.2 配置zabbix
[root@yt-05 ~]# vim /etc/zabbix/zabbix_agentd.conf
# 增加如下配置
Server=192.168.2.134
#定义监控服务端的ip
ServerActive=192.168.2.134
#定义监控服务端的ip,不过该参数决定了监控的 主/被动模式
#如果只有参数Server,则采用被动模式(只能等待服务端来采集信息)
#设置此参数,则为主动模式(客户端主动向服务端发送信息)
Hostname=yt-05
#定义客户端主机名字,只是便于服务端识别,不参与实际的控制
# 启动zabbix服务
[root@yt-05 ~]# systemctl start zabbix-agent.service
# 查看进程是否运行
[root@yt-05 ~]# ps aux | grep zabbix
# 查看监控的端口,默认端口是10050
[root@yt-05 ~]# netstat -lntp
# 设置为开机运行
[root@yt-05 ~]# systemctl enable zabbix-agent
5. 忘记Admin密码如何做
修改zabbix的管理员密码(web界面)这个和修改wordpress以及修改mysql自身登录密码是类似的,直接在数据库内选中数据库选中user表进行修改。
[root@yt-04 ~]# mysql -uroot
# 切换到zabbix库
> show databases;
> use zabbix;
> show tabales;
> desc users;
# 更改密码
mysql> update users set passwd=md5('123456') where alias='Admin';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> quit
这样就成功修改了zabbix管理web的登录密码为123456!