linux监控平台介绍
常见开源监控软件:cacti,nagios,zabbix,smokeping,open-falcon等等
cacti,smokeping偏向于基础监控,成图非常漂亮
cacti,nagios,zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti需要MySQL作为数据储存,
agios不用存储历史数据,他注重服务或监控项的状态
zabbix会获取服务或者监控项目的数据,会把数据记录到数据库中,从而可以成图
open-falcon是小米公司开发的,开源后收到诸多大公司和运维工程师的追捧,适合大企业,滴滴,360,新郎微博,京东等大公司,这款监控软件,值得研究
一、zabbix监控介绍
C/S架构,基于C++开发,监控中心需要PHP环境,支持web界面配置和管理
一台server节点可以支持上万台客户端,瓶颈在于采集数据的量的多少
zabbix更新速度还是较快的,说明他用户量大
zabbix包括了5个组件
zabbix-server监控中心:接受客户端上报信息,负责配置,统计,操作数据
数据存储:存放数据,比如MySQL
web界面:也叫web UI ,在web界面下操作配置是zabbix简单易用的主要原因
zabbix-proxy :可选组件,它可以代替zabbix-server的功能,减轻server的压力
zabbix-agent:客户端软件,负责采集各个监控服务或项目的数据,并上报
zabbix监控流程图
二、安装zabbix,
准备两台主机:
zabbix服务端:192.168.100.101
zabbix客户端:192.168.100.100
我们epl的yum仓库里存放的zabbix的版本较低,所以我们先搭建一个zabbix的yum仓库,服务端和客户端上都要做这个步骤。
[root@zhuji ~]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@zhuji ~]# 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%]
[root@zhuji ~]# ll /etc/yum.repos.d/zabbix.repo
-rw-r--r-- 1 root root 410 9月 14 2016 /etc/yum.repos.d/zabbix.repo
二、yum安装zabbix
服务端:
[root@zhuji ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
zabbix-agent:zabbix客户端软件
zabbix-get:服务端的一个应用工具,通过命令行的形式,获得客户端的某些监控项目数据
zabbix-server-mysql:一些和mysql相关的文件
zabbix-web:web界面
zabbix-web-mysql:web还要和mysql打交道,一些MySQL和web的文件
server:
[root@congji ~]# yum install -y zabbix-agent
客户端只需要安装zabbix-agent就可以了
两台机子如果MySQL没有安装,参照之前lamp章节的安装
三、两台机子都要启动MySQL.修改MySQL的配置文件并重新启动MySQL。
[root@congji ~]# vim /etc/my.cnf
character_set_server = utf8 (设置字符级,不设置的话,web界面设置中文可能会出现乱码)
[root@congji ~]# systemctl restart mysql
四、在服务端的MySQL上创建zabbix的库和用户,用户是需要php代码连接mysql。
[root@zhuji mysql]# mysql -uroot -paminglinux
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';
五、导入一些原始的数据,没有这些数据,zabbix没办法工作。
[root@zhuji mysql]# cd /usr/share/doc/zabbix-server-mysql-***
[root@zhuji zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@zhuji zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz (解压gz文件)
[root@zhuji zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql NEWS README
[root@zhuji zabbix-server-mysql-3.2.11]# mysql -uroot -paminglinux zabbix < create.sql
六、启动zabbix和httpd服务,再启动httpd前,先看一下有没有启动nginx服务
[root@zhuji ~]# ps aux |grep nginx
root 3590 0.0 0.0 112680 976 pts/0 R+ 18:04 0:00 grep --color=auto nginx
[root@zhuji ~]# systemctl start zabbix-server
[root@zhuji ~]# systemctl start httpd
[root@zhuji ~]# systemctl enable httpd
[root@zhuji ~]# systemctl enable zabbix-server
七、我们启动了zabbix,用ps发现进程在,但是用natstat查看,没有zabbix的端口,是因为没有连接MySQL,需要配置zabbix的配置文件
[root@zhuji ~]# ll /var/log/zabbix/zabbix_server.log (这是zabbix的日志文件)
# DBHost=localhost
DBHost=127.0.0.1 (搜索DBHost,指定数据库所在机器的IP,不是创建用户时的来源ip)
默认DBname=zabbix (数据库名字)
DBuser=zabbix (登录数据库的用户名)
DBPassword=zabbix-aming (登录数据库的密码)
[root@zhuji ~]# systemctl restart zabbix-server
[root@zhuji ~]# netstat -lntp |grep zabbix (默认监听10051)
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 3713/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 3713/zabbix_server
八、配置web界面,直接访问服务端主机名加zabbix。例如(192.168.52.101/zabbix)
(一)点next step
(二)我们发现只有这一行是错误的
PHP option "date.timezone" | unknown | Fail |
(三)改正时间错误,修改phh配置文件,重启apache,刷新界面
[root@zhuji ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
[root@zhuji ~]# systemctl restart httpd
(四)继续web界面的下一步(也就是MySQL的界面了)
port端口号:3360
密码写在数据库中创建用户的密码。
如果现实sock文件不存在,则把用户改成127.0.0.1
(五)定义zabbix server的界面
自定义Name
(六)web界面完成
八、登录zabbix
(一)默认用户为admin
默认登陆密码为zabbix
(二)更改密码
administration下有个user,找到admin用户,点进去
有个change passwd,点进去修改为自己想要的密码,顺便更改语言,然后update
刷新界面,就是中文了
编辑客户端zabbix的配置文件
[root@congji ~]# vim /etc/zabbix/zabbix_agentd.conf (主动被动一起开启会比较好)
Server=192.168.52.101 (被动模式):等待服务端来取数据
ServerActive=192.168.52.101 (主动模式):主动上报数据
Hostname=congji (不能随便写,要写能够识别的主机名)
启动服务查看监控的端口
[root@congji ~]# systemctl start zabbix-agent
[root@congji ~]# netstat -lntp |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3304/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 3304/zabbix_agentd
三、解决忘记admin密码
忘记admin密码如何做
在MySQL数据库中使用命令行修改:
[root@zhuji ~]# mysql -uroot -p
mysql> use zabbix; (进入到zabbix数据库中)
可以show tabls; 看一下里面的表,都是和zabbix有关的,我们要用到users表更改密码
mysql> desc users; (我们可以看一下uses表里的,我们其实就是要更改passwd)
+----------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------------+------+-----+---------+-------+
| userid | bigint(20) unsigned | NO | PRI | NULL | |
| alias | varchar(100) | NO | UNI | | |
| name | varchar(100) | NO | | | |
| surname | varchar(100) | NO | | | |
| passwd | char(32) | NO | | | |
| url | varchar(255) | NO | | | |
| autologin | int(11) | NO | | 0 | |
| autologout | int(11) | NO | | 900 | |
| lang | varchar(5) | NO | | en_GB | |
| refresh | int(11) | NO | | 30 | |
| type | int(11) | NO | | 1 | |
| theme | varchar(128) | NO | | default | |
| attempt_failed | int(11) | NO | | 0 | |
| attempt_ip | varchar(39) | NO | | | |
| attempt_clock | int(11) | NO | | 0 | |
| rows_per_page | int(11) | NO | | 50 | |
+----------------+---------------------+------+-----+---------+-------+
16 rows in set (0.01 sec)
mysql> update users set passwd=md5('litongyao1') where alias='Admin'; (用md5的方式加密)
检测用litongyao1登录