1、Linux监控平台介绍
这几款软件都是须要PHP环境支持,使用Apache PHP或者NGINX的PHP均可以,nagios不须要使用mysql,cacti和zabbix是须要使用mysql的
2、zabbix监控介绍
zabbix监控流程图
3、安装zabbix
须要准备两台机器,一台做为zabbix-server服务端,一台做为zabbix-agent客户端
[root@linux-01 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@linux-02 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@linux-01 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm //实际上就是安装了一个yum源仓库
[root@linux-02 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
[root@linux-01 ~]# cat /etc/yum.repos.d/zabbix.repo //这个其实就是刚才安装的rpm包
zabbix-server服务端须要安装一下这些包
[root@linux-01 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql //yum安装这些包
若是mysql以前没有安装过,须要yum安装或者编译安装mysql,安装请参考lamp那一章
[root@linux-01 ~]# ps aux |grep mysql //检查mysql有没有启动
[root@linux-01 ~]# systemctl start mysql
若是遇到启动报错,须要查看mysql错误日志
[root@linux-01 ~]# less /data/mysql/linux-01.err //查看error,定位问题
[root@linux-01 ~]# ls -l /data/mysql/ //错误缘由有多是/data/mysql/ 属组属主不是mysql:mysql
[root@linux-01 ~]# vim /etc/my.cnf //编辑配置文件,增长配置
在[mysqld]第一行添加 character_set_server = utf8 ,为了更好的支持web中文界面
[root@linux-01 ~]# systemctl restart mysql //重启mysql
[root@linux-01 ~]# mysql -uroot -p123456 //登陆mysql命令行,建立zabbix库
mysql> create database zabbix character set utf8; //指定编码为utf8
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix'; //再建立一个用户,是让PHP代码链接mysql,还有zabbix-server启动的前提是可以链接mysql,客户端采集了数据,它须要把数据传递给服务端,服务端须要把数据写入到mysql里面,涉及到它须要使用哪个用户查询、写入到哪个库,在库里面有相关的表,因此须要设定一个用户,这个用户对库有读写发权限
mysql> quit
导入原始数据,没有这些数据,zabbix没有办法工做,没办法在web界面下展示
[root@linux-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/ //zabbix自带数据的目录
[root@linux-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@linux-01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz //解压create.sql.gz包
[root@linux-01 zabbix-server-mysql-3.2.11]# ls //生成create.sql文件
AUTHORS ChangeLog COPYING create.sql NEWS README
[root@linux-01 zabbix-server-mysql-3.2.11]# mysql -uroot -p123456 zabbix < create.sql //导入到zabbix库里面
[root@linux-01 ~]# systemctl start zabbix-server //启动zabbix-server服务
接下来须要启动httpd服务,启动前先检查有没有启动nginx服务
[root@linux-01 ~]# ps aux |grep nginx //若是启动nginx服务先关闭nginx服务
[root@linux-01 ~]# systemctl start httpd //启动httpd服务
[root@linux-01 ~]# systemctl enable httpd //开机启动须要加入到服务列表
[root@linux-01 ~]# systemctl enable zabbix-server //zabbix-server加入开机启动服务列表
[root@linux-01 ~]# systemctl disable nginx //禁止nginx开机启动
[root@linux-01 ~]# chkconfig nginx off
[root@linux-01 ~]# ps aux |grep zabbix //查看服务端进程有没有起来
[root@linux-01 ~]# netstat -lntp //进程有了,可是没有监听10051端口
[root@linux-01 ~]# less /var/log/zabbix/zabbix_server.log //查看错误日志
2980:20180709:080458.256 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@linux-01 ~]# vim /etc/zabbix/zabbix_server.conf //修改或增长
DBHost=127.0.0.1 //注意:若是以前建立zabbix用户是受权的是127.0.0.1,这里就写127.0.0.1,若是受权写的是localhost,那么这里定义DBHost=localhost;生产环境中,为了提高zabbix中心的效率,能够把mysql安装到另外一台机器上,那么这里就须要写mysql服务器的IP地址了,以前建立zabbix用户受权的时候也是受权mysql服务器的IP地址,必定要记住这一点!
DBPassword=aming-zabbix //在DBuser下面增长,数据库密码就是以前受权mysql用户时建立的密码
[root@linux-01 ~]# systemctl restart zabbix-server //重启zabbix-server服务,由于以前已经启动过zabbix-server服务了,因此这里须要重启
[root@linux-01 ~]# ps aux |grep zabbix //正常的话它须要启动不少子进程
[root@linux-01 ~]# netstat -lntp //查看下是否正常监听了10051端口
配置WEB页面
[root@linux-01 ~]# vi /etc/php.ini //配置web页面前先修改PHP的配置文件的时区
须要将;date.timezone = 修改成 date.timezone = Asia/Shanghai
[root@linux-01 ~]# systemctl restart httpd //重启Apache服务
打开浏览器访问:http://ip/zabbix ,在web界面下配置zabbix
点击Next step,查看下图所有为OK
点击Next step
Database host写127.0.0.1,Database port默认0就表示3306端口,Database name写zabbix,User写zabbix,Password写aming-zabbix,这个密码是以前受权zabbix用户时建立的密码
点击Next step
Name是定义zabbix-server的主机名,能够自定义,我这里定义为aming-01
点击Next step,查看下以前填写的信息
点击Next step,看到以下界面表示配置web界面成功
点击Finish,进入登陆界面
默认登陆帐号为Admin ,默认密码为zabbix
点击Signin in,登陆到web页面
登陆到web界面的第一件事情是必定要修改管理员用户Admin的密码,否则会很是危险
修改完密码以后修改界面为中文界面
Zabbix客户端安装
[root@linux-02 ~]# yum install -y zabbix-agent //yum安装zabbix-agent
[root@linux-02 ~]# vi /etc/zabbix/zabbix_agentd.conf //配置zabbix_agentd.conf 配置文件
修改Server=127.0.0.1为Server=192.168.238.128 ,这个IP是zabbix-server端的IP
修改ServerActive=127.0.0.1为ServerActive=192.168.238.128,这个IP也是监控中心的IP,这个涉及到主动模式和被动模式,客户端有可能用主动模式,也有可能用被动模式
被动模式:若是只配置Server=192.168.238.128 ,只能使用被动模式,只能等待服务端来取数据;
主动模式:Server=192.168.238.128和ServerActive=192.168.238.128都配置了,客户端就能够主动上报数据给服务端
修改Hostname=Zabbix server为 Hostname=linux-02 ,这里定义Hostname不能随便定义,在web界面加监控主机的时候,它就不识别主机名,若是在监控中心随便定义一个名字,那么在客户端上就识别不到,在服务端的日志里面能够看到随便定义的主机名它不知道,它却是不影响监控,
[root@linux-02 ~]# systemctl start zabbix-agent //启动zabbix-agent服务
[root@linux-02 ~]# ps aux |grep zabbix //能够看下服务有没有起来
[root@linux-02 ~]# netstat -lntp //能够查看到监听的端口是10050
[root@linux-02 ~]# systenctl enable zabbix-agent //开机启动php
4、忘记Admin密码如何作
[root@linux-01 ~]# mysql -uroot -p123456 //进入到数据库
mysql> use zabbix; //使用zabbix库
mysql> show tables; //查看zabbix库里面的表,里面的表不少,都是zabbix相关的表,若是后续监控的主机很是多的话,这个表会愈来愈大,须要提早制定合适的监控规则、策略,好比数据量须要保留多长时间,那么在定义监控项目的时候,好比保留一个月或者一年,若是监控的量很是大,那么一天磁盘可能会长几个G,磁盘是否支持,这些问题都须要想到,
mysql> desc users; //密码存放在users表里面,能够查看下users表里面都有哪些字段,其实密码文件就存放在passwd里面,忘记密码修改passwd
mysql> update users set passwd=md5(‘newpasswd’) where alias=‘Admin’; //修改一个新密码
mysql> select * from users;
mysql> quit
这时候就可使用新密码去登陆web界面了mysql