zabbix 部署
# Zabbix 介绍
zabbix 下载页面🤞🤞 (opens new window)
zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运行;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix 组件
zabbix由以下几个组件部分构成:
Zabbix Server: 负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行。
Database Storage: 专用于存储所有配置信息,以及由zabbix收集的数据。
Web interface: zabbix的GUI接口,通常与Server运行在同一台主机上。
Proxy: 可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端(实现分布式监控专用组件非必要组件,被监控服务器过多或者跨机房可以使用此组件。)
zabbix监控环境中相关术语
主机(host): 要监控的网络设备,可由IP或DNS名称指定
主机组(host group): 主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用
监控项(item): 一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由”key”标识
触发器(trigger): 一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从”OK”转变为”Problem”,当数据再次恢复到合理范围,又转变为”OK”
事件(event): 触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等
动作(action): 指对于特定事件事先定义的处理方法,如发送通知,何时执行操作
报警升级(escalation): 发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等
媒介(media): 发送通知的手段或者通道,如Email、Jabber或者SMS等
通知(notification): 通过选定的媒介向用户发送的有关某事件的信息
远程命令(remote command): 预定义的命令,可在被监控主机处于某特定条件下时自动执行
模板(template): 用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机
应用(application): 一组item的集合
web场景(web scennario): 用于检测web站点可用性的一个或多个HTTP请求
前端(frontend): Zabbix的web接口
# 安装zabbix-3.4
# 安装依赖,创建用户
依赖安装
yum -y install mysql-devel net-snmp-devel libevent-devel libxml2 libxml2-devel curl-devel
创建zabbix用户
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix
2
# 下载编译zabbix server端
cd /opt
#可能需要浏览器下载
wget https://phoenixnap.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.15/zabbix-3.4.15.tar.gz
tar xf zabbix-3.4.15.tar.gz
cd zabbix-3.4.15/
./configure --prefix=/opt/zabbix/ --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make && make install
2
3
4
5
6
7
8
9
10
# 创建zabbix数据库
我这里用的mysql数据库
- 导入初始数据库
#进入数据库
shell> mysql -uroot -p'password'
#创建zabbix数据库
mysql> create database zabbix character set utf8 collate utf8_bin;
#创建zabbix数据库的用户
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'yfk123456';
mysql> quit;
##导入zabbix数据库默认的模板*必须安照顺序导入否则不成功
shell> cd /opt/zabbix-3.4.15/database/mysql
shell> mysql -uzabbix -p'yfk123456' zabbix < schema.sql
shell> mysql -uzabbix -p'yfk123456' zabbix < images.sql
shell> mysql -uzabbix -p'yfk123456' zabbix < data.sql
2
3
4
5
6
7
8
9
10
11
12
如果是mysql_8.0 ,zabbix用户权限调整: ALTER USER zabbix@'%' IDENTIFIED WITH 'mysql_native_password';
# 安装和配置nginx,php
需要安装nginx 和php,做fastcgi_pass
配置php文件
cp -a /opt/zabbix-3.4.15/frontends/php /opt/zabbix/frontends/
配置nginx
cd /etc/nginx/sites-enabled/
cat >zabbix.yfklife.cn.conf<<'OPO'
server
{
listen 80;
server_name zabbix.yfklife.cn;
root /opt/zabbix/frontends;
index index.html index.php index.html;
location /
{
if ( !-f $request_filename ) {
rewrite ^(.*)$ /index.php?$1 last;
break;
}
}
location ~ .*\.php?$
{
fastcgi_ignore_client_abort on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
index index.php;
}
error_page 404 = /404.html;
location ~ "\.(js|ico|gif|jpg|png|css)$" {
expires 1w;
}
location ~ ^/status/ {
stub_status on;
access_log off;
}
access_log /var/log/nginx/zabbix.yfklife.cn.log main;
}
OPO
#重载nginx
nginx -t && nginx -s reload
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# zabbix 登录页面
DNS 解析域名,访问
http://zabbix.yfklife.cn
# 第一次登录配置zabbix信息
然后一路点击 Next step和Finish ,省略。。。。。。
- 按照提示修改/etc/php.ini 配置
- 配置数据库连接信息
- 配置zabbix连接配置信息文件
把下载的文件放入到指定目录,授权:chown zabbix:zabbix zabbix.conf.php
# 登录
这是Zabbix的“欢迎”界面。输入用户名
Admin
以及密码zabbix
以作为Zabbix超级用户登陆。zabbix 登录页
- zabbix 主页
# 配置zabbix_server
配置zabbix_server.conf
#添加启动文件,修改启动执行目录
cp -a /opt/zabbix-3.4.15/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
sed -i 's#BASEDIR=/usr/local#BASEDIR=/opt/zabbix#g' /etc/init.d/zabbix_server
#创建zabbix server 服务日志目录,启动异常,查看当前目录下的日志
mkdir /opt/zabbix/logs && chown -R zabbix:zabbix /opt/zabbix/logs
#配置zabbix conf
cd /opt/zabbix/etc
cp zabbix_server.conf{,.bak}
cat >zabbix_server.conf<<'OPO'
LogFile=/opt/zabbix/logs/zabbix_server.log
PidFile=/opt/zabbix/logs/zabbix_server.pid
DBHost=localhost
ListenPort=10051
DBName=zabbix
DBUser=zabbix
DBPassword=yfk123456
DBSocket=/tmp/mysql.sock
Include=/opt/zabbix/etc/zabbix_server.conf.d/*.conf
StartPollers=12
AlertScriptsPath=/opt/zabbix/share/alertscripts/
StartDiscoverers=5
LogSlowQueries=3000
Timeout=4
CacheSize=1024M
TrendCacheSize=6M
OPO
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
开机自启动 systemctl enable zabbix_server
重启zabbix_server /etc/init.d/zabbix_server restart
# 安装agent##
# 配置yum源,安装agent
把地址中的7改成6就是centos6 的yum源
#添加源
cat >/etc/yum.repos.d/zabbix-agent.repo<<'OPO'
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/7/$basearch/
enabled=1
gpgcheck=0
OPO
#rpm安装zabbix-agent
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.15-1.el7.x86_64.rpm
2
3
4
5
6
7
8
9
10
11
zabbix_agentd.conf 配置默认即可
cat >/etc/zabbix/zabbix_agentd.conf<<'OPO'
ListenIP=127.0.0.1
UnsafeUserParameters=1
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
OPO
2
3
4
5
6
7
8
9
10
11
- 借鉴配置
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.15-1.el7.x86_64.rpm
hostName=$(hostname)
cp /etc/zabbix/zabbix_agentd.conf{,.bak}
cat >/etc/zabbix/zabbix_agentd.conf<<EOF
ListenIP=0.0.0.0
UnsafeUserParameters=1
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.108.20 #服务端IP
ServerActive=192.168.108.20
Hostname=${hostName}
Include=/etc/zabbix/zabbix_agentd.d/*.conf
EOF
systemctl enable zabbix-agent.service --now
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
启动:systemctl restart zabbix-agent.service
- 开启server 本机监控
查看数据
# 安装zabbix-4.0
cat >/etc/yum.repos.d/php.repo<<EOF
[php72]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
EOF
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent # mariadb-libs mariadb-server nginx
# mysql -uroot -p
#创建库
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'yfk123456';
grant all privileges on zabbix.* to zabbix@localhost;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pyfk123456
# grep DBPassword=password /etc/zabbix/zabbix_server.conf
DBPassword=yfk123456
# grep date.timezone /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
systemctl restart zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 改用nginx 代理
引用上面3.4.15 的nginx 配置 (改为nginx 代理zabbix web)
安装php-fpm 7.X ,修改对应参数
#下载yum包:php72w-server.tar
yum -y install php72w php72w-cli php72w-devel php72w-embedded php72w-mcrypt php72w-fpm php72w-opcache php72w-common
sed -i 's#post_max_size = 8M#post_max_size = 16M#g' /etc/php.ini
sed -i 's#max_execution_time = 30#max_execution_time = 300#g' /etc/php.ini
sed -i 's#max_input_time = 60#max_input_time = 300#g' /etc/php.ini
sed -i 's#;date.timezone =#date.timezone = Asia/Shanghai#g' /etc/php.ini
systemctl restart php-fpm.service
systemctl enable php-fpm.service mariadb --now
2
3
4
5
6
7
8
9
10
11
12
yum install nginx -y
#拷贝上面的nginx 配置到/etc/nginx/conf.d/
nginx -s reload
mkdir /opt/zabbix/
cp -a /usr/share/zabbix/ /opt/zabbix/frontends
chown -R apache:apache /etc/zabbix/web/ #我这里php启动用户是apache,所以授权用户apache
ls -l /etc/zabbix/web/zabbix.conf.php
2
3
4
5
6
7
8
9
10
- zabbix_server.conf
[root@basic zabbix]# cat zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/run/zabbix/zabbix_server.pid #与systemd 对应
DBHost=localhost
ListenPort=10051
DBName=zabbix
DBUser=zabbix
DBPassword=yfk123456
DBSocket=/tmp/mysql.sock
Include=/etc/zabbix/zabbix_server.conf.d/*.conf
StartPollers=12
AlertScriptsPath=/etc/zabbix/zabbix/alertscripts/
StartDiscoverers=5
LogSlowQueries=3000
Timeout=4
2
3
4
5
6
7
8
9
10
11
12
13
14
15
访问:http://server_ip_or_name/zabbix 或者:http://zabbix.yfklife.cn/
默认账号密码: Admin/zabbix
# zabbix_get 命令参数说明
yum安装:yum install zabbix-get -y
ping 主机:zabbix_get -s 192.168.14.144 -p 10050 -k agent.ping
参数 | 说明 |
---|---|
-s | 客户端的IP |
-p | 客户端端口,默认10050 |
-k | 监控项的key(可以看zabbix里面监控项的键值,来测试) |
# 个人存储下载地址。。。
4.0
zabbix-release-4.0-2.el7.noarch.rpm
zabbix-agent-4.0.35-1.el7.x86_64.rpm
3.4
zabbix-3.4.15.tar.gz
zabbix-agent-3.4.15-1.el7.x86_64.rpm
centos7-php7.2
php72w-server.tar
2
3
4
5
6
7
8
9
10
11