本文共 5285 字,大约阅读时间需要 17 分钟。
一、Linux监控平台介绍
这几款软件都是需要PHP环境支持,使用Apache PHP或者NGINX的PHP都可以,nagios不需要使用mysql,cacti和zabbix是需要使用mysql的二、zabbix监控介绍zabbix监控流程图三、安装zabbix需要准备两台机器,一台作为zabbix-server服务端,一台作为zabbix-agent客户端[root@linux-01 ~]# wget [root@linux-02 ~]# wget [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; //指定编码为utf8mysql> 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]# lsAUTHORS 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服务打开浏览器访问: ,在web界面下配置zabbix点击Next step,查看下图全部为OK点击Next stepDatabase host写127.0.0.1,Database port默认0就表示3306端口,Database name写zabbix,User写zabbix,Password写aming-zabbix,这个密码是之前授权zabbix用户时创建的密码点击Next stepName是定义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 //开机启动四、忘记Admin密码如何做
[root@linux-01 ~]# mysql -uroot -p123456 //进入到数据库mysql> use zabbix; //使用zabbix库mysql> show tables; //查看zabbix库里面的表,里面的表很多,都是zabbix相关的表,如果后续监控的主机非常多的话,这个表会越来越大,需要提前制定合适的监控规则、策略,比如数据量需要保留多长时间,那么在定义监控项目的时候,比如保留一个月或者一年,如果监控的量非常大,那么一天磁盘可能会长几个G,磁盘是否支持,这些问题都需要想到,mysql> desc users; //密码存放在users表里面,可以查看下users表里面都有哪些字段,其实密码文件就存放在passwd里面,忘记密码修改passwdmysql> update users set passwd=md5(‘newpasswd’) where alias=‘Admin’; //修改一个新密码mysql> select * from users; mysql> quit这时候就可以使用新密码去登录web界面了转载于:https://blog.51cto.com/13669226/2139109