六十四、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、新浪微博、京东等大公司在使用这款监控软件,值得研究。

nagios:更注重于某个监控的现在的状态,过去历史不关注。


二、zabbix介绍

C/S架构,基于C++开发,监控中心支持web界面配置和管理

单server节点可以支持上万台客户端

最新版本3.4,官方文档https://www.zabbix.com/manuals

5个组件

zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据,需要一个php的环境。

数据存储 存放数据,比如mysql,mariadb等。

web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因,没有它就不能在浏览器里去配置。

zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力

zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报

监控流程图

六十四、Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做_第1张图片

解析:

添加主机到监控中心,添加监控的项目,监控项目能和服务端通信了,就会采集数据到到数据库(mysql),数据采集过程可以是主动或被动,zabbix-server中心需要设置一个告警,zabbix需要配置告警的规则和机制,检测到数据不正常时告警的方式是发微信还是发邮件,都在server中心配置,存储的数据是可以用图形呈现出来的,最终是以web界面展现出来。


三、安装zabbix

官网下载地址 www.zabbix.com/download

zabbix可以yum安装,但是需要安装epel扩展源,epel扩展源里最高版本只能安装到2.2,所以我们使用官网提供的对应版本的yum源。

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

此时在/etc/yum.repos.d/里可以看到zabbix.repo的文件,这就是安装的rpm包的文件。

# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

zabbix-get:服务端上的一个工具,可以通过命令行模式获得客户端的某些监控项目的数据。

zabbix-server-mysql:和mysql相关的文件数据,在安装zabbix时要把这些数据导入进去的。

zabbix-web:web界面。

zabbix-web-mysql:web和mysql相关的东西。

这里会连带安装httpd和php。

如果mysql之前没有安装的话,需要根据lamp那一章的mysql安装方法安装mysql,检查mysql,把它启动起来。


# vim /etc/my.cnf //在mysqld下增加一行配置,意思是设置字符集,如果不设置,后面web界面的中文显示可能就会有问题

character_set_server = utf8

重启mysqld服务systemctl restart mysql

进入mysql命令行

创建zabbix库

create database zabbix character set utf8;     //指定字符集为utf8

再创建用户

grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';

//这个用户是需要让web代码连接mysql的, zabbix-server启动的前提也是需要能连接mysql的。

然后quit退出来。

导入数据

# cd /usr/share/doc/zabbix-server-mysql-3.2.11/

# gzip -d create.sql.gz

//解压完生成了create.sql文件

# mysql -uroot -p12345 zabbix < create.sql

# systemctl start zabbix-server

# systemctl enable zabbix-server

启动httpd之前要先检查一下你的nginx启动没有,需要停止,因为nginx监听了80端口,httpd需要监听80。/etc/init.d/nginx stop

# systemctl start httpd; systemctl enable httpd

# systemctl disable nginx

# chkconfig nginx off

错误:此时ps看到有进程,但是netstat没有监听zabbix的端口,说明这个zabbix没有启动起来,不能连接MySQL。开始排查:

日志:/var/log/zabbix/zabbix_server.log

# vim /etc/zabbix/zabbix_server.conf        //修改或增加

DBHost=127.0.0.1

     //在DBHost最后面一行增加,这里可以写127.0.0.1,也可以写localhost,创建用户时写的是127.0.0.1,所以这里也写这个;因为mysql装在了这台机器上,mysql在别的机器上就写那台机器的IP。

DBName和DBUser有需要的话也要定义,这里已经默认是zabbix,所以不改。

DBPassword=aming-zabbix         //在DBuser下面增加


# systemctl restart zabbix-server

# netstat -lntp |grep zabbix      //查看监听端口为10051

因为yum安装zabbix的时候,默认安装了httpd以及配置文件,全都配置好了,所以可以直接访问了

浏览器访问http://192.168.93.130/zabbix/       //web界面下面配置zabbix

点下一步,Next step

六十四、Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做_第2张图片

    右侧OK的就不用管,有一项是Fail,date.timezone。到PHP的配置文件里修改

# vim /etc/php.ini

搜索timezone

date.timezone = Asia/shanghai      //将这行填好,把前面的分号去掉

# systemctl restart httpd

再进浏览器刷新,变成OK了,下一步。

六十四、Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做_第3张图片

填好信息,端口0代表默认的3306,如果是其他就写其他的,

用户名zabbix,密码aming-zabbix

下一步,自定义一个zabbix server的name,下一步,检查确认无误再下一步。

出现:Congratulations! You have successfully installed Zabbix frontend.

意思是已经成功安装了zabbix前端。

然后下一步,出现登录界面,默认的用户名Admin 密码zabbix。

进入后台第一件事情就是修改密码

六十四、Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做_第4张图片

按照1,2,3的顺序点进去后再点击change password就可以修改密码了,然后修改语言为Chinese,改好点Update。再次登录时用新密码登录即可。

Zabbix客户端安装

在客户端上也需要下载zabbix的yum源

# 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

# yum install -y zabbix-agent

# vim  /etc/zabbix/zabbix_agentd.conf    //修改如下配置

Server=127.0.0.1修改为Server=192.168.93.130 //定义服务端的ip(被动模式)

ServerActive=127.0.0.1修改为ServerActive=192.168.93.130 //定义服务端的ip(主动模式)

被动模式:只能服务端从客户端上取数据。

主动模式:客户端主动上报把数据给服务端。

Hostname=Zabbix server修改为Hostname=yaowei-02 //这是自定义的主机名,一会还需要在web界面下设置同样的主机名

这两个IP都要写,原因在于这个客户端有可能用主动模式,有可能用被动模式

# systemctl start zabbix-agent

# systemctl enable zabbix-agent

# netstat -lntp |grep zabbix

看到端口是10050,服务端的是10051。


四、忘记Admin密码如何做

进入mysql命令行,选择zabbix库

# mysql -uroot -p

mysql> use zabbix     //切换到zabbix库

mysql> update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;

这样就更改了Admin用户的密码