为什么要做监控?
可以提前发现潜在故障隐患,第一时间解决掉。把影响降低。
- 常见的监控软件的简单介绍:
cacti 常用于监控网络设备;
nagios 很早就出现;
zabbix 很早就出现,现在比较流行;
open-falcon 小米公司开发的;
prometheus 时序监控;
grafana 图形比较好,可以跟zabbix或prometheus组合使用;
安装zabbix
-
zabbix的好处
加上脚本使用,可以自己写,可使用不同语言,很灵活;
可以用于做报表; -
其他
监控软件都是CS模式,包含触发器设置,告警方式一般使用邮件 -
安装zabbix(二进制包安装)
- 安装zabbix yum源
- yum安装
-
需要安装5个包:
zabbix-server-mysql 使用mysql或者mariadb的服务端包;
zabbix-web web前端的包;
get 命令行工具的包;
zabbix-web-mysql Mysql的web前端的包;
agent 客户端包,安装在被监控的机器上;
由于yum下载包出问题,改成使用wget下载,再使用local install; -
zabbix会使用httpd和PHP,机器上没有就会安装,虚拟主机文件也会配置好;web的管理界面使用php编写;
-
日志文件在/var/log/zabbix/目录下
- 数据库操作
- 导入表
- 编缉zabbix_server.conf
- 编缉zabbix_agent.conf
- 启动agent服务
- webUI配置
- 操作细节如下
[root@draft src]#rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #安装zabbix yum 源
[root@draft src]# wget -c http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-server-mysql-4.0.14-1.el7.x86_64.rpm #下载包;
[root@draft src]# wget -c http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.14-1.el7.noarch.rpm #下载包;
[root@draft src]# yum localinstall zabbix-server-mysql-4.0.14-1.el7.x86_64.rpm zabbix-web-4.0.14-1.el7.noarch.rpm #安装包;
[root@draft src]# yum install zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql #安装包;
[root@draft src]# mysql -uroot -p #进入mysql;
mysql> creat database zabbix; #创建数据库;
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix-pa'; #新建用户与密码;
[root@draft src]# vi /etc/zabbix/zabbix_server.conf #修改DB相并语句,如下;
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix-pa
[root@draft src]# ls /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql.gz #数据库压缩包;
[root@draft src]zip -d /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql.gz #解压缩;
[root@draft src]# mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql #导入数据和表结构等;
[root@draft src]# systemctl start zabbix-server #启动服务;
[root@draft src]# ps aux |grep zabbix #查看启动的进程;
[root@draft src]# netstat -lntp #侦听10051端口;
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 34195/zabbix_server
[root@draft src]# vi /etc/zabbix/zabbix_agentd.conf #修改agent配置文件;
Server=127.0.0.1 #定义服务器IP;
ServerActive=127.0.0.1 #设置服务器IP后启动Active模式,主动上传数据到服务器;
[root@draft src]# systemctl start httpd.service #启动httpd;
[root@draft src]# netstat -lntp #端口查看;
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 36731/httpd
[root@draft src]# ps aux |grep http #进程查看;
zabbix 34199 0.0 0.2 184712 2948 ? S 11:15 0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.001345 sec, idle 5 sec]
root 34905 0.0 0.1 126376 1828 pts/0 T 11:20 0:00 vi /etc/httpd/conf/httpd.conf
root 36731 0.3 1.5 397748 15884 ? Ss 11:34 0:00 /usr/sbin/httpd -DFOREGROUND
apache 36732 0.0 0.7 397748 7864 ? S 11:34 0:00 /usr/sbin/httpd -DFOREGROUND
apache 36733 0.0 0.7 397748 7864 ? S 11:34 0:00 /usr/sbin/httpd -DFOREGROUND
apache 36734 0.0 0.7 397748 7864 ? S 11:34 0:00 /usr/sbin/httpd -DFOREGROUND
apache 36735 0.0 0.7 397748 7868 ? S 11:34 0:00 /usr/sbin/httpd -DFOREGROUND
apache 36736 0.0 0.7 397748 7868 ? S 11:34 0:00 /usr/sbin/httpd -DFOREGROUND
root 36766 0.0 0.0 112728 972 pts/0 R+ 11:35 0:00 grep --color=auto http
[root@draft src]# vi /etc/php.ini #修改自动安装的PHP的配置,如下,不然web界面会有错误;
date.timezone = Asia/Shanghai
[root@draft src]# systemctl restart httpd #重启httpd;
- web界面设置
-
服务器IP/zabbix访问设置页面,点击下一步
-
设置php.ini前错误和正常后的页面,点击下一步
-
填写数据库信息
-
填写服务器名字,点击2次下一步,显示成功信息
- 点击完成,输入初始用户名与密码(admin:zabbix),显示监控主页
- 修改登陆密码
点击右上角,用户标签;
点击后续页面的第一行,修改密码;
新建zabbix-agent
[root@second src]# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #安装zabbix yum 源
[root@second src]# wget -c http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.14-1.el7.x86_64.rpm
[root@second src]# yum localinstall zabbix-agent-4.0.14-1.el7.x86_64.rpm
[root@second src]# vi /etc/zabbix/zabbix_agentd.conf #修改配置文件,内容如下;
Server=192.168.87.149 #定义服务器IP;
ServerActive=192.168.87.149 #设置服务器IP后启动Active模式,主动上传数据到服务器;
[root@second src]# systemctl start zabbix-agent #启动服务;
[root@second src]# netstat -lntp #侦听10050,启动正常;
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 8338/zabbix_agentd
web界面添加agent
- 点击Hosts - 右上角Create host - 如下图填写信息 - 点击Add添加;
这台机器可添加到多个组;
- 需要添加监控项目到此机器上,从已有模板里添加项目;
一般可以从以下模板找到所需项目;
http
https
ssh
mysql
ping
OS linux
vmware
- 点击模板,右上角添加一个自定义模板,将其应用于相应机器上;
-
定义模板名称和模板的组 - Add
-
例如,从Template OS linux - Items - Memory 里选中要添加的项目,点击copy
- 再选Target type - Templates/ Target - test(新增的模板)- 再点Copy
即把一个项目添加到空模板里,如此再添加其他项目;
其实也可以把项目真接加到主机或主机组里,调节模板在以后工作应该更方便;
链接模板
- 找到一个大部分适合使用的模板,点击full clone
-
在出现的界面,修改这个clone过来的模板的新名字,设置一个组,点击最下边Add
即复制出一个模板;
- 点击新建的模板 - 点击linked templates - 点击unlink and clear - 可以把链接的模板去掉 - 该链接模板的项目也会去除
链接模板可以让你得到另外一个模板的项目,一般不能修改,需要修改要修改原模板,修改模板会影响所有链接到这个模板的主机/模板等;
注意:链接模板的项目,不能跟已有模板的项目名重复,如出现这种情况,原有项目会改变(即监察的项目变化了),包括item, triger,自定义图表,applications;
- 点击新建的模板 - 点击linked templates - 点击unlink and clear - 可以把链接的模板去掉 - 该链接模板的项目也会去除
-
按图形 - trigger - items - Applications 这个顺序删减不要的项目
因为后面的项目依赖前面的项目,先删除小项目,后面的项目会报错;
留着Template OS Linux - Discovery rules很有用; -
修改好之后,就可以点击Hosts - Templates - 选择做好的模板 - 点击Add - Update 即添加好要监控的项目
- 然后需要等待监控状态变成ZBX (绿色)
或者查看以下界面last check是否更新了信息,更新到信息即监控是正常的
- 命令行查看监控状态
[root@draft ~]# zabbix_get -s 192.168.87.150 -p 10050 -k "system.cpu.load[all,avg1]"
0.010000
- 查看Graphs,另外Discovery可以检测到安装zabbix-agent还没添加监控的机器