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)架构,即分为客户端和服务端,单个服务端节点可以支持上万台客户端,监控中心支持web UI(web界面)配置和管理。
查看zabbix官方文档:https://www.zabbix.com/manuals 是学习zabbix的最好途径。
zabbix组件
zabbix整个体系架构中有以下5个主要角色:
zabbix-server
zabbix-server是整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、统计数据及操作数据都由它组织。
数据存储(如:mysql)
监控过程中收集的所有信息都存储在这里。
web界面
web界面,即GUI。这是zabbix监控简单易用的原因之一,因为我们可以在web界面中配置、管理各个客户端。运行web界面需要有PHP环境支持。
zabbix-proxy
zabbix-proxy为可选组件,用于监控节点非常多的分布式环境,它可以代理zabbix-server的功能,减轻zabbix-server的压力。
zabbix-agent
zabbix-agent为部署在各个客户端上的组件,用于采集各个监控项目的数据,并把采集的数据传输给zabbix-proxy或zabbix-server。
监控流程
安装zabbix
准备工作
两台机器:
server(IP:192.168.3.74)
client(IP:192.168.3.75)
1、下载zabbix的yum源仓库:
[root@centos7 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
2、[root@centos7 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
3、安装zabbix及其组件:
[root@centos7 ~]# 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和http。
4、配置mysql
[root@centos7 ~]# vi /etc/my.cnf
[mysqld]
character_set_server = utf8 #显示web中文,不会乱码
5、重启mysql
[root@centos7 ~]# /etc/init.d/mysqld restart
6、连接mysql创建数据库
[root@centos7 ~]# mysql -uroot -p123456
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix. to 'zabbix'@'127.0.0.1' identified by '123456';
mysql> quit
7、导入数据库
[root@centos7 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.10/
[root@centos7 zabbix-server-mysql-3.2.10]# gzip -d create.sql.gz
[root@centos7 zabbix-server-mysql-3.2.10]# mysql -uroot -p123456 zabbix < create.sql
8、更改zabbix配置文件
[root@centos7 zabbix-server-mysql-3.2.10]# vim /etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1
#该IP应该和数据库授权时指定的IP一致,来源IP;grant all on zabbix. to 'zabbix'@'127.0.0.1' identified by '123456';
DBName=zabbix
DBUser=zabbix
DBPassword=123456
9、启动zabbix-server、httpd服务
[root@centos7 zabbix-server-mysql-3.2.10]# systemctl start zabbix-server
[root@centos7 zabbix-server-mysql-3.2.10]# systemctl start httpd.service
配置web界面
1、访问http://192.168.3.74/zabbix
2、设置时区
[root@centos7 ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
3、重启httpd服务
[root@centos7 ~]# systemctl restart httpd.service
4、刷新下一步
5、默认用户名:Admin 密码:zabbix
6、更改Admin密码
忘记Admin密码如何做
[root@centos7 ~]# mysql -uroot -p123456
mysql> use zabbix;
mysql> update users set passwd=md5('admin') where alias='Admin';
mysql> quit
zabbix客户端配置
[root@centos7-2 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@centos7-2 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
[root@centos7-2 ~]# yum install -y zabbix-agent
[root@centos7-2 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.3.74
#指定服务端主机IP(设置客户端的监控主机白名单)
ServerActive=192.168.3.74
#该参数决定监控的主动/被动模式
#如果只改参数Server,则只能采用被动模式(只能等待服务端来采集信息)
#主动模式:客户端主动向服务端发送信息
Hostname=jacker-02
#该参数用于设定客户端主机的名字,用于服务端添加监控服务
#如果服务端所监控的机器和其Hostname不一致,服务端将无法识别该机器
#因为zabbix是通过IP进行监控的,该参数不会对监控造成太大影响
#加上该参数有利于更好的辨别服务端监控是哪台主机的状态
启动:
systemctl start zabbix-agent.service
[root@centos7-2 ~]# netstat -nutlp| grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2659/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 2659/zabbix_agentd
启动成功