zabbix搭建:
C7初始化:systemctl stop firewalld
systemctl disable firewalld
yum -y install iptables-services
systemctl start iptables
iptables -F
service iptables save
systemctl enable iptables
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config1.配置公网yum源:ifup ens34;curl http://mirrors.163.com/.help/CentOS7-Base-163.repo > /etc/yum.repos.d/163.repo;yum clean all;yum make cache
2.安装LAMP:yum -y install mariadb mariadb-server httpd php php-mysql
3.开启服务:
开启apache:systemctl enable httpd;systemctl restart httpd
开启数据库:systemctl enable mariadb;systemctl restart mariadb
4.初始化数据库:mysql_secure_installation;回车 y 123 123 y y y y
5.安装Zabbix软件包:rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
导入yum密钥:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
6.安装zabbix组件:yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
7.设置数据库用户:
CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
exit
8.还原数据库文件:cd /usr/share/doc/zabbix-server-mysql-3.2.11/;zcat create.sql.gz | mysql -uroot -p123 zabbix
9.配置服务器端:vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix
10.启动zabbix-server端服务:
systemctl start zabbix-server
systemctl enable zabbix-server
11.编辑zabbix为apache准备的配置文件:vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
12.安装时间同步服务器:yum install -y ntpdate;ntpdate -u ntp1.aliyun.com
13.重启apache(因为修改了时区):systemctl restart httpd
14.修改字符集:将宋体字符集SIMSUN (1)拉到Linux中,mv SIMSUN_(1).TTC /usr/share/zabbix/fonts;mkdir back;mv graphfont.ttf back/;mv SIMSUN_\(1\).TTC graphfont.ttf;chmod a+x graphfont.ttf
15.修改apache默认主页文件:vim /etc/httpd/conf/httpd.conf---DocumentRoot "/usr/share/zabbix";systemctl restart httpd
16.浏览器访问:192.168.66.11
修改为中文页面:
![]()
![]()
zabbix自动扫描发现机器,自动监控:
- 给12和13机器安装agent端:将agent拉到LInux中
![]()
- 设置agent端: vim /etc/zabbix/zabbix_agentd.conf
指定服务器端IP:
指定服务器端IP:
指定本机IP:
- 启动服务:/etc/init.d/zabbix-agent start;chkconfig zabbix-agent on
- 打开网页监控Linux主机:
设置动作:动作里添加主机范围,操作里添加操作细节(添加主机,连接到模板,启用主机)
如果检测到11-100范围内的IP,那么就添加主机,连接模板,然后启用主机
自动发现:添加IP范围和ICMP ping
如果有11-100的主机那么就检测上
Zabbix监控MYSQL数据库:
1.mysql端安装mysql:yum install -y mysql mysql-server;service mysqld start;mysqladmin -uroot password 123
2.安装agent端:yum install -y zabbix-agent-3.2.1-1.el6.x86_64.rpm
3.设置agent端:vim /etc/zabbix/zabbix_agentd.conf
指定服务器端IP:
指定服务器端IP:
指定本机IP:
4.zabbix登录mysql才能查看数据,在/etc/zabbix/下创建用户文件:
vi /etc/zabbix/.my.cnf
[client]
user=zabbix
password=zabbix
5.创建用户,赋予能够被Zabbix监控的权利:
mysql> GRANT ALL ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
mysql> FLUSH PRIVILEGES;
6.设置mysql监控模板,修改userparameter_mysql.conf文件
修改找寻密码文件目录--
7.启动服务:service zabbix-agent start;chkconfig zabbix-agent on
Zabbix 监控 Nginx 性能
nginx在zxbbix中默认没有监控模板,所以要添加模板,然后来调用服务器内的脚本来进行监控
1.下载nginx,下载自带状态统计模块
useradd -s /sbin/nologin -M nginx
yum install -y pcre pcre-devel zlib zlib-devel;./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module;make && make install
cd /usr/local/nginx/conf/;vim nginx.conf
开启nginx模块
location /ngx_status {
stub_status on;
}
2.安装agent端:yum install -y zabbix-agent-3.2.1-1.el6.x86_64.rpm
3.编写客户端脚本,让模板调用:
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
# 检测 nginx 进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测 nginx 性能
function active {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1
chmod a+x nginx.sh
4.把脚本和agent结合起来
vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx.sh $1
service zabbix-agent restart
5.设置agent端:vim /etc/zabbix/zabbix_agentd.conf
指定服务器端IP:
指定服务器端IP:
指定本机IP:
6.开启服务:service zabbix-agent start
7.在服务器端使用zabbix-get测试脚本获取数据情况:yum install -y zabbix-get
8.导入nginx模板:
钉钉报警:
1.创建机器人:
2.在zabbix服务器端编写脚本:
#!/bin/bash
curl 'https://oapi.dingtalk.com/robot/send?access_token=9322624fc072807816d9683512d0e0fe4d4bca6a74ead8bfb5652164ae141924' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text","text": {"content": "zabbix:我就是我, 是不一样的烟火"}}'
原理:把脚本推送到钉钉的服务器,钉钉的服务器机器人转发(要能上网)。
3.执行脚本:
方式二:(更加灵活)
1.在zabbix服务器创建脚本
#!/bin/bash
to=$1
subject=$2
text=$3curl '此处为钉钉机器人的Webhook' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles": [
"'"$1"'"
],
"isAtAll": false
}
}'
2.执行脚本:./token.sh 123321 yang 额额额zabbix
关闭apache钉钉发送报警信息:
1.给客户端安装agent:
vim /etc/zabbix/zabbix_agentd.conf
指定服务器端IP:
指定服务器端IP:
指定本机IP:
service zabbix-agent start
2.给客户端安装apache:
yum install -y httpd
service httpd restart
3.在zabbix浏览器端添加主机
4.zabbix会默认找这个路径执行里面的脚本:/usr/lib/zabbix/alertscripts
mv /root/token.sh .
chown zabbix:zabbix token.sh
5.在zabbix浏览器端内添加参数,管理---报警媒介类型---创建媒体类型
三个参数:收件人地址、主题、详细信息
6.定义触发器:让zabbix自动执行脚本,配置--动作--创建触发器;定义哪些主机如果报警不提供信息:
管理--用户--admin--报警媒介
测试:service httpd stop