Zabbix之一---企业级监控服务Zabbix部署与配置
一、业务布局:
二、整体布局
三、Zabbix监控概述:
官方文档:https://www.zabbix.com/cn/features
适用于任何IT基础架构、服务、应用程序和资源的解决方案
1、数据采集:周期性时序数据
(1)主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...
(2)采集目标:监控项,指标数据(metrics data)
2、数据存储:
(1)存储系统:
SQL: MySQL/MariaDB(Zabbix)
NoSQL:Redis(Open-falcon)
rrd: Round Robin Database(Cacti)
(2)数据:
历史数据: 每个监控项采集到的每个监控值
趋势数据: 趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
(3)阈值:severity,可按照等级实现层级报警
(4)告警:email, 短信, 微信,语音,故障自治愈
3、四大核心任务:
(1)采集:zabbix-server, zabbix-proxy,zabbix-agent
Agentless:SNMP,Telnet,ssh,IPMI, JMX,
Agent:zabbixagent
(2)存储: zabbixdatabase
(3)展示:zabbixweb
graph -> screen -> slideshow(将多个screen以幻灯片的方式进行轮流展示)
(4)告警:
host (host groups) <-templates
host -> items -> triggers -> action (条件-conditions, 操作-operations)
实战一:zabbix的搭建与部署
1、配置zabbix-server仓库并安装
zabbix官方安装地址参考:https://www.zabbix.com/cn/download?zabbix=4.0&os_distribution=centos&os_version=7&db=mysql&ws=apache
1、配置zabbix仓库
[root@localhost yum.repos.d]# cat zabbix.repo [zabbix] name=Zabbix Official Repository - \$basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - \$basearch baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/ enabled=1 gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX gpgcheck=1 [zabbix-debuginfo] name=Zabbix Official Repository debuginfo - $basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/debuginfo/ enabled=0 gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 gpgcheck=1
2、安装Zabbix server,Web前端,agent
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
2、安装并初始化数据库
1、安装服务端数据库,启动数据库并设置为开机启动。
# yum clean all # yum install mariadb-server -y # chown mysql.mysql /var/lib/mysql -R # 将数据库的所有者和所属组权限进行修改。 # systemctl start mariadb # systemctl enable mariadb
2、创建初始化数据库
(1)vim /etc/my.cnf.d/mariadb-server.cnf 配置文件
[server] skip_name_resolve = on innodb_file_per_table = on innodb_buffer_pool_size = 256M #buffer缓存大小 max_connections = 2000 #最大连接数 log-bin = master-log #二进制日志
(2)创建zabbix数据库并授权。
[root@computer-2 ~]# mysql MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'192.168.7.%' identified by '123456';
(3)在mysql客户端测试连接数据库
[root@computer-2 network-scripts]# mysql -p123456 -uzabbix -h192.168.7.100 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
3、初始化架构和数据
1、导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p -h192.168.7.100 zabbix # 指定本地的IP地址,不默认就会指向本地localhost
(1)初始化架构和数据时抱有以下错误,可以查看数据库是否存在两个zabbix用户账号,可以删除空的账号就可以重新初始化架构和数据。
[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p -h192.168.7.100 zabbix Enter password: ERROR 1045 (28000): Access denied for user 'zabbix'@'zabbix' (using password: YES)
(2)进入到数据库中查看此时的IP地址和用户名称
[root@localhost ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> select user,host from mysql.user; +--------+-------------+ | user | host | +--------+-------------+ | root | 127.0.0.1 | | zabbix | 192.168.7.% | | root | ::1 | | | localhost | | root | localhost | | | zabbix | # 将此空的user删除即可。 | root | zabbix | +--------+-------------+ 7 rows in set (0.00 sec) MariaDB [(none)]> drop user ''@zabbix; # 删除空的user数据 Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> Ctrl-C -- exit! Aborted
4、为Zabbix server配置数据库
1、编辑配置文件 /etc/zabbix/zabbix_server.conf
ListenPort=10051 # zabbix的端口10051 DBHost=192.168.7.100 # 数据库对外提供的IP地址 DBName=zabbix # 默认即可 DBUser=zabbix # 默认即可 DBPassword=123456 # 数据库密码 DBPort=3306 # 数据库服务端口
2、为Zabbix前端配置PHP,修改为本地的上海时区
编辑配置文件 /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value max_input_vars 10000 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/Shanghai # 最后一行注释的改为上海时区
3、启动Zabbix server和agent进程,并设置为开机启动
# systemctl restart zabbix-server zabbix-agent httpd # systemctl enable zabbix-server zabbix-agent httpd
查看监听端口状态:10050是agent端口,10051是zabbix端口,3306是数据库端口。
4、修改前端web的配置文件
在以下配置文件中可以查询IP地址、zabbix服务器名称、密码等信息是否正确,如果需要修改数据库连接,只需要在配置文件中修改即可
[root@zabbix ~]# cp /usr/share/zabbix/conf/zabbix.conf.php.example /usr/share/zabbix/conf/zabbix.conf.php [root@zabbix ~]# vim /usr/share/zabbix/conf/zabbix.conf.php
5、重启mariadb数据库和Zabbix server和agent进程
# systemctl restart zabbix-server zabbix-agent httpd mariadb
5、zabbix初始化设置
(1)开始登陆zabbix的web页面:192.168.7.100/zabbix/index.php
如果弹出以下窗口则证明安装成功!Zabbix
前端已经就绪!默认的用户名是 Admin
,密码是zabbix
。
(2)检查以下配置有无错误
(3)开始设置数据库连接
(4)命名zabbix名称
(5)验证自己输入无误后直接下一步
(6)开始登陆,账号:Admin 密码:zabbix
(7)进入zabbix界面
(8)status of zabbix 仪表盘分析
Zabbix server is running | Yes | 192.168.7.100:10051 |
---|---|---|
Number of hosts (enabled/disabled/templates) | 91 | 1 / 0 / 90 |
Number of items (enabled/disabled/not supported) | 88 | 82 / 0 / 6 |
Number of triggers (enabled/disabled [problem/ok]) | 50 | 50 / 0 [0 / 50] |
Number of users (online) | 2 | 1 |
Required server performance, new values per second | 1.24 |
① 监控主机:已经启用被监控的主机数量,已经配置好缺被禁止主机数,自带模板数
② 监控项:启用多少指标,禁用多少指标,不支持的指标
③ 触发器数量:启用,禁用,处于有问题的
④ 当前zabbix有几个用户:现在是一个是来宾,一个是管理员
⑤ 重点关注的nvps 每秒的新值(根据我们定义的监控项,每秒采集过来多少新数据,平均值):
(9)用户管理设置,可以设置为中文模式,以及修改zabbix的登陆密码
此时改为中文后,监控的图形界面就会是乱码,我们应该怎么处理呢?下图是乱码位置:
答:方法很简单,只需要在windows系统中寻找一个楷体文件即可:控制面板---->字体----->楷体 常规字体(复制到windows桌面上,等会传到linux指定的文件夹目录下)
(1)查询linux系统原有字体配置文件:
[root@zabbix fonts]# find / -name defines.inc.php /usr/share/zabbix/include/defines.inc.php [root@zabbix fonts]# vim /usr/share/zabbix/include/defines.inc.php define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name # 将graphfont改为自己复制windows系统的字体名称:simkai define('ZBX_FONT_NAME', 'graphfont'); # 将graphfont改为自己复制windows系统的字体名称:simkai
(2)查询graphfont文件存放的路径
[root@zabbix fonts]# find / -name graphfont* # 查询存放的字体文件路径,将windows系统的字体存放在此目录下 /usr/share/zabbix/assets/fonts/graphfont.ttf [root@zabbix ~]# cd /usr/share/zabbix/assets/fonts/ [root@zabbix fonts]# rz -E # 将下载的windows文件传到linux指定的目录下。 rz waiting to receive. [root@zabbix fonts]# ll total 11512 lrwxrwxrwx 1 root root 33 Feb 16 10:00 graphfont.ttf -> /etc/alternatives/zabbix-web-font -rw-r--r-- 1 root root 11785184 Jun 11 2009 simkai.ttf # windows系统的字体名称
(3)此时刷新zabbix界面,乱码部分已解决。
6、被监控node zabbix的安装配置
1、在node1主机上配置zabbix仓库。
[root@computer-2 yum.repos.d]# cat zabbix.repo [zabbix] name=Zabbix Official Repository - \$basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - \$basearch baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/ enabled=1 gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX gpgcheck=1 [zabbix-debuginfo] name=Zabbix Official Repository debuginfo - $basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/debuginfo/ enabled=0 gpgkey=https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 gpgcheck=1
2、安装zabbix-agent包
[root@node1 ~]# yum install zabbix-agent -y
3、配置zabbix-agent文件:
[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
(1) EnableRemoteCommands=0 是否允许执行远程命令,默认是不允许的,有安全风险
(2)修改以下配置文件信息
Server=192.168.7.100 # zabbix服务端的IP地址 Hostname=192.168.7.101 # 本机node1主机的IP地址,或者起一个与zabbix服务器端不重名的名称 ListenPort=10050 # 本机监听的端口 ListenIP=0.0.0.0 # 允许监听在本机的地址,0.0.0.0 是监听所有
4、配置完zabbix-agent后,重启zabbix-agent,且查看此时监听的端口
[root@node1 ~]# systemctl restart zabbix-agent # 重启zabbix-agent [root@node1 ~]# ss -nlt # 查看10050端口是否被监听 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:10050 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 [::1]:25 [::]:* LISTEN 0 128 [::]:22 [::]:*
7、将node1主机加入到监控中
(1)先添加一个主机群组host groups
添加一个Linux servers 的host groups
(2)创建主机
将node1主机添加到主机群组中
(2)添加模板,可以搜索linux关键字,可以添加到Template OS Linux
(3)此时可以看到添加的node1已经提示变绿色图标