如何做搞笑的视频视频网站,最新新闻实时新闻,可以做超大海报的网站,万网域名备案网站高级文件系统 一、RSYNC概述 1、作用#xff1a;快速的文件复制工具#xff08;支持本地和远程#xff09;#xff0c;以及删除、查看等基本功能。
2、特点#xff1a;支持实时#xff08;inotify、sersync#xff09;的增量备份工具3、模式#xff1a;检查模式#…高级文件系统 一、RSYNC概述 1、作用快速的文件复制工具支持本地和远程以及删除、查看等基本功能。
2、特点支持实时inotify、sersync的增量备份工具3、模式检查模式按照指定规则检查需要被同步的文件列表同步模式确定文件列表后同步过程中需要进行的额外工作 4、工作方式本地文件系统同步rsync [OPTION...] SRC... [DEST]本地主机使用远程SHELL和远程主机同步基于sshPull下载: rsync [OPTION...] [USER]HOST:SRC... [DEST]Push上传: rsync [OPTION...] SRC... [USER]HOST:DEST本地主机使用网络套接字连接远程主机同步基于rsyncPull: rsync [OPTION...] [USER]HOST::SRC... [DEST]rsync [OPTION...] rsync://[USER]HOST[:PORT]/SRC... [DEST]Push: rsync [OPTION...] SRC... [USER]HOST::DESTrsync [OPTION...] SRC... rsync://[USER]HOST[:PORT]/DEST注意事项第一个路径参数是源文件路径可以同时指定多个路径定义同步的基准路径的格式可以是本地也可以是远端主机若主机地址和路径之间使用单冒号分割表示使用远程SHELL的通信方式若主机地址和路径之间使用双冒号分割表示使用rsync daemon的通信方式若只有一个路径则表示查看类似ls的效果目录后带斜线目录内容ls -l与不带斜线目录本身ls -d效果完全不一样5、常用选项v 显示rsync过程中的详细信息vvvv更详细的信息P 显示文件传输进度n dry-run测试模式r 递归t 保留mtime属性o 保留属主属性g 保留属组属性p 保留权限不包括特殊权限l 保留链接属性仅复制链接文件本身D 保留文件的类型设备文件、特殊文件等a 归档相当于rtopgDlz 压缩R 使用相对路径W 使用完整备份默认是增量--max-size 限制传输的最大文件大小--min-size 限制传输的最小文件大小--exclude 排除指定的文件--delete 以SRC为基准对DST进行同步。--backup 对DST已存在的文件进行备份默认使用~做后缀名--existing 只更新DST已存在的文件--ignore-existing 只更新DST不存在的文件--remove-source-files 删除SRC已经成功传输的文件6、实例7、规则--exclude 设置排除规则 --exclude-from 从文件中读取排除项filter规则exclude排除规则 include包含规则show显示规则protect保护规则hide隐藏规则risk取消保护规则 注意事项路径相对路径和绝对路径尾斜线启用和不启用-i 输出文件的过程及路径 代表传输到本地主机接收 代表传输到远程主机发送f 代表普通文件其它值如d、L、D、S等T 修改时间不同8、delete二、构建基于RSYNC的同步服务器 1、配置文件 /etc/rsyncd.conf 2、启动方式 rsync --daemon 3、默认端口 873 4、命令格式 Pull: 下载 rsync [OPTION…] [USER]HOST::SRC… [DEST] rsync [OPTION…] rsync://[USER]HOST[:PORT]/SRC… [DEST] Push: 上传 rsync [OPTION…] SRC… [USER]HOST::DEST rsync [OPTION…] SRC… rsync://[USER]HOST[:PORT]/DEST
5、配置文件选项uid nobody rsync的运行用户默认nobodygid nobody rsync的运行组默认nobodyuse chroot yes 传输开始前将rsync禁锢在指定目录下运行max connections 4 最大并发连接数量pid file /var/run/rsyncd.pid PID文件的路径及名称exclude lostfound/ 排除lostfound/目录 timeout 900 客户端连接的超时时间dont compress 对特定文件类型不进行压缩处理[ftp] 模块名称path /home/ftp 模块对应的目录路径comment ftp export area 目录说明6实验 基于rsync daemon的同步服务器 两台虚拟机1台1.1客户端 1台1.254 服务器 服务器 [rootzhao ~]# vim /etc/rsyncd.conf 主配置文件 cenots7有 之前的需要创建 port888 非默认的端口 uid rsync 用户 gid rsync 组 use chroot yes 禁锢在目录下不能随边访问 max connections 4 最大的连接资源 pid file /var/run/rsyncd.pid 存放进程文件的目录 log file /var/log/rsync.log 日志文件存放的目录 motd file /var/rsync/rsync.motd 提示信息存放的目录可以不加 exclude lostfound/ 错误文件目录 dont compress *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 不需要压缩 fake super yes 如果有特殊要求就以root用户来
[private] 共享名 path /var/pri 共享名的目录路径 comment read/write 简单说明读写 read only false 权限yes只读读写访问 auth users rsync_users 访问添加用户只要不是纯数字就可以 secrets file /etc/rsyncd.passwd 密码文件的位置 [public] 公共目录 path /var/pub 目录路径 comment read 简单说明只读 read only yes 权限只读 [rootzhao ~]# mkdir /var/rsyncd 创建目录 [rootzhao ~]# vim /var/rsyncd/rsync.motd 创建提示文件 welcome to RSYNC server: 随便写提示信息 [private]:read/write 读写访问 [public]:only read 只读访问 [rootzhao ~]# mkdir /var/{pri,pub} 创建两个目录 [rootzhao ~]# useradd -s /sbin/nologin -r rsync 创建系统用户 [rootzhao ~]# chown -R rsync:rsync /var/{pri,pub} 修改权限 [rootzhao ~]# vim /etc/rsyncd.passwd 默认没有自己创建只认第一行 必须加用户名 [rootzhao ~]# chmod 600 /etc/rsyncd.passwd 必须修改成管理员才能登陆 rootzhao ~]# netstat -anpt 查看没有启用 [rootzhao ~]# systemctl start rsyncd.service 开启rsyncd rootzhao ~]# netstat -anpt 查看启用 rootzhao pri]# vim pri.txt 创建测试用的文件 otzhao pub]# vim pub.txt 创建测试用的文件 客户端 Pull下载 [rootlocalhost ~]# rsync --list-only --port 888 rsync_users192.168.1.254::private 需要密码 [rootlocalhost ~]# rsync --list-only --port 888 rsync_users192.168.1.254::public 不需要密码 [rootlocalhost ~]# rsync -avz --port 888 rsync_users192.168.1.254::private/pri.txt /root下载 [rootlocalhost ~]# rsync -avz rsync://rsync_users192.168.1.254:888/private/pri.txt /root 下载 如果不想输入密码免密码验证 [rootlocalhost ~]# echo “123456” /tmp/rsync_passwd 创建一个密码链接 [rootlocalhost ~]# chmod 600 /tmp/rsync_passwd 修改权限 [rootlocalhost ~]# rsync -avz rsync://rsync_users192.168.1.254:888/private/pri.txt /root --password-file/tmp/rsync_passwd 不需要密码下载 Push上传 [rootlocalhost ~]# vim web01.txt 创建测试文件 [rootlocalhost ~]# rsync -avz --port 888 web01.txt rsync_users192.168.1.254::private --password-file/tmp/rsync_passwd 去服务器端查看有这个文件 #rsync-avz web01.txt rsync://rsync_users192.168.1.254:888/private/ --password-file/tmp/rsync_passwd 三、构建基于SSH的同步服务器 1、语法结构本地主机使用远程SHELL和远程主机同步基于ssh Pull下载: rsync [OPTION…] [USER]HOST:SRC… [DEST] Push上传: rsync [OPTION…] SRC… [USER]HOST:DEST 2、实验 基于ssh的同步服务器 环境跟上面一样 服务器 [rootzhao ~]# mkdir /var/ssh 创建一个同步目录 [rootzhao ~]# useradd test 创建一个用户 rootzhao ~]# passwd test test密码 [rootzhao ssh]# vim ssh.txt 测试文件 客户端 [rootlocalhost ~]# rsync -avz --list-only test192.168.1.254:/var/ssh 有哪些 [rootlocalhost ~]# rsync -avz test192.168.1.254:/var/ssh/ssh.txt /root 下载 单独给test目录在ssh目录里权限服务器 [rootzhao var]# setfacl -m u:test:rwx ssh/ [rootlocalhost ~]# rsync -avz web01.txt test192.168.1.254:/var/ssh 上传 服务器查看有 免密码验证 [rootlocalhost ~]# ssh-keygen -t rsa 生成密钥对 [rootlocalhost ~]# ssh-copy-id test192.168.1.254
四、通过远程SSH连接rsync daemon二和三的混用 服务器端rsync daemon没有启动的情况下依然可以访问其部分配置 1、语法结构 rsync [options] --rsh”ssh -l ssh_name” anth_userhost::src rsync [options] -e “ssh -l ssh_user” anth_userhost::rsc rsync [options] -e “ssh -l ssh_user” rsync://anth_userhost/src 2、实验 客户端验证 服务器 [rootzhao var]# systemctl stop rsyncd.service 关闭rsync [rootzhao var]# netstat -anpt 查看端口没有888 客户端 [rootlocalhost ~]# rm -rf pri.txt 删除 [rootlocalhost ~]# rsync -avz --rsh“ssh -l root” rsync_users192.168.1.254::private/pri.txt /root 第一次输入root密码zbb827. 第二次输入程序用户密码123456 免密码验证 [rootlocalhost ~]# ssh-keygen -t rsa 生成密钥对 [rootlocalhost ~]# ssh-copy-id root192.168.1.254 公钥信息 [rootlocalhost ~]# rsync -avz --rsh“ssh -l root” rsync_users192.168.1.254::private/pri.txt /root 只需输入程序用户密码 [rootlocalhost ~]# rsync -avz --rsh“ssh -l root” rsync_users192.168.1.254::private/pri.txt /root --password-file/tmp/rsync_passwd 不需要输入密码
五、实时数据同步 1、工具 inotify、 sersync、 lsyncd rsyncinotify 2、inotify inotify-tools
inotifywait:检查文件变化实现监控功能 inotifywaych:收集统计信息 3、内核参数 fs.inotify.max_queued_events 16384 event可排队的最大数量 fs.inotify.max_user_instances 128 用户可创建的instances实列的最大数量 fs.inotify.max_user_watches 8192 每个instances中可以监控的最大文件数 修改echo “数值” /proc/sys/fs/inotify/类型man_user_watches 4、inotify常见选项 m 持久监控 r 递归(有可能需要调整最大文件数) q 仅输出基本信息 e 指定监控对象 –exclude 排除指定的监控对象 –timefmt 输出的时间格式“%Y%m%d%H%M%S” –format 自定义输出格式 %w 输出监控路径 %f 输出产生事见的具体文件名 %e 输出事见名称 %T 输出时间 5、Inotifywait 监控对象 access 文件被访问 modify 文件被写入 attrib 元数据被修改 close_write 打开的文件被关闭为写入打开文件 close_nowrite 打开的文件被关闭为读取打开文件 close close_writeclose_nowrite open 文件被打开 moved to 向监控对象移入文件 moved from 将监控对象中的文件移出 create 创建文件 delete 删除文件 umount 挂载在监控目录上的文件系统被umount isdir 监控目录相关操作
常见监控对象 close_write、moved to、movedfrom、delete、isdir 6、实验 注意事项 1、尽可能同步目录而不是产生事件的单个文件 2、尽量减少批量操作多次触发rsync影响服务器性能 3、对不同事件可单独设计inotifyrsync的脚本 4、rsync默认是单向同步 实验添加一台虚拟机 Ip1.3安装inotify工具eject换光盘 [rootzhao ~]# cd /run/media/root/20130806_063316/ 进入光盘 20130806_063316]# cp * /usr/src/ 复制到 ]# cd /usr/src/ 进到目录 换成系统盘 重新挂载光盘 如果有这三个文件说明支持
yum -y install gcc* [rootzhao src]# tar -zxf inotify-tools-3.14.tar.gz 解压 [rootzhao inotify-tools-3.14]# ./configure --prefix/usr/local/inotify 进入编译
make make install 安装
默认有两个工具
echo P A T H 查看环境变量 P A T H PATH 查看环境变量 PATH PATH查看环境变量PATHPATH:/usr/local/inotify/bin/ 把这个路径添加到变量里 sysctl -a | grep inotify 查看与inotify相关的数据值 简单的全部监控(打开两个终端) 1终端rootzhao ~]# mkdir test 创建监控目录 [rootzhao ~]# inotifywait -mrq test 监控全部 2终端输入随便命令 利用脚本监控 vim 1.sh inotifywait -mrq -e delete,close_write,moved_to,moved_from,isdir /root/test | while read line 监控test目录里的变化 类型 事件分析 do if echo KaTeX parse error: Expected EOF, got at position 24: …ep -i delete ̲//dev/null 如果是…{line} /root/delete.log 所有跟删除有关的 else rsync -az /root/test root192.168.1.100:/tmp 如果不是删除就放到 fi done 建立密钥对 rootzhao ~]# ssh-keygen -t rsa [rootzhao ~]# ssh-copy-id 192.168.1.100 测试
#设置两个变量 dir 监控的目录 dst 监控的ip #inotifywait 对删除打开并写入移动文件监控目录等操作进行监控除了swp文件不监控 对监控时间格式加以说明。 监控的目录 循环里面的值line
如果执行的操作是delete|moved_from 则扔进垃圾站
如果是其他的值 值字符串和date的时间格式 追加到/tmp/www.log目录中记录
#同步 delete 单方向的一致同步除了SWP和SWX两种文件外 将$dir 中的文件 通过ssh的方式发送给另一台服务器 #如果上一条命令成功最显示 send成功不成功就显示 失败 并输入到指定文件中
一、存储概述 1、存储架构 封闭性系统的存储设计之初就明确用途和使用场景 开放性系统的存储设计之初无法明确用途和使用场景 2、开放系统的存储类型 内置存储 外挂存储 3、外挂存储 DAS直连式存储 特点 安装简单性价比高 通常不具备灾备能力 不适合对性能要求高的场景 NAS网络附加存储 特点 提供文件级的网络存储 支持多计算机 即插即用 samba、NFS、CIFS SAN存储区域网络
二、ISCSI 1、定义 互联网小型计算机系统接口 2、优势 使用SAN网络进行存储优化 使用软件配置进行存储分配无需额外物理设备 简化数据复制、迁移和灾备 3、名词 启动器initiatoriscsi客户端 目标targetiscsi服务器端存储资源 ACL访问控制列表 发现discovery查询服务器端已列出可配置的目标 IQNiscsi的唯一名称用于命名和识别启动器和目标 LUN逻辑单元带编号的块设备连接目标时使用 一个目标仅提供给客户端一个LUN 一个或多个LUN连接到一个目标
三、构建ISCSI网络存储服务器 两台虚拟机1存储资源两块磁盘1.1 2客户机1.2 存储资源 [rootlocalhost ~]# fdisk /dev/sdb 创建5个分区4个 t ~]# partprobe /dev/sdb 格式化 ootlocalhost ~]# lsblk 查看磁盘 mdadm -C /dev/md0 --autoyes -n 3 -l 5 -x 1 /dev/sdb{1,2,3,5} 创建raid5
mdadm -D /dev/md0 查看是否创建成功
yum -y install targetcli 服务器端的工具 systemctl start target 开启这个工具 targetcli 进入命令页面 / cd backstores/block 进入 /backstores/block create disk0 /dev/md0 创建disk0 / iscsi/ 进入目录 /iscsi create 生成iqn 创建一个逻辑单元 acls访问规则
退出一定要用exit
客户端 [rootzhao ~]# rpm -q iscsi-initiator-utils 默认安装 服务打开
[rootzhao ~]# vim /etc/iscsi/initiatorname.iscsi InitiatorNameiqn.2003-01.org.linux-iscsi.localhost.x8664:sn.e7d63749b7b6 有了四、cobbler网络装机 Cobbler一键装机 一部署环境。 rootlocalhost ks_mirror]# vim /etc/cobbler/pxe/pxedefault.template 定制cobbler引导菜单默认 1安装copbbler和必要的组件通过镜像文件安装 [rootlocalhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo rootlocalhost yum.repos.d]# yum -y install epel-release rootlocalhost yum.repos.d]# yum -y install cobbler 用来快速建立linux网络安装环 rootlocalhost yum.repos.d]# yum -y install pykickstart 实现无人值守安装 [rootlocalhost yum.repos.d]# yum -y install cobbler-web debmirror 网页页面管理 rootlocalhost yum.repos.d]# yum -y install dhcp 给空白主机自动分配IP地址 [rootlocalhost yum.repos.d]# yum -y install httpd 作为控制台程序运行 Xinetd 提供访问控制、加强日志和资源管理功能 Tftp 提供引导镜像文件下载 rsync——远程同步管理实现数据同步 2修改cobbler配置文件 [rootzhao yum.repos.d]# systemctl start httpd ootlocalhost yum.repos.d]# systemctl start cobblerd.service [rootlocalhost yum.repos.d]# cobbler check ##cobbler检测需要优化项 [rootlocalhost yum.repos.d]# vim /etc/cobbler/settings next_server: 192.168.1.1 本地服务器地址 server: 192.168.1.1 manage_dhcp: 1 dhcp
[rootlocalhost yum.repos.d]# vim /etc/xinetd.d/tftp 进行tftp优化 disable no no|yes
[rootlocalhost yum.repos.d]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/ [rootlocalhost yum.repos.d]# systemctl start rsyncd 优化开启远程同步管理服务器 rootlocalhost yum.repos.d]# vim /etc/debmirror.conf #dists“sid”; 注释 #arches“i386”;
[rootlocalhost yum.repos.d]# openssl passwd -1 -salt ‘123456’ ‘123456’ 优化设置管理员密码 $1 123456 123456 123456wOSEtcyiP2N/IfIl15W6Z0 复制这段加密过后的密文 [rootlocalhost yum.repos.d]# vim /etc/cobbler/settings 修改配置文件将密文添加到此处
[rootlocalhost yum.repos.d]# systemctl start rsyncd rootlocalhost yum.repos.d]# systemctl restart cobblerd.service 3[rootlocalhost yum.repos.d]# vim /etc/cobbler/dhcp.template 优化dhcp修改配置文件 subnet 192.168.1.0 netmask 255.255.255.0 { 修改网段 option routers 192.168.1.1; 网关 option domain-name-servers 192.168.1.1; dns地址 option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.1.100 192.168.1.254; 地址池
[rootlocalhost yum.repos.d]# cobbler sync 同步生成dhcp配置文件/etc/dhcp/dhcpd.conf [rootlocalhost yum.repos.d]# systemctl start dhcpd rootlocalhost yum.repos.d]# cobbler import --path/media/cdrom/ --nameCentOS7.8-x86_64 --archx86_64 导入镜像文件 等 rootlocalhost yum.repos.d]# cobbler list 查看文件信息 [rootlocalhost mnt]# cd /var/www/cobbler/ks_mirror/ 查看的 [rootlocalhost ks_mirror]# ls
开启全部服务 [rootlocalhost yum.repos.d]# systemctl restart cobblerd.service rootlocalhost yum.repos.d]# systemctl restart tftp [rootlocalhost yum.repos.d]# systemctl start dhcpd
开一台机器进行通过cobbler安装
一、日志概述 1、日志管理系统 elasticsearch、logstash、solr、kibana、splunk
solr apache lucene
splunk SPL
elasticsearchjson 2、ELK平台 elasticsearch、logstash、kibana
优势处理方式灵活配置简单检索性能高效集群扩展 前端界面elasticsearch分布式搜索和分析引擎提供对大容量数据的存储、搜索、分析等
logstash数据收集引擎支持动态的从数据源采集信息
kibana数据分析和可视化平台
filebeat数据采集器安装在指定的数据源主机3、常见架构
二、安装步骤 1、环境准备两台 a、防火墙禁用 b、selinux禁用 c、安装JDK rpm安装包放置两台虚拟机 cp -r rpm/ /usr/src/ cd /usr/src/rpm/ yum -y install *.rpm vim /etc/profileJAVA_HOME/amoeba/jdkexport JAVA_HOME
PATH J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH export PATH
CLASSPATH.: J A V A H O M E / l i b / t o o l s . j a r : JAVA_HOME/lib/tools.jar: JAVAHOME/lib/tools.jar:JAVA_HOME/lib/dt.jar:$CLASSPATH export CLASSPATH source /etc/profile
d、 打开的最大文件数vim /etc/security/limits.conf* soft nofile 65535* hard nofile 65535/etc/yum.repos.d/
e、准备软件rpm包rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchvim /etc/yum.repos.d/es.repo[elasticsearch]nameElasticsearch repository for 7.x packagesbaseurlhttps://artifacts.elastic.co/packages/7.x/yumgpgcheck1gpgkeyhttps://artifacts.elastic.co/GPG-KEY-elasticsearchenabled1autorefresh1typerpm-mdyum -y install elasticsearch kibana logstash filebeat 3、配置elasticsearch分布式搜索引擎 分析 存储 72.130 72.131 Yum -y install *.rpm [rootzhao rpm]# vim /etc/elasticsearch/elasticsearch.yml
另外一台除了 其他都一样 [rootzhao rpm]# mkdir -p /data/elk/{data,logs} [rootzhao rpm]# chown -R elasticsearch:elasticsearch /data/elk/{data,logs} [rootzhao rpm]# systemctl start elasticsearch.service 表示成功 [rootzhao rpm]# netstat -nptl 查看9200、9300 端口
[rootzhao rpm]# vim /etc/elasticsearch/elasticsearch.yml
[rootlocalhost rpm]# systemctl restart elasticsearch.service [rootlocalhost rpm]# yum -y install git [rootlocalhost ~]# git clone git://github.com/mobz/elasticsearch-head.git rootlocalhost ~]# cp -r elasticsearch-head/ /usr/local/ [rootlocalhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo otlocalhost yum.repos.d]# yum -y install epel-release [rootlocalhost yum.repos.d]# yum -y install npm [rootlocalhost yum.repos.d]# npm config set registry http://registry.npm.taobao.org [rootlocalhost yum.repos.d]# npm install -g grunt-cli 等 [rootlocalhost ~]# cd /usr/local/elasticsearch-head/ cd _site/ [rootlocalhost _site]# vim /usr/local/elasticsearch-head/Gruntfile.js
[rootlocalhost _site]# vim app.js 192.168.72.1319200
[rootlocalhost _site]# cd /usr/local/elasticsearch-head/ [rootlocalhost elasticsearch-head]# npm install 等 [rootlocalhost elasticsearch-head]# npm install 检查 1、首先改成公网 关闭防火墙 72.131 ootzhao elasticsearch-head]# grunt server 运行server服务 后台
符合查询 写完之后验证 提交请求
回到概览 点击刷新
分片就是如果有四个片有两个文件那就把四个分片分成两份一个文件有两个分片数据的切片 存储容器 主分片存储数据和从分片提供主分片备份 索引基于文档文件快速查找的工具testindex但这个上面的索引类似于数据库也就是说是数据集合相同的数据放在一起就是一个集合 集群状态 绿色正常工作状态 黄色主分片正常工作但至少一个主分区对应的从分片没有正常工作 红色至少一个主分片没有正常工作 [rootzhao ~]# eject
[rootzhao ~]# cd /run/media/root/20210316_104643/ [rootzhao 20210316_104643]# cp cerebro-0.9.3.tgz /usr/local/ [rootzhao 20210316_104643]# cd /usr/local/ [rootzhao local]# tar -zxf cerebro-0.9.3.tgz -C /usr/local/ [rootzhao local]# mv cerebro-0.9.3/ cerebro 改名或软连接 [rootzhao local]# cd cerebro/conf/ [rootzhao conf]# vim application.conf
[rootzhao conf]# cd /usr/local/cerebro/ [rootzhao cerebro]# vim cerebro-up 端口只要不是特权端口
[rootzhao cerebro]# chmod x cerebro-up 给执行权限 [rootzhao cerebro]# vim /etc/systemd/system/cerebro.service 启动脚本
[rootzhao cerebro]# systemctl daemon-reload [rootzhao cerebro]# systemctl enable cerebro
[rootzhao cerebro]# systemctl start cerebro [rootzhao cerebro]# systemctl status cerebro
点用户名
3、首先改成公网72.132 关闭防火墙 安装logstash 日志的收集 分析过滤 ootzhao ~]# eject
[rootzhao ~]# cd /run/media/root/20210316_104643/ [rootzhao 20210316_104643]# cp logstash-7.11.2-x86_64.rpm /usr/src/ [rootzhao 20210316_104643]# cd /usr/src/ [rootzhao src]# rpm -ivh logstash-7.11.2-x86_64.rpm [rootzhao src]# vim /etc/logstash/logstash.yml
自动加载10s以上 本机地址 [rootzhao src]# chown -R logstash:logstash /usr/share/ 不改服务会报错 rootzhao src]# systemctl enable logstash 自动启动成功
[rootzhao src]# systemctl start logstash [rootzhao src]# /usr/share/logstash/bin/logstash -e ‘input { stdin{} } output { stdout{ codec rubydebug }}’ 你要输入什么信息 你要输出什么信息对象什么样的格式 输入到屏幕上
[rootzhao src]# /usr/share/logstash/bin/logstash -e ‘input { stdin{} } output { file { path “/tmp/log-%{YYY.MM.dd}message.gz”}}’ 输入到文件上 message.gz随便起 输入 help
logstash的语法规则 1、index类型 Index “log_index_%{YYY.MM.dd}” 2、hosts类型 hosts [“192.168.1.1:80”,”192.168.1.2:8080”] 3、document_type文档类型 4、template模板类型 template_name template_overwrite manage_template 4、首先改成公网 72.133 关闭防火墙 安装kibana 图形界面 可视化 ootzhao ~]# eject
[rootzhao ~]# cd /run/media/root/20210316_104643/ [rootlocalhost 20210316_104643]# cp kibana-7.11.2-x86_64.rpm /usr/src/ [rootlocalhost 20210316_104643]# cd /usr/src/ [rootlocalhost src]# rpm -ivh kibana-7.11.2-x86_64.rpm [rootlocalhost src]# vim /etc/kibana/kibana.yml
可以从任意地址访问 从131服务器访问 索引名称 启动中文补丁 [rootlocalhost src]# systemctl start kibana 启动 [rootlocalhost src]# netstat -anpt 查看5601是否启动 192.168.72.1315601
一、概述 1、存储方式 单机、独立服务器图片、页面、分布式 2、分布式存储的特点 扩展能力1G可以扩展成2G 可用性可以设置多个存储电脑 弹性存储有一个虚拟存储空间 缺点设置麻烦需要多台服务器 3、分布式文件系统DFS 就是可以放在不同的节点 最早的是NFS网络文件系统 4、分布式文件系统的类型 GFS、HDFS、CEPH、MogileFS、MooseFS、TFS GFS(谷歌)、Mapreduce、Bigtable三篇论文世界最大的三大数据软件 hadoop分布式文件系统 hadoop之父 spark storm mogileFS danga memcachedmoosefs TFSCEPH 高性能分布式文件系统 CRUSH算法openstack4、分布式存储类型文件存储支持POSIX可移植操作系统接口有这个就可以在liunx和weindos系统都可以接口提供并行化访问的能力和冗余机制常用于存储非结构化数据块存储通过qemu或iscsi互联网存储接口协议访问常用于存储结构化数据对象存储以对象作为基本的存储单元主要用于存储非结构化数据网盘结构化数据数据能够用统一的结构来表示 非结构化数据无法用数字来表示的数据图片、网页文件音频 半结构化数据有A有B 文档
二、CEPH集群 1、基本组件 CEPH监视器ceph-mon维护集群状态的映射 CEPH管理器ceph-mgr跟踪集群运行指标 CEPH对象存储ceph-osd存储数据的核心组件 CEPH元数据服务ceph-mds存储元数据 2、实现步骤 环境准备 客户机 第一步 三台虚拟机三台ceph 三台设置成公网 72.130 72.131 72.132 关闭防火墙四台都关 #iptables -F #systemctl stop firewalld #setenforce 0 免密码验证三台都做: [rootlocalhost ~]# ssh-keygen -t rsa [rootlocalhost ~]# ssh-copy-id 192.168.72.131 [rootlocalhost ~]# ssh-copy-id 192.168.72.132 [rootlocalhost ~]# ssh node2 不需要密码 主机映射文件 ootlocalhost ~]# vim /etc/hosts
#scp /etc/hosts node2:/etc/ 把文件传到node2 #scp /etc/hosts node3:/etc/ 把文件传到node3 去第二台查看 [rootzhao ~]# cat /etc/hosts
安装CEPH相关软件 1、2、3都装: #cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/ali.repo http://mirrors.aliyun.com/repo/Centos-7.repo
阿里云 #yum -y install epel-release 会生成epel.repo epel-testing.repo #yum -y install yum-plugin-priorities #cat /etc/yum/pluginconf.d/priorities.conf 依赖关系的软件包 #rpm --import ‘https://download.ceph.com/keys/release.asc’ 验证用的公钥 #vim ceph.repo 查看文件 https://ceph.io/
[ceph] nameCeph packages for b a s e a r c h b a s e u r l h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / c e p h / r p m − 15.2.4 / e l 7 / basearch baseurlhttps://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-15.2.4/el7/ basearchbaseurlhttps://mirrors.tuna.tsinghua.edu.cn/ceph/rpm−15.2.4/el7/basearch enabled1 priority2 gpgcheck1 gpgkeyhttps://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
[ceph-noarch] nameCeph noarch packages baseurlhttps://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-15.2.4/el7/noarch enabled1 priority2 gpgcheck1 gpgkeyhttps://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
[ceph-source] nameCeph source packages baseurlhttps://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-15.2.4/el7/SRPMS enabled0 priority2 gpgcheck1 gpgkeyhttps://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
#yum clean all 清理软件源 #yum -y install ceph #pip3 install pecan #pip3 install werkzeug
第二步监视器ceph-mon部署node1 #cd /etc/ceph/ #uuidgen 集群文件系统ip号唯一值 310a5dc2-7062-4166-979a-74cdf031aaed #vim ceph.conf [global] 全区配置 fsid 310a5dc2-7062-4166-979a-74cdf031aaed 集群IP唯一值 mon initial members node1 初始化 mon host 192.168.72.130:6789 监视器对应的IP public network 192.168.72.0/24 允许哪些范围可以使用 auth cluster required cephx 集群认证相关的 auth service required cephx 服务器认证相关的 auth client required cephx 客户端认证相关的 osd journal size 1024 对象存储的大小 osd pool default 2 对象存储池生成的副本有2个通常环境下最好是3以上 osd pool default min size 1 节点不正常最少有1个 osd pool default pg num 333 可以存储pg的数量 osd pool default pgp num 333 可以存储pgp的数量 osd crush chooseleaf type 1 算法 mon_allow_pool_delete true 是否允许删除存储池不允许 #ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon ‘allow *’ 集群的密钥环ceph-authtool认证相关的工具-create-keyring表示创建一个密钥环 /tmp/ceph.mon.keyring监控端的密钥放在哪里–gen-key生成一个私钥 -n mon.私钥的名字–cap mon ‘allow *’权限最大操作 #ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon ‘allow *’ --cap osd ‘allow *’ --cap mds ‘allow *’ --cap mgr ‘allow *’ 管理员的密钥环 #ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/client.keyring --gen-key -n client.bootstrap-osd --cap mon ‘profile bootstrap-osd’ --cap mgr ‘allow r’ 客户端的r只读 把刚才创建的都放在/tmp/ceph.mon.keyring #ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring #ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/client.keyring #monmaptool --create --add node1 192.168.72.130 --fsid 310a5dc2-7062-4166-979a-74cdf031aaed /tmp/monmap 生成映射信息并创建 #mkdir /var/lib/ceph/mon/ceph-node1 创建监控器的数据目录 #ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring目录初始化 #chown -R ceph:ceph /var/lib/ceph/mon/ceph-node1/ 监控器的权限 #systemctl start ceph-monnode1 启动第一节点上的监控端 #systemctl status ceph-monnode1 active (running) 查看启动 #netstat -anpt 本地的监控端6789端口启动 #ceph -s 集群的健康状态错 #ceph mon enable-msgr2 修改集群状态 #ceph -s 好 配置管理器mgr
mkdir /var/lib/ceph/mgr/ceph-node1
#ceph auth get-or-create mgr.node1 mon ‘allow profile mgr’ osd ‘allow *’ /var/lib/ceph/mgr/ceph-node1/keyring #ceph-mgr -i node1 #ceph status 查看状态
将文件传到2、3虚拟机 #scp /var/lib/ceph/bootstrap-osd/client.keyring node2:/var/lib/ceph/bootstrap-osd/ #scp /var/lib/ceph/bootstrap-osd/client.keyring node3:/var/lib/ceph/bootstrap-osd/ 每台虚拟机都能识别 #scp /etc/ceph/ceph.conf node2:/etc/ceph/ #scp /etc/ceph/ceph.conf node3:/etc/ceph/ 第二、三台 其他两台虚拟机都有文件 #cd /var/lib/ceph/bootstrap-osd/ #mv client.keyring ceph.keyring 改名 #ceph-volume lvm create --data /dev/sdb 客户端磁盘必须什么都没做过 72.131和72.132同时做
mds配置node1 创建存放mds相关的数据目录 #mkdir /var/lib/ceph/mds/ceph-node1
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node1/keyring --gen-key -n mds.node1 设置mds的密钥环即生成私钥
#ceph auth add mds.node1 osd ‘allow rwx’ mon ‘allow profile mds’ -i /var/lib/ceph/mds/ceph-node1/keyring 导入密钥环设置权限 #vim /etc/ceph/ceph.conf
用第一台做同步文件改动 #scp /etc/ceph/ceph.conf node2:/etc/ceph/ #scp /etc/ceph/ceph.conf node3:/etc/ceph/ #ceph-mds --cluster ceph -i node1 -m node1:6789 启动元数据服务 启用mds守护进程 --cluster启用ceph集群 -i 启用node1进程 使用端口6789 #ceph osd pool create cephfs_data 128 创建存储池 最大不能超过250 #ceph osd pool create cephfs_metadata 64 创建分布式文件系统先指定元数据存储池然后指定存储数据 #ceph fs new cephfs cephfs_metadata cephfs_data
ceph fs ls 查看
创建挂载目录
mkdir /mnt/mycephfs
ceph :/表示把分布式文件系统根目录开始挂载到/mnt下使用的名为admin #mount -t ceph /mnt/mycephfs/ -o nameadmin 查看为什么为12G一部分为用户提供存储数据一部分被分给存储元数据 #df -hT
如果在加入一个新的节点也想用分布式文件系统进行管理 新开一台虚拟机 IP192.168.72.133 防火墙关闭 #wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo #yum -y install yum-plugin-priorities #yum -y install epel-release #scp ceph.repo 192.168.72.130:/etc/yum.repos.d/ #rpm --import ‘https://download.ceph.com/keys/release.asc’ #yum -y install ceph #pip3 install pecan #pip3 install werkzeug #ssh rootnode1 ‘ceph config generate-minimal-conf’ | tee /etc/ceph/ceph.conf 生成一个更小的文件从node1上获取本机生成 #chmod 644 /etc/ceph/ceph.conf 设置权限 #ssh rootnode1 ‘ceph fs authorize cephfs client.abc / rw’ | tee /etc/ceph/ceph.client.abc.keyring #chmod 600 /etc/ceph/ceph.client.abc.keyring 设置密钥环权限 #mount -t ceph /mnt -o nameabc 将ceph/根目录挂载到本地mnt下 #df -hT
监控系统 一、监控概述 1、监控对象 a、软/硬件资源 硬件服务器、路由、交换、其他I/O设备等 软件操作系统、网络、应用程序等 b、意外状态 服务关闭、设备宕机、服务器不可达等 c、严重事件 磁盘利用率大于n%free 主从同步延迟 CPU利用率大于n%uptime top d、趋势数据 图形展示数据的变化曲线 e、事件发生时间 f、时间产生原因 2、监控告警 a、采样 多次获取数据提高监控准确性 b、存储 c、展示 3、工作原理 a、调度器主动将探测到的数据发送给监控平台 b、监控平台主动向调度器收集数据 4、基本模块 a、agent代理程序收集数据 b、NMS网络监控系统汇总数据 5、数据传输 a、ssh远程连接 b、snmp简单网络协议 c、telnet远程连接 d、agent
6、snmp特点 实现机制 NMS– 设置监控类别 -- SNMP -- 本地采集数据 提供的工具 Snmpget、 snmpwalk、snmptrp 协议版本 V1最古老的版本 V2c添加身份识别功能组 V3功能最完善的版本 监控方式 直接通过SNMP协议收集数据 安装agent收集数据 通过ssh/telnet收集数据 通过特殊硬件接口收集数据IPMI 7、常见监控平台 cacti环 每一个监控指标都需要单独的RRD存储 httpd、mysql、PHP展示数据 rrdtool绘制图表 nagios 监控业务指标是否在合理区间内 不提供图形化的数据展示仅提供简单的图形功能
cactinagiosntop zabbix 二、zabbix 1、特性 数据采样 SNMP、SHH/TELNET、agent、IPMI、JMX 自定义检测机制通过zabbix_agent定义监控指标 自定义时间间隔设置监控范围 实时绘画 内置的绘画接口读取数据库重的数据完成绘画 支持graph图形生成、map类似网络拓补、screen屏幕墙、slide show类似幻灯片 告警机制 自定义脚本 邮件通知 数据存储: mysql mariadb pgsql 支持模板 快速完成监控配置 网络自动发现 API 2、宏观架构 zabbix server:守护进程复制所有配置、数据汇总及数据操作最核心的zabbix组件 zabbix database:数据库存储所有的配置信息及zabbix采集的数据信息 zabbix web gui:图形化接口用于提供图形界面通常与server运行在同一主机 zabbix proxy:代理进程分布式监控减轻服务器压力可选组件代理server收集部分对监控端的数据汇总后一并发送server端。 zabbix agent:部署在被监控主机上复制收集本地数据并发送server或proxy端
zabbix server – zabbix proxy – agent/ssh/snmp 3、zabbix程序组成 zabbix_server服务器端的守护进程 zabbix_agentd客户端的守护进程 zabbix_proxy代理段的守护进程 zabbix_get命令行工具手动采集数据时使用 zabbix_sender命令行工具运行于agent端手动发送数据时使用 zabbix_java_gatewayJAVA网关 4、概念 主机host监控的对象使用IP或域名指定 主机组host group主机容器开源包含主机和模板 监控项item特定监控指标的相关数据来自于被监控对象 触发器trigger评估指定监控对象的item内所接收到的数据是否在合理区间内即阈值 事件event即将发生的值得关注的事务如触发器的状态变化 动作action对于特定事件实现定义的处理方法通常包含操作和条件 告警升级告警时的自定义方案 通知notification向用户发送有关某事件的信息 媒介meadia发送统治的手段或通道如邮件、短信等 远程命令remote command预定义的指令 应用application一组item的集合 模板template用于快速定义被监控主机的预设条目集合通常包含item、trigger、graph、screen等 前端frontendzabbix的web接口 5、微观架构逻辑架构 internalzabbix内崭的监控机制 SNMP基于SNMP协议的监控机制 agent基于agent的监控机制 poller用于从监控接口拉取数据 维护maintenance定义依赖关系 poller子进程基于agent执行数据采集 http poller子进程基于http协议执行数据采集的poller程序类似的还有snmp poller、ipmi poller等 housekeeper子进程以固定周期清除数据库中过期的历史数据的机制 pinger子进程探测器定期执行ICMP ping检查探测主机是否在线 nodewatcher子进程监控个节点的分布式节点看收起用于在不同节点之间发送数据和配置信息更新的过程 alerter子进程发送告警通知的进程 escalator子进程负责处理告警过程中各步骤 discovery子进程用于自动发现设备的过程
db_config_syncer数据库配置同步器 db_data_syncer数据库数据同步器 timer处理触发器中时间相关函数的进程 watchdog监控进程的运行状态由内核直接生成
一、zabbix安装 1、要求 Name Platform CPU/Memory Database Monitored hosts Small CentOS Virtual Appliance MySQL InnoDB 100 Medium CentOS 2 CPU cores/2GB MySQL InnoDB 500 Large RedHat Enterprise Linux 4 CPU cores/8GB RAID10 MySQL InnoDB or PostgreSQL 1000 Very large RedHat Enterprise Linux 8 CPU cores/16GB Fast RAID10 MySQL InnoDB or PostgreSQL 10000
2、安装方式操作系统CentOS8.3zabbix软件zabbix 5.0 LTS安装类型RPMzabbix源、国内镜像源二、基础操作 1、用户管理 登录 用户名Admin必须大写 密码zabbix 默认用户 Adminzabbix中的超级管理员拥有最大权限 guest特殊的默认用户没有登录zabbix时访问zabbix使用默认对zabbix中的对象没有任何权限
2、主机管理创建主机主机名、群组、接口IP、端口主机可用性绿色表示正常状态灰色表示状态还未启用或未更新红色表示通信存在问题3、监控项创建监控项名称、键值key、信息类型浮点数、主机接口、历史数据、趋势数据等显示数据检测 -- 最新数据中文支持windows路径C:\Windows\Fontszabbix路径/usr/share/zabbix/assets/fontsgnome-tweaks gnome优化工具开启窗口最大化和窗口最小化复制微软雅黑文件至CENTOS8目录中不可在桌面操作4、触发器监控项主要用于收集数据而触发器则可定义数据的阈值级别超过阈值时触发状态变化OK -- PROBLEMPROBLEM -- OK语法格式{server:key.function(parameter)}operatorconstant{服务器:键.函数(参数)}运算符设定的值关键参数服务器主机名称键主机上设定的监控项的关键字函数评估采集的数据是否在合理范围内 函数avg平均值sum求和count指定时间内或次数内的数值统计min/max最小值/最大值last最新数据date当前日期等等运算符 不等于-*/and 和or 或时间参数s、m、h、d、w创建触发器每一个触发器仅能关联至一个监控项一个监控项可以同时使用多个触发器为了实现不同级别的报警 查看触发器监测 -- 问题其它实例a、检测当前CPU负载{new_host:system.cpu.load.last()}3b、多条件匹配c、文件更改d、检测网络流量大于1M更改状态e、系统用户数统计大于3人更改状态
一、告警机制 1、实现原理 通过触发器的状态改变触发告警机制 2、常见类型 邮件、微信、短信等
二、电子邮件告警 1、服务器端配置邮件参数 vim /etc/mail.rc set fromzabbix_2021sina.com set smtpsmtp://smtp.sina.com set smtp-auth-userzabbix_2021sina.com set smtp-auth-password79107ed43f60ba8f set smtp-authlogin 2、配置zabbix前台
故障{TRIGGER.STATUS},服务器{HOST.NAME}发生{TRIGGER.NAME}故障 | Zabbix触发报警主机出现故障 | 告警主机{HOST.NAME} 告警地址{HOST.IP} 监控项目{ITEM.NAME} 监控内容{ITEM.LASTVALUE} 告警等级{TRIGGER.SEVERITY} 当前状态{TRIGGER.STATUS} 告警信息{TRIGGER.NAME} 告警时间{EVENT.DATE}{EVENT.TIME} 事件ID{EVENT.ID}
服务器:{HOST.NAME};{TRIGGER.NAME}已恢复正常
三、企业微信告警 1、配置群机器人并获取webhook接口 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key92b0cdf9-6dc4-4004-91df-50553b9df91a
2、配置zabbix前台四、报警信息优化 主题 故障{TRIGGER.STATUS},服务器{HOST.NAME}发生{TRIGGER.NAME}故障 消息 trtd告警主机/tdtd bgcolor#7CFC00{HOST.NAME}/td
/trtrtd告警地址/tdtd{HOST.IP}/td
/trtrtd监控项目/tdtd{ITEM.NAME}/td
/trtrtd监控内容/tdtd{ITEM.LASTVALUE}/td
/trtrtd告警等级/tdtd{TRIGGER.SEVERITY}/td
/tr trtd当前状态/tdtd{TRIGGER.STATUS}/td
/tr trtd告警信息/tdtd{TRIGGER.NAME}/td
/trtrtd告警时间/tdtd{EVENT.DATE}{EVENT.TIME}/td
/tr trtd事件ID/tdtd{EVENT.ID}/td
/tr 一、模板template 将一组预先定义好的监控规则快速应用到指定设备中
添加被监控端
Linuxzabbix-agent
Windowswww.zabbix.com格式msi和archive版本zabbix agent和zabbix agent 2 模板的导入和导出移除模板取消链接仅将模板的链接取消之前应用的数据不会改变取消链接并清理将模板的链接取消之前应用的数据也会被清理通过模板 监控其他主机如果客户端主机发生问题就在服务器这边显示问题 两台主机一台为服务器ip192.168.72.135 客户端ip192.168.110.136 防火墙关闭。seliunx关闭 1配置zabbix前台生成主机模板 用模板快速给主机定义一套规则让其生效 先生成模板加入Templates群组
创建应用集包含监控项
添加监控项将监控项添加进应用集
创建触发器属于监控项的
创建图形
创建主机监控客户端使用的并将模板添加进去
最后可以看到主机上就应用了这些模板数据
2客户端配置 由服务器端将安装包发送给客户端 [rootlixiaopeng ~]# scp zabbix-release-5.0-1.el8.noarch.rpm 192.168.72.136:/root 客户端接收并安装 [rootlocalhost ~]# rpm -ivh zabbix-release-5.0-1.el8.noarch.rpm
安装zabbix客户端agent [rootlocalhost yum.repos.d]# yum -y install zabbix-agent 进入客户端配置文件修复参数 [rootlocalhost yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf 117 行 Server192.168.72.135 服务器地址 158 行 ServerActive192.168.72.135 服务器地址 169 行 HostnameZabbix agent 客户端名 启动服务 rootlocalhost yum.repos.d]# systemctl start zabbix-agent.service [rootlocalhost yum.repos.d]# systemctl enable zabbix-agent.service
测试由这次测试的是用户登录数量创建几个用户登录即可完成实验在这就不测试了 在其他系统上安装参考https://www.zabbix.com/
2模板的导入导出 导出生成文件可以用于导入 3.移除模板 1取消连接保留数据
2取消链接并清理不保留数据
二、宏 格式{MACRO}
类型内置宏可以直接引用的宏{HOST.NAME}{HOST.IP}{TRIGGER.NAME}自定义宏由用户自定义的宏{$MACRO}级别全局宏适用于模板、主机模板宏仅适用于当前模板主机宏仅适用于当前主机优先级主机 -- 模板 -- 全局范围越小优先级越高设置全局宏在zabbix前台一般
然后根据宏设置进监控项
然后测试。在客户端开启http进程 [rootlocalhost yum.repos.d]# yum -y install httpd [rootlocalhost yum.repos.d]# systemctl restart httpd 然后查看最新数据、
三、自动发现 提供了有效的添加主机列表的机制适用于大规模部署监控其主要基于 可用的外部服务FTP、SSH、WEB、TCP等 zabbix的客户端 SNMP的客户端
配置步骤发现动作配置步骤 zabbix前台客户端 (1)zabbix
创建动作
添加操作
2客户端 安装zabbix客户端agent [rootlocalhost yum.repos.d]# yum -y install zabbix-agent 进入客户端配置文件修复参数 [rootlocalhost yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf 117 行 Server192.168.72.135 服务器地址 158 行 ServerActive192.168.72.135 服务器地址 169 行 Hostnamemysql 启动服务 rootlocalhost yum.repos.d]# systemctl start zabbix-agent.service [rootlocalhost yum.repos.d]# systemctl enable zabbix-agent.service 等待zabbix前端自动搜索设备发现140就成功
四、监控服务mysql 监控数据库服务的步骤 zabbix前台创建主机添加模板。客户端生成zabbix启动脚本文件数据库配置文件配置 先配置客户端 安装数据库服务 rootlocalhost ~]# yum -y install mariadb mariadb-server rootlocalhost ~]# systemctl start mariadb.service 设置数据库密码 rootlocalhost ~]# mysqladmin -uroot password ‘12345’ 进入数据库授权 rootlocalhost ~]# mysql -uroot -p Enter password: 授权用户zabbix主机192.168.72.137通过密码12345登录 ariaDB [(none)] GRANT ALL PRIVILEGES ON . TO zabbix‘192.168.72.137’ IDENTIFIED BY ‘12345’; 刷新 MariaDB [(none)] FLUSH PRIVILEGES; 退出 编写脚本文件 rootlocalhost ~]# cd /etc/zabbix/zabbix_agentd.d/ [rootlocalhost zabbix_agentd.d]# vim userparameter.conf
For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
Key syntax is mysql.status[variable].
UserParametermysql.status[*],echo “show global status where Variable_name‘$1’;” | HOME/var/lib/zabbix mysql -N | awk ‘{print $$2}’
Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
Key syntax is mysql.size[,,].
Database may be a database name or “all”. Default is “all”.
Table may be a table name or “all”. Default is “all”.
Type may be “data”, “index”, “free” or “both”. Both is a sum of data and index. Default is “both”.
Database is mandatory if a table is specified. Type may be specified always.
Returns value in bytes.
‘sum’ on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
UserParametermysql.size[*],bash -c ‘echo “select sum($(case “$3” in both|”) echo “data_lengthindex_length”;; data|index) echo “ 3 l e n g t h ; ; f r e e ) e c h o d a t a f r e e ; ; e s a c ) ) f r o m i n f o r m a t i o n s c h e m a . t a b l e s 3_length;; free) echo data_free;; esac)) from information_schema.tables 3length;;free)echodatafree;;esac))frominformationschema.tables([[ “$1” “all” || ! “$1” ]] || echo where table_schema“ 1 ¨ ) 1\) 1¨)([[ “$2” “all” || ! “$2” ]] || echo “and table_name”$2”);” | HOME/var/lib/zabbix mysql -N’
UserParametermysql.ping,HOME/var/lib/zabbix mysqladmin ping | grep -c alive UserParametermysql.version,mysql -V 创建脚本文件所需的目录 rootlocalhost zabbix_agentd.d]# mkdir /var/lib/zabbix
rootlocalhost zabbix_agentd.d]# vim /etc/my.cnf
This group is read both both by the client and the server
use it for options that affect everything [client-server] include all files from the config directory !includedir /etc/my.cnf.d
[mysqld]
#skip-grant-tables
[mysql]
host192.168.72.137
userzabbix
password12345
#socket/var/lib/mysql/mysql.sock
[mysqladmin]
host192.168.72.137
userzabbix
password12345
#socket/var/lib/mysql/mysql.sock
[client]
host192.168.72.137
userzabbix
password12345
[rootlocalhost ~]# cp /etc/my.cnf /var/lib/zabbix/.my.cnf [rootlocalhost ~]# vim /var/lib/zabbix/.my.cnf [mysql]
host192.168.72.137
userzabbix
password12345
#socket/var/lib/mysql/mysql.sock
[mysqladmin]
host192.168.72.137
userzabbix
password12345
#socket/var/lib/mysql/mysql.sock
[client]
host192.168.72.137 userzabbix
password12345 启动数据库zabbix客户端服务 rootlocalhost ~]# systemctl restart mariadb.service [rootlocalhost ~]# systemctl restart zabbix-agent.service
zabbix前台服务 创建主机
添加模板
查看监控情况
一、运维刨析
[rootzhao yum.repos.d]# wget https://mirrors.aliyun.com/repo/Centos-8.repo [rootzhao yum.repos.d]# yum clean all 清理缓存 [rootzhao yum.repos.d]# yum makecache 生成缓存 减缩缓存可以不用 [rootzhao yum.repos.d]# yum -y install epel-release [rootzhao yum.repos.d]# yum -y install ansible [rootzhao yum.repos.d]# rpm -qi ansible 1、主要文件 /etc/ansible 主目录 /etc/ansible/ansible.cfg 主配置文件 /etc/ansible/hosts 主机清单 /etc/ansible/roles 角色目录 /usr/bin/ansible 主程序文件 2、主要配置项 inventory 被控端的主机列表文件 library 库文件的存储位置 module_utils 库文件的相关工具 remote_tmp 远程主机存放的目录 local_tmp 临时文件存放的目录 forks 默认开启的并发数 配置文件默认位于/etc/ansible/目录配置文件应用顺序当前命令的执行目录ansible.cfg -- 用户家目录中的.ansible.cfg -- /etc/ansible/ansible.cfg
3、管理目标主机 通过命令行接口告知目标主机的任务需求通过剧本方式来实现多主机管理
4、ansible命令简介ansible最核心的命令主要用于执行单条命令通常需要指定主机、选项、模块若未指定模块则使用command模块ansible-doc查看模块的信息ansible-playbook主要用于执行反复执行、较为复杂的任务。支持使用变量、条件判断、循环以及模板等二、ansible命令 1、常见参数 运行参数 -v–version 提供版本信息 -a MODULE_ARGS 指定模块参数 -C, --check 测试变更的内容不会真正执行 -D, --diff 当更改文件和模板时显示其差异 -f FORKS 指定并行的进程数 -i INVENTORY 指定主机清单文件或用逗号分割多台主机 –list-hosts 输出匹配的主机列表 -m MODULE_NAME 指定模块的名称 -M MODULE_PATH 指定模块的位置 -h 查看帮助信息 特权参数 -K, --ask-become-pass 提权密码 –become 执行指定的操作 –become-user BECOME_USER 指定提权的用户默认root –become-method 指定提权的方法默认sudo 连接参数-k, --ask-pass 要求用户输入请求连接的密码-u REMOTE_USER 连接远端主机的用户-c CONNECTION 连接的类型-T TIMEOUT 设置默认的超时时间 2、环境准备1、添加/etc/hosts2、创建密钥对 3、配置主机清单 [rootzhao ~]# scp /etc/hosts 192.168.72.136:/etc/hosts 3、基础命令格式 格式 HOST-PARTTERN -m MODE_NAME -a MOD_ARGS -f FORKS -C -u USERNAME -c CONNECTION 示例[rootlocalhost ~]# ansible all -m ping SUCCESS 成功changed 目标主机是否发生修改ping pong表示主机的成功响应[rootlocalhost ~]# ansible-doc --help4、常见模块ping模块检查指定的节点主机是否能连通不涉及参数若目标主机可连通则返回ponggroup模块组模块调用groupadd、groupdel、groupmod三个指令user模块用户模块调用useradd、userdel、usermod三个指令raw模块执行原始命令而不调用模块子系统yum模块提供软件包安装和管理pip模块管理python的依赖库template模块基于模板生成文件复制到远端主机copy模块在远端主机上执行复制操作fetch模块用于从远端主机复制文件file模块用于远端主机上的文件操作command模块和shell模块在远端主机上运行指定的命令shell模块支持特殊字符command模块不支持特殊字符hostname模块修改远端主机的主机名mount模块挂载文件系统find模块在远端主机查找文件selinux模块管理远端主机上的selinux5、模块操作a、group模块选项 gid 设置目标主机组的GIDname 设置目标主机组名state 设置目标主机组的状态present 创建absent 删除system 设置系统组 实验[rootlocalhost ~]# ansible all -m group -a gid3001 namemygrp1 statepresent systemfalse[rootlocalhost ~]# ansible all -m group -a gid3001 namemygrp1 stateabsent systemfalse[rootlocalhost ~]# ansible 192.168.59.136 -m group -a gid3002 namemygrp2 statepresent systemfalse[rootlocalhost ~]# ansible 192.168.59.136,192.168.59.137 -m group -a gid3003 namemygrp3 statepresent systemfalseb、user模块选项home 设置用户的家目录groups 设置用户的属组uid 设置用户的UIDpassword 设置用户的密码name 设置用户名createhome 是否创建家目录配合home选项使用system 是否创建系统用户UID范围1-999)remove 当删除用户时removeyes表示连同其家目录一起删除类似 userdel -rstate 设置用户状态创建present或删除absentshell 设置用户的SHELL环境 comment 设置用户的说明信息实验[rootlocalhost ~]# ansible all -m user -a uid5002 namea2 commenttestuser statepresent groupsmygrp shell/bin/shc、copy模块选项src 源地址需要绝对路径。若指定目录时使用格式/abc表示复制目录及目录内所有文件若指定目录时使用格式/abc/表示复制目录内的所有文件content 源地址用于将指定的文件内容复制到远端主机的文件内dest 目标地址用于定位远端主机上的文件需要绝对路径若src指定的是目录那么dest也必须是目录owner 设置复制到远端主机的文件的归属mode 设置复制到远端主机的文件的权限实验[rootlocalhost ~]# ansible all -m copy -a src/etc/fstab dest/tmp/fstab_1 mode600[rootlocalhost ~]# ansible all -m copy -a src/etc/pam.d dest/tmp/[rootlocalhost ~]# ansible all -m copy -a src/etc/pam.d/ dest/tmp/[rootlocalhost ~]# ansible all -m copy -a contenthello,world\n dest/tmp/index.html[rootlocalhost ~]# ansible all -m copy -a contenthello,world\n dest/tmp/index1.html ownera1 groupmygrpd、fetch模块获取指定主机上的数据[rootlocalhost etc]# ansible 192.168.72.136 -m fetch -a src/etc/issue dest/tmp/abce、command模块在远程主机上执行命令[rootlocalhost ~]# ansible all -m command -a hostname 服务机名[rootlocalhost ~]# ansible all -m command -a chdir/var/tmp mkdir abcd远程创建目录 [rootlocalhost ~]# ansible all -m command -a “/sbin/shutdown -h now” 被监控端关 f、shell模块 支持特殊符号如、、|、;、等是增强版的command模块 [rootlocalhost ~]# ansible all -m shell -a “echo ‘123’ | passwd --stdin a1” [rootlocalhost ~]# ansible all -m shell -a “ps aux | grep [s]sh” g、yum模块使用yum进行软件包的安装、升级、删除等操作 选项name 指定软件名state installed/removed 安装/卸载软件[rootlocalhost ~]# ansible all -m yum -a namevsftpd stateinstalledh、其它模块service、crond、mount等6、模块状态state作用定义指定模块所处于的目标状态文件要么安装要么没安装特点操作必须是幂等的多次出现的状态必须相等手动 -- 标准化 -- 工具化 -- 自动化 DevOps -- 智能化
工具化 操作系统安装PXE、cobbler等 操作系统配置ansible、fabric、puppet、saltstack、chef、cfengine等 应用程序部署ansible、fabric等 任务执行ansible、fabric等
ansible基于SSH连接被管控主机借助各模块对被管控主机进行管理和配置 copy、file、fetch、yum、service、group、user、crond、command、shell、script、ping等等
ansible的任务执行模式 ad-hoc模式点对点模式 使用单个模块执行单条命令 playbook模式剧本模式 使用多个任务的集合完成一组功能
ansible命令格式 ansible 主机列表 -m 模块名称 -a 模块参数 -f FORKS -C
YAML格式扩展名 .yaml .yml 提供以play为元素的列表这种文件就是playbook
play的内容即task list任务列表
一、PLAYBOOK概述 1、作用 将多个play整合在一个文件中让其按照事先编排的机制执行预定义的动作 2、核心元素 hosts 关联到的主机 task 任务 variables 变量 template 模板 handlers和notify 由特定的条件触发的操作满足条件方才执行否则不执行 tags 标签选择playbook中的部分代码 roles 角色可将变量、文件、模板等通过include进行加载调用
3、基础组件hosts 必须事先定义在主机清单中 remote_user 通过SUDO方式在远程主机上执行任务task 按次序在指定的所有主机上执行通常需要指定name任务名称若未指定则动作模块参数模块模块参数 4、配置playbook测试ansible-playbook --syntax-check 1.yaml 检查语法有没有错 ansible-playbook --check #检测可能会发生的改变不真正执行 ansible-playbook --list-hosts #列出所有运行任务的主机 运行 [rootlocalhost ~]# ansible-playbook 1.yaml
---- hosts: allremote_user: roottasks:- name: install vsftpdyum: namevsftpd stateinstalled- name: copy config filecopy: src/root/vsftpd.conf dest/etc/vsftpd/vsftpd.confnotify: restart vsftpd- name: start vsftpdservice: namevsftpd statestarted enabledyeshandlers:- name: restart vsftpdservice: namevsftpd staterestarted enabledyes# - hosts: 192.168.59.136# - hosts: 192.168.59.137handlers和notify通常一起使用接收到任务时发送通知notify: handlers任务名handlers任务在特定条件下被触发 5、YAML文件语法全局a、以---开头声明yaml文件类型也可以不写b、#做为注释符可以注释整行也可以注释部分行c、YAML中的字符串通常不加任何引号即使包含了特殊字符。变量除外d、布尔值的类型模块的参数ansibleyes/on/true/1 真no/off/false/0 假非模块的参数YAML不区分大小写yes/on/true/1 真no/off/false/0 假通常情况模块参数的布尔值yes/no非模块参数的布尔值True/False 列表使用 - 作为列表项 圈定一个范围范围内的项都属于该列表换行在“key”后使用大于号 两行是一个命令在“key”后使用 | 下面所有都是一条命令多层缩进参数传递a、直接定义在模块名后如service: namevsftpd staterestarted enabledyesb、写成字典型KVkey-value键值如yum: namevsftpd stateinstalledc、使用内置属性args如yum: args:namevsftpdstateinstalledplaybook和play的关系每个playbook可以包含多个play每个play最少包含tasks和hosts选项tasks中可以通过模块设置一系列的动作playbook:[play1,play2,play3……]play:[hosts,tasks,vars,remote_users……]tasks:[module1,module2,module3……]一、变量管理 1、内置变量 默认变量gathering facts 查看被管控端信息ansible 192.168.59.137 -m setup 查看指定变量信息 [rootlocalhost playbook]# ansible 192.168.59.137 -m setup -a “filteransible_env” [rootlocalhost playbook]# ansible all -m setup -a “filteransible_memfree_mb” 引用变量{{ ansible_env }} 常见的信息类型ansible_env 环境相关配置信息ansible_all_ipv4_address 仅显示IPV4相关配置信息ansible_distribution 查看操作系统发行版本ansible_distribution_version 查看操作系统发行版本版本号ansible_kernel 查看内核版本ansible_ens33 查看网卡配置信息ansible_mem* 查看内存相关信息ansible_mounts 查看挂载相关信息ansible_hostname 查看主机名相关信息2、ansible-playbook命令行中的自定义变量-e EXTRA_VARS, --extra-vars EXTRA_VARS通过命令行传递变量的值提高playbook的灵活性和适配性。3、host inventory 主机清单通过主机清单可以实现主机分组组名用[ ]限定支持通配的功能如node[1:9].hr.cominventory参数ansible_ssh_host 将要连接的远端主机地址ansible_ssh_port SSH的端口号ansible_ssh_user 默认的SSH用户名ansible_ssh_pass 默认的SSH密码ansible_sftp_extra_args 添加额外参数给sftp命令ansible_ssh_extra_args 添加额外参数给ssh命令ansible_scp_extra_args 添加额外参数给scp命令4、用户自定义变量a、向同组主机传递相同的变量[webserv] #主机变量192.168.59.136 http_port8080[webserv:vars] #主机组变量http_port8000[all:vars] #全局变量http_port9000优先级主机变量 主机组变量 全局变量范围 全局变量 主机组变量 主机变量b、向不同主机传递不同的变量通过命令行传递参数 -e cmdvarcommand_line_variables_test通过剧本内部定义 vars:通过主机清单定义 http_port8080二、模板 包含了模板语法的文本文件
jinja2模板引擎WEB(HTML) --PHP内嵌
TEMPLATE纯文本-- JINJA2(内嵌python字面量字符串使用单引号或双引号数字整数、浮点数列表[ item1,item2……itemN ] 元素的值可被修改元组( item1,item2……itemN ) 元素的值不可被修改字典{ key1:value1,key2:value2,……} 布尔true/false
算术运算符 - * / % // **
比较操作 !
逻辑运算and or not 发布网站
1、查看主机信息一、条件测试 关键字when 作用条件测试返回 真 时则执行该区域的命令
二、循环 迭代机制
item 变量
with_item 取值列表
- 1
- 2
- 3三、角色 1、目录列表 files存储由copy或script等模块调用的文件 templates存储模板文件的目录 tasks至少应该包含一个main.yml的文件 handlers至少应该包含一个main.yml的文件 vars至少应该包含一个main.yml的文件 meta至少应该包含一个main.yml的文件定义当前角色的特殊定义及依赖关系。 default设置默认变量时使用该目录中的main.yml文件
2、默认路径roles_path /etc/ansible/roles3、创建角色[rootnode1 playbook]# mkdir -pv /etc/ansible/roles/nginx/{files,templates,tasks,vars,handlers,meta,default}4、创建剧本---- hosts: webservremote_user: rootroles:- nginx四、标签 tags
五、优化 为ansible添加缓存
redis nosql数据库 key-values KV存储六、redis配置
数据类型string 字符串 hash 散列类型 list 双向队列 set 集合类型 zset 有序集合一、容器概述 1、LXC 全称linux container 2、虚拟化类型 结构 硬件虚拟化物理硬件本身提供虚拟化的支持如CPU vt-x amd-v 软件虚拟化通过软件方式实现虚拟化中关键指令的转换如JVM 设计 主机虚拟化 TYPE I : 原生架构 TYPE II寄居架构容器虚拟化其它平台虚拟化应用程序虚拟化内存虚拟化桌面虚拟化...
3、虚拟化两级调度host os内核功能guest os内核功能hypervisor的调度调度产生额外开销4、容器环境多个用户空间共享一个内核空间通过一个用户空间一般是第一个提供特权管理管理每个用户空间所能使用的资源边界从而实现隔离5、容器技术1979Unix chroot2000FreeBSD jails2001Linux VServer security contextvirtual private server VPS2004containerszones2005OpenVZ2006process containerscontrol groupsCGroups2008LinuXContainers CGroups和namespace 直接运行在普通Linux内核上2011warden2013LMCTFY 2013Docker2014Rocket2015windows container6、资源隔离隔离内容 命名空间主机名/域名 UTS根文件系统 MOUNT进程编号 PID 进程通信 IPC 用户和组 USER网络设备、端口、协议 NET7、资源调度可压缩资源资源不足时按照权重分配资源如CPU不可压缩资源资源不足时无法继续申请如内存可压缩资源a、为用户空间设定资源权重CPU 121用户空间125%用户空间250%用户空间325%b、为用户空间绑定CPU核心不可压缩资源关闭程序释放资源 通过Control Groups实现控制
8、CGroupsblkio BLOCK IO限制块设备的IO速率cpuset 限制任务能运行在哪些CPU核心上cpuacct 生成CGroups中任务使用CPU的报告CPU 限制调度器分配的CPU时间devices 允许或拒绝CGroups中任务对设备的访问freezer 挂起或重启CGroups中的任务memory 限制CGroups中内存的使用量net_prio 设置网络接口报文的优先级pref_event 识别任务的CGroups成员用于性能分析9、LXC 容器lxc-create 常见容器 快速创建用户空间Template模板 创建用户空间并运行后自动实现安装过程10、docker镜像技术 每个用户空间运行单类进程分层构建、联合挂载AUFS 联合文件系统的实现方式rw 可读可写用户能直接修改其中的内容ro 只读用户不能通过aufs的接口对文件进行写入操作只能读取其内容rr real read only真实只读特点通常第一个目录可读可写其余皆为只读对可读目录内容做出修改时其结果会保存到可写目录中不会影响只读目录参数noneaufs不会进行任何数据同步的检查性能相对较高但可能出现数据不一致的情况revalaufs会检查底层的文件是否出现改动若有改动则将改动的内容更新到挂载点产生额外的性能损耗notify通过inotify监听底层的文件变化基于事件驱动减少性能损耗 分层构建顺序执行的多条指令会生成不同分层累加写入到文件中形成一个image文件 Docker之父 solomon hykes(所罗门 海克思)
Docker hub 国际的 阿里云是国内的 文章转载自: http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.rsfp.cn.gov.cn.rsfp.cn http://www.morning.dpruuode.cn.gov.cn.dpruuode.cn http://www.morning.rwtlj.cn.gov.cn.rwtlj.cn http://www.morning.smpmn.cn.gov.cn.smpmn.cn http://www.morning.khntd.cn.gov.cn.khntd.cn http://www.morning.pmtky.cn.gov.cn.pmtky.cn http://www.morning.crqbt.cn.gov.cn.crqbt.cn http://www.morning.pznqt.cn.gov.cn.pznqt.cn http://www.morning.dlgjdg.cn.gov.cn.dlgjdg.cn http://www.morning.hrpjx.cn.gov.cn.hrpjx.cn http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.kpbn.cn.gov.cn.kpbn.cn http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn http://www.morning.mnsts.cn.gov.cn.mnsts.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.snrbl.cn.gov.cn.snrbl.cn http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.sblgt.cn.gov.cn.sblgt.cn http://www.morning.bxrqf.cn.gov.cn.bxrqf.cn http://www.morning.lnfkd.cn.gov.cn.lnfkd.cn http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn http://www.morning.lwtfr.cn.gov.cn.lwtfr.cn http://www.morning.xjnw.cn.gov.cn.xjnw.cn http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.myfwb.cn.gov.cn.myfwb.cn http://www.morning.fppzc.cn.gov.cn.fppzc.cn http://www.morning.dodoking.cn.gov.cn.dodoking.cn http://www.morning.fhyhr.cn.gov.cn.fhyhr.cn http://www.morning.jmnfh.cn.gov.cn.jmnfh.cn http://www.morning.lnsnyc.com.gov.cn.lnsnyc.com http://www.morning.kwxr.cn.gov.cn.kwxr.cn http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn http://www.morning.tnthd.cn.gov.cn.tnthd.cn http://www.morning.ypjjh.cn.gov.cn.ypjjh.cn http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn http://www.morning.hpmzs.cn.gov.cn.hpmzs.cn http://www.morning.leboju.com.gov.cn.leboju.com http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn http://www.morning.qtkdn.cn.gov.cn.qtkdn.cn http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn http://www.morning.yixingshengya.com.gov.cn.yixingshengya.com http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn http://www.morning.msfqt.cn.gov.cn.msfqt.cn http://www.morning.drnjn.cn.gov.cn.drnjn.cn http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.qhydkj.com.gov.cn.qhydkj.com http://www.morning.bwnd.cn.gov.cn.bwnd.cn http://www.morning.jwskq.cn.gov.cn.jwskq.cn http://www.morning.bnlch.cn.gov.cn.bnlch.cn http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn http://www.morning.dcccl.cn.gov.cn.dcccl.cn http://www.morning.ydmml.cn.gov.cn.ydmml.cn http://www.morning.dxhnm.cn.gov.cn.dxhnm.cn http://www.morning.knpbr.cn.gov.cn.knpbr.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.ttkns.cn.gov.cn.ttkns.cn http://www.morning.hmlpn.cn.gov.cn.hmlpn.cn http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn http://www.morning.ftlgy.cn.gov.cn.ftlgy.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn http://www.morning.ygxf.cn.gov.cn.ygxf.cn http://www.morning.lhgkr.cn.gov.cn.lhgkr.cn http://www.morning.rpwm.cn.gov.cn.rpwm.cn http://www.morning.hwbf.cn.gov.cn.hwbf.cn http://www.morning.rjnm.cn.gov.cn.rjnm.cn http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn http://www.morning.mfltz.cn.gov.cn.mfltz.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn