zabbix4.4.10
源
【1-1】如果有镜像源可以忽略此步骤
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1.下载源的rpm包
一.zabbix安装
【1-1】 安 装 源
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
【1-2】清理缓存
yum clean all
【1-3】服务安装
yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql zabbix-nginx-conf
【1-4】修改配置
1.#备份并修改【/etc/nginx/nginx.conf】
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
2.#修改【/etc/nginx/conf.d/zabbix.conf】
vim /etc/nginx/conf.d/zabbix.conf
server {
listen 80; #修改端口
server_name www.testos.com; #公司域名
root /usr/share/zabbix;
allow 114.86.224.23; # 放行公司IP
deny all;
index index.php;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ /\.ht {
deny all;
}
location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
3.#修改区时
vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Tokyo
4.#启动并开机自启
systemctl start nginx.service && systemctl enable nginx.service
systemctl start php-fpm.service && systemctl enable php-fpm.service
二.安装数据库
【2-1】下载工具
yum install -y ncurses-devel libaio-devel cmake gcc gcc-c++ glibc rpm-build autoconf numactl
【2-2】上 传 包
下载地址 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
【2-3 】 配 置
(一)【创建目录,用户,解压,改名,软连接】
mkdir /data
useradd mysql -s /sbin/nologin -M
tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
ln -s /data/mysql.5.7.28/ /data/mysql
【在support-flie目录下创建default.cnf文件】
cat <<EOF> /data/mysql/support-files/my_default.cnf
[mysqld]
server_id=2
log-bin = /data/mysql/logs/mysql-bin.log
#设置mysql的安装目录
basedir =/data/mysql/
#设置mysql数据库的数据存放目录
datadir = /data/mysql/data
#设置端口
port = 3306
socket = /var/lib/mysql/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /data/mysql/logs/mysqld.log
pid-file = /data/mysql/data/mysqld.pid
EOF
(三)【复制启动配置文件】
\cp /data/mysql/support-files/my_default.cnf /etc/my.cnf
创建目录
mkdir -p /data/mysql/logs/
(四)【授权目录,初始化】
chown mysql.mysql /data/mysql/ -R
/data/mysql/bin/mysqld --initialize --user=mysql --basedir=/data/mysql/ --datadir=/data/mysql/data/
(五)【复制初始化脚本并替换启动脚本中的路径】
cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i "s#usr/local#data#g" /etc/init.d/mysqld /data/mysql/bin/mysqld_safe
(六)【设置成systemctl启动】
cat <<EOF> /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
(七)【配置环境变量 ,加载环境变量 ,给启动脚本授权700】
echo 'PATH=/data/mysql/bin/:$PATH' >/etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
chmod 700 /etc/init.d/mysqld
(八)【启动数据库,做链接,】
systemctl start mysqld && systemctl enable mysqld.service
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
(九)【查找mysql密码,登陆数据库】
[root@suzhu ~]# grep "local" /data/mysql/logs/mysqld.log
mysql -uroot -p
set password=password('qazwsx123456');
flush privileges;
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@"192.168.24.%" identified by 'zabbix';
(十)导入zabbix数据
zcat /usr/share/doc/zabbix-server-mysql-4.2.8/create.sql.gz |mysql -uroot -p zabbix
三.zabbix配置
【3-1】server端
vim /etc/zabbix/zabbix_server.conf
在如下行进行修改
91 DBHost=localhost
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword=zabbix
【3-2】agent端
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.24.132
ServerActive=192.168.24.132
【3-3】启动
systemctl start zabbix-agent.service && systemctl enable zabbix-agent.service
systemctl start zabbix-server.service && systemctl enable zabbix-server.service
浏览器输入192.168.24.132即可安装
监控内容:略
六.企业微信发送告警
【6-1】微信申请
1.【进入企业微信网页版本】
https://work.weixin.qq.com/wework_admin/gdt/25?from=0014100470&bd_vid=11860413431973884778
2.【申请注册并登陆】
3.点击: 【应用管理】——》【创建应用】——》【应用名称】--》【应用介绍】——》【选择部门成员】--完成
4.点击: 【通讯录】——》【创建部门】————》【添加子部门】——》【运维部】——》【点击成员】——》【设置所在部门】
5.三个信息:
【企业】:corpid = 'ww3c447ba1eec2ab' #CorpID是企业号的标识
【应用】:AgentId 1000003 应用的标识
【Secret】:LStqb7q8YmhmmdX134qyjFGRKqhKbTyGOqeo
6-1安装
yum install python-simplejson -y
【6-2】配置脚本
1.#在zabbix特定目录下创建脚本
vim /usr/lib/zabbix/alertscripts/wechat.py
#!/usr/bin/python
#_*_coding:utf-8 _*_
import urllib,urllib2
import json
import sys
import simplejson
reload(sys)
sys.setdefaultencoding('utf-8')
def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token
def senddata(access_token,user,subject,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":"LiuZongLiang", #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
"toparty":"2", #企业号中的部门id。
"msgtype":"text", #消息类型。
"agentid":"1000002", #企业号中的应用id。
"text":{
"content":subject + '\n' + content
},
"safe":"0"
}
# send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)
if __name__ == '__main__':
user = str(sys.argv[1]) #zabbix传过来的第一个参数
subject = str(sys.argv[2]) #zabbix传过来的第二个参数
content = str(sys.argv[3]) #zabbix传过来的第三个参数
corpid = 'ww3c487ba1e6eec2ab' #CorpID是企业号的标识
corpsecret = 'LStqb7q8Ymh3ZecamHdX134qyjFGRKqhKbTyGOqeo' #corpsecretSecret是管理组凭证密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)
【6-3】授权文件
chmod 777 wechat.py
chown zabbix.zabbix wechat.py
【6-4】配置页面
配置一:报警媒介
*名称:【wechat】
类型:【脚本】 #下拉选择“脚本”
脚本名称【wechat.py】
脚本参数
参数 动作
{ALERT.SENDTO} 【移除】
{ALERT.SUBJECT} 【移除】
{ALERT.MESSAGE} 【移除】
【添加】
已启用【√】
【添加】【取消】 #点击添加
添加完后,点击右边测试(没有测试按钮的属于zabbix版本过低)
发送用户:LiuZongLiang #发送接收的企业微信成员
配置二:用户关联
1.点击:
【管理】——》【用户】--》【别名】
2进入后,点击用户右边【报警媒介】
3.添加
类型:wechat
收件人:LiuZongLiang #添加企业微信成员
当启用时间
1-7,00:00-24:00
如果存在严重性则使用如下
v【未分类】
v【信息】
v【警告】
v【一般严重】
v【严重】
v【灾难】
点击【已启用】
点击【添加】
配置三:动作配置
点击:
1.【动作】——》【名称】——》【触发器或者触发名称】——》[添加]——》【已启用】
然后点击【操作】——》【新的】——》【操作类型】——》【发送到用户群组】——》【用户】——>【仅送到所有】改为【wechat】——》点击[添加]——》【恢复操作】....——》【更新操作】——》【添加】
完成
七.QQ邮箱发送告警
【7-1】开启功能
1.点击【QQ】——》【邮箱】--》【设置】——》【账户设置】
开启服务:
POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?) 已关闭 | 开启
IMAP/SMTP服务 (什么是 IMAP,它又是如何设置?) 已关闭 | 开启
2.点击右边开启,然后会随机生成一个一长串的密码【figpneovepwwbecd】
【7-2】配置页面
【提示:】打√号的为选择方式
1.点击zabbix-web界面版
点击【管理】——》【创建媒体类型】——》
报警媒介类型
报警媒介类型选项
【名称】:QQ邮箱 #自定义为QQ邮箱
【类型】:电子邮件 #类型选择电子邮件
【SMTP服务器】: smtp.qq.com #填写smtp.qq.com
【SMTP服务器端口】:465 #端口号:456
【SMTP HELO】:qq.com #qq.com
SMTP电邮: 5435435@qq.com #邮箱
安全链接 【无STARTTLS(纯文本通信协议扩展)】 [√]【SSL/TLS】 #安全连接选择SSl和TLS,下面两个SSL验证对端,和SSL验证主机打钩
SSL验证对端[√]
SSL验证主机[√]
认证:【无】 [√]【用户名和密码】 #选择用户名密码认证,下面数据用户名和密码
用户名称 5435435@qq.com
密码 figpneovepwwbecd
Message format
【HTML】【文本】
已启用[√]
【添加】 【取消】
【添加完成后,右边有个测试的按钮,测试发送邮件是否成功
如果没有测试按钮的,属于zabbix版本过低,升级服务即可
【7-3】用户配置
1.测试成功后——》点击【配置】——》【用户】--》【Admin】——》右边【报警媒介】
2.点击【添加】
报警媒介
类型: QQ邮箱
收件人 【5435435@qq.com】 移除
添加
当启用时 【1-7,00:00-24:00】
如果存在严重性则使用【】未分类
【】信息
【√】警告
【√】一般严重
【√】严重
【√】灾难
已启用【√】
【添加】 【取消】
【8-4】动作配置
点击:
1.【动作】——》【名称】——》【触发器或者触发名称】——》[添加]——》【已启用】
然后点击【操作】——》【新的】——》【操作类型】——》【发送到用户群组】——》【用户】——>【仅送到所有】改为【wechat】——》点击[添加]——》【恢复操作】....——》【更新操作】——》【添加】
完成