19.1 Linux监控平台介绍
19.2 zabbix监控介绍
19.3/19.4/19.6 安装zabbix
19.5 忘记Admin密码如何做
19.1 Linux监控平台介绍
监控
对于网站来说是非常重要,即使是大公司由于监控做得不到位,最终会导致因为服务器的不够稳定,客户对其不够信任,而流失大量客户。
通常监控软件有下面几款,cacti
、nagios
、zabbix
、smokeping
、open-falcon
等等。
cacti、smokeping偏向于基础监控
(网络设备),成图非常漂亮,更加适合在IDC机房使用。
其中nagios和zabbix流行度比较高。几年前还是使用nagios,而近几年zabbix越来越受到欢迎。主要是因为zabbix配置比nagios简单得多,其优势也比nagios多。
open-falcon
为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,他是基于zabbix的监控思想
而开发的,非常值得研究。
cacti、nagios、zabbix服务端监控中心,即支持web页面来监控网站,因此需要php环境
支持,其中zabbix和cacti都需要mysql
作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图。
总之,安装zabbix
时要先安装好MySQL
,其中PHP
和httpd
会自带安装
上,后续以介绍zabbix为主。
19.2 zabbix监控介绍
zabbix采用的是C/S
架构,其中客户端用来采集数据,在上报给服务端。zabbix基于C++开发,监控中心支持web界面配置和管理。理论上单server节点可以支持上万台客户端。但如果监控的项目太多了,可以使用代理zabbix-proxy
来采集数据,再让他来上报给监控中心。其最新版本3.4,官方中文文档在 https://www.zabbix.com/manuals 方便学习配置zabbix
- zabbix有服务5个组件
zabbix-server
监控中心,接收客户端上报信息,负责配置、统计、操作数据数据存储
存放数据,比如mysqlweb界面
也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因zabbix-proxy
可选组件,它可以代替zabbix-server的功能,减轻server的压力zabbix-agent
客户端软件,负责采集各个监控服务或项目的数据并上报。分主动模式和被动模式
zabbix工作流程
使用web页面来添加监控主机到监控中心,然后再对其配置监控项目。被监控的服务器和监控中心通讯了,监控中心就会采集数据并存入到数据库中。监控中心就会对采集的数据值进行判断是否超多告警的规则,并进行告警。
19.3/19.4 安装zabbix
准备两台机器,一台服务端 一台客户端
服务端:kun05 192.168.80.104
客户端:kun03 192.168.80.102
配置服务端
由于epel中的zabbix版本比较久,因此我们自己去官网上下载好zabbix的仓库 并安装他们
官网下载地址 www.zabbix.com/download
找到对应的版本
根据官方的提示来复制下面的路径到服务端上
步骤
1.下载官方给出的epel源包并安装1
2[root@kun05 ~]# wget https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@kun05 ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
在/etc/yum.repos.d/
中就会多了个仓库zabbix.repo
该仓库可以指定下载对应的zabbix版本1
2
3
4
5
6
7
8
9
10
11
12
13
14[root@kun05 ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
2.分别安装zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
1 | [root@kun05 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql |
zabbix-agent
zabbix客户端软件zabbix-get
zabbix服务端上工具 ,可以获得客户端上监控项目的数据zabbix-server-mysql
zabbix监控中心所需的对应MySQL数据(用于导入数据到自建的zabbix库中)zabbix-web
web界面zabbix-web-mysql
web界面和MySQL的相关的数据
服务端上才需要安装以上的包 客户端只要安装zabbix-agent
即可,此过程是自带安装httpd
和php
的1
2
3
4
5
6
7
8
9
10
11作为依赖被安装:
httpd.x86_64 0:2.4.6-80.el7.centos.1 httpd-tools.x86_64 0:2.4.6-80.el7.centos.1
iksemel.x86_64 0:1.4-6.el7 libevent.x86_64 0:2.0.21-4.el7
libzip.x86_64 0:0.10.1-8.el7 mailcap.noarch 0:2.1.41-2.el7
nettle.x86_64 0:2.7.1-8.el7 php.x86_64 0:5.4.16-45.el7
php-bcmath.x86_64 0:5.4.16-45.el7 php-cli.x86_64 0:5.4.16-45.el7
php-common.x86_64 0:5.4.16-45.el7 php-gd.x86_64 0:5.4.16-45.el7
php-ldap.x86_64 0:5.4.16-45.el7 php-mbstring.x86_64 0:5.4.16-45.el7
php-mysql.x86_64 0:5.4.16-45.el7 php-pdo.x86_64 0:5.4.16-45.el7
php-xml.x86_64 0:5.4.16-45.el7 t1lib.x86_64 0:5.1.2-14.el7
trousers.x86_64 0:0.3.14-2.el7 unixODBC.x86_64 0:2.3.1-11.el7
3.安装MySQL
由于以前已经安装过这里就不详细说明安装过程
查看是否启动MySQL1
2
3
4[root@kun05 ~]# ps aux |grep mysql
root 904 0.0 0.1 115388 1704 ? S 06:29 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data --pid-file=/data/kun05.pid
mysql 1110 0.2 45.0 1300780 454052 ? Sl 06:29 0:06 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/kun05.err --pid-file=/data/kun05.pid --socket=/tmp/mysql.sock
root 1493 0.0 0.0 112676 980 pts/0 R+ 07:13 0:00 grep --color=auto mysql
4.编辑MySQL的配置文件添加中文所要的字符集并重启服务
1 | [root@kun05 ~]# vim /etc/my.cnf |
character_set_server=utf8
指定MySQL的字符集为utf8 用于在web中正确显示中文
5.进入MySQL 创建zabbix所需要的库,用户
1 | [root@kun05 ~]# mysql -uroot -p38003800 |
创建库需要指定字符集为utf81
mysql> create database zabbix character set utf8;
1 | mysql> grant all on zabbix.* to'zabbix'@'127.0.0.1' identified by '38003800'; |
ip为用户zabbix的来源ip
但数据库的zabbix server不在同一台机器上时候,要填zabbix server的IP地址
6.导入zabbix-server-mysql的数据到zabbix库中
1 | [root@kun05 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.11/ |
解压create.sql.gz包1
[root@kun05 zabbix-server-mysql-3.4.11]# gzip -d create.sql.gz
导入数据1
[root@kun05 zabbix-server-mysql-3.4.11]# mysql -uroot -p38003800 zabbix < create.sql
7.启动httpd服务
由于之前已经安装过Nginx,先关闭他1
2
3
4
5[root@kun05 ~]# systemctl stop nginx
[root@kun05 ~]# systemctl disable nginx
[root@kun05 ~]# systemctl start httpd
[root@kun05 ~]# systemctl enable httpd
8.更改zabbix server的配置文件
1 | [root@kun05 zabbix]# vim /etc/zabbix/zabbix_server.conf |
修改下面参数1
DBHost=127.0.0.1 ##指定数据的IP地址
在DBUser下面定义密码1
2DBUser=zabbix
DBPassword=38003800
这些配置内容和添加的MySQL用户zabbi的信息要一致
9.启动zabbix server服务
1 | [root@kun05 zabbix]# systemctl start zabbix-server |
10.查看zabbix server是否监听端口
1 | [root@kun05 zabbix]# netstat -lntp |grep zabbix |
zabbix_server
默认监听10051
端口
当启动不了或者不监听端口可以查看日志 路径是/var/log/zabbix/zabbix_server.log
11.配置web界面
浏览器上输入192.168.80.104/zabbix
这里是PHP缺少了配置timezone
回去服务端找到/etc/php.ini
并配置timezone1
2
3[root@kun05 zabbix]# vim /etc/php.ini
date.timezone =Asia/Shanghai
重启httpd服务1
[root@kun05 zabbix]# systemctl restart httpd
再回去继续下一步
填好数据库相关的用户 库 密码等信息
填写zabbix server名字
添加成功
填写用户名和密码 默认用户名Admin
密码zabbix
更改为自己的密码和语言 选择 Administration
— Users
— Admin
用户 —Change password
和Langueage
修改成功
19.5 忘记zabbix Admin密码
由于zabbix server的用户的数据是存放在MySQL中 因此只要修改MySQL的中zabbix用户的密码即可
步骤
1.进入MySQL中的zabbix库中查看到users表
1 | [root@kun05 zabbix]# mysql -uroot -p38003800 |
2.修改user表的Admin的密码
1 | mysql> update users set passwd=md5('111111') where alias= 'Admin'; |
passwd=md5('111111')
使用md5加密 新密码为111111
19.6 安装zabbix
配置客户端
步骤
1.下载官方给出的epel源包并安装
1 | [root@kun03 ~]# wget https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm |
2.安装zabbix-agent
1 | [root@kun03 ~]# yum install -y zabbix-agent |
3.修改zabbix agent的配置文件
1 | [root@kun03 ~]# vim /etc/zabbix/zabbix_agentd.conf |
修改下面参数1
2
3
4
5Server=192.168.80.104
ServerActive=192.168.80.104
Hostname=kun03
Server
指定zabbix server的IP地址 ServerActive
开启server agent主动模式 不填默认为被动模式 Hostname
指定客户端的主机名 以便分辨
4.启动zabbix agent服务
1 | [root@kun03 ~]# systemctl start zabbix-agent |
5.查看是否监听端口
1 | [root@kun03 ~]# netstat -lntp |grep zabbix |
zabbix_agent
默认是监听10050
端口