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