linux 监控平台介绍

常见的开源监控软件

cacti、nagios、zabbix、smokeping、open-falcon等等。 
cacti、smokeping偏向于基础监控,成图漂亮。 
cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态;zabbix会获取服务或者监控项目的数据从而可以成图,zabbix把数据记录到数据库里,支持历史数据查询,而且zabbix可以非常方便的自定义监控项目。 
open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究。 
本节学习以zabbix为例。

zabbix监控介绍

zabbix基于C++开发,是C/S(client/server)架构,即分为客户端和服务端,单个服务端节点可以支持上万台客户端。

五个组件

zabbix-server 
zabbix-server是整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、统计数据及操作数据都由它组织。

数据存储(如:mysql) 
监控过程中收集的所有信息都存储在这里

web界面 
web界面,web UI。这是zabbix监控简单易用的主要原,因为我们可以在web界面中配置、管理各个客户端。运行web界面需要有PHP环境支持。

zabbix-proxy 
zabbix-proxy为可选组件,用于监控节点非常多的分布式环境,它可以代理zabbix-server的功能,减轻zabbix-server的压力。(机器量很多的时候,可以使用)

zabbix-agent 
zabbix-agent为部署在各个客户端上的组件,用于采集各个监控项目的数据,并把采集的数据传输给zabbix-proxy或zabbix-server。

zabbix官方文档:https://www.zabbix.com/manuals

zabbix监控流程图:

这里写图片描述

安装zabbix(上)

准备两台机器,一台做服务端,一台做客户端。两台机器上后安装zabbix。在官网下载对应的版本(https://www.zabbix.com/download)。

下载zabbix的rpm包:

[root@shuai-01 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

下载完之后,安装下载的zabbix的rpm包

[root@shuai-02 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
警告:zabbix-release-3.2-1.el7.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-3.2-1.el7         ################################# [100%]

它实际上是安装了一个yum源仓库

这里写图片描述

有了源之后,就能直接yum安装zabbix

yum安装zabbix

[root@shuai-01 ~]# 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

在服务端:

安装mysql,之前有安装过,就不在安装了。

编辑MySQL的配置文件:

[root@shuai-01 ~]# vi /etc/my.cnf

增加配置:

character_set_server = utf8
#将字符集设置为中文

保存退出

启动MySQL:

[root@shuai-01 ~]# systemctl restart mysql

创建zabbix的数据库:

[root@shuai-01 ~]# mysql -uroot -p111111

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 '111111';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye

导入数据:

[root@shuai-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/

这里写图片描述

解压:

[root@shuai-01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz 
[root@shuai-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README

[root@shuai-01 zabbix-server-mysql-3.2.11]# mysql -uroot -p111111 zabbix < create.sql 
Warning: Using a password on the command line interface can be insecure

起动zabbix-server服务

[root@shuai-01 ~]# systemctl start zabbix-server

启动httpd服务,再启动httpd服务时,先看一下Nginx服务启动没有,Nginx服务启动,会占用80端口,这时httpd启动不了。

[root@shuai-01 ~]# systemctl start httpd

对zabbix, httpd 服务做开机启动

[root@shuai-01 ~]# systemctl enable zabbix-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@shuai-01 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

这时用ps查看状态,zabbix启动了,netstat查看端口,发现没有zabbix监听端口。

安装zabbix(中)

查看zabbix日志

[root@shuai-01 ~]# tail /var/log/zabbix/zabbix_server.log

  3584:20180131:204113.795 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

zabbix无法连接MySQL

解决方法:

修改配置文件

[root@shuai-01 ~]# vim /etc/zabbix/zabbix_server.conf 
搜索DBHost

# Default:
# DBHost=localhost
DBHost=127.0.0.1
这里写数据库的IP,本次实验由于zabbix和MySQL安装在一台机器上,写127.0.0.1

这里写图片描述

DBName=zabbix

这里写图片描述

DBUser=zabbix
DBPassword=111111

这里写图片描述

保存退出 
重启zabbix服务:

[root@shuai-01 ~]# systemctl restart zabbix-server

查看监听端口:

[root@shuai-01 ~]# netstat -lntp

正常情况,zabbix监听10051端口

配置web界面: 
在浏览器上配置

http://192.168.176.135/zabbix/setup.php 
这里写图片描述

点击下一步

这里写图片描述

是ok不用管,设置date.timezone

在PHP的配置文件中设置date.timezone

[root@shuai-01 ~]# vi /etc/php.ini 
找timezone
date.timezone =Asia/Shanghai

这里写图片描述

保存退出 
重启httpd服务

[root@shuai-01 ~]# systemctl restart httpd

刷新网页

下一步 
这里写图片描述

下一步 
这里写图片描述 
完成。

登录界面:

管理员:admin 
密码:zabbix

这里写图片描述
登录进去后,首先要更改密码

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述 
也可以把语言改成中文

这是zabbix的web监控界面

这里写图片描述

忘记admin密码如何做

更改MySQL数据库中的数据

进入MySQL:

[root@shuai-01 ~]# mysql -uroot -p111111

进入zabbix库

mysql> use zabbix

密码在users表中

mysql> update users set passwd=md5('111111') where alias='Admin';

这时就可以用新密码登录zabbix

安装zabbix(下)

客户端安装:

下载yum 源,安装yum源。

yum安装zabbix-agent

[root@shuai-02 ~]# yum install -y zabbix-agent

编辑配置文件:

[root@shuai-02 ~]# vi /etc/zabbix/zabbix_agentd.conf 

Server=192.168.176.135
#指定服务端的IP

这里写图片描述

ServerActive=192.168.176.135

这里写图片描述

Hostname=shuai-02
#参数用于设定客户端主机的名字,用于服务端添加监控服务,服务端监控是哪台主机的状态

这里写图片描述

保存退出 
启动zabbix-agent服务

[root@shuai-02 ~]# systemctl start zabbix-agent
监听端口10050
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐