మీరు అస్పష్టంగా ఉన్న హార్డ్వేర్ ఆదేశాల కోసం వాక్యనిర్మాణాన్ని మరచిపోతున్నారా? ప్రామాణిక SQL ఆదేశాలతో మీ Linux కంప్యూటర్ యొక్క హార్డ్వేర్, వినియోగదారులు మరియు పనితీరును ప్రశ్నించడానికి ఓస్క్వరీ అప్లికేషన్ మిమ్మల్ని అనుమతిస్తుంది.
ఆస్క్యూరీ అప్లికేషన్
ఆస్క్యూరీ అప్లికేషన్ అనేది ఓస్క్వెరీ ఫౌండేషన్ నుండి ఉచిత మరియు ఓపెన్ సోర్స్ ప్రోగ్రామ్. ఇది మీ లైనక్స్ కంప్యూటర్ గురించి పెద్ద మొత్తంలో సమాచారాన్ని సేకరిస్తుంది మరియు దానిని నకిలీ-డేటాబేస్ వలె ప్రాప్యత చేస్తుంది. డేటాబేస్ వివిధ వర్గాల సమాచారాన్ని కలిగి ఉన్న అనేక పట్టికలను కలిగి ఉంది. సాధారణ స్ట్రక్చర్డ్ క్వరీ లాంగ్వేజ్ (SQL) ఆదేశాలను ఉపయోగించి పట్టికలలోని డేటాను తిరిగి పొందవచ్చు.
osquery ఇంటరాక్టివ్గా ఉపయోగించవచ్చు లేదా దీన్ని కాన్ఫిగరేషన్ ఫైల్ ద్వారా నియంత్రించవచ్చు మరియు డెమోన్గా అమలు చేయవచ్చు. దీన్ని డెమోన్గా అమలు చేయడం వల్ల ప్రశ్నలను షెడ్యూల్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. osquery చాలా సరళమైన మరియు అధునాతన అనువర్తనం. ఇది పరిచయ వ్యాసంలో పొందుపరచగల దానికంటే చాలా ఎక్కువ. మీరు దాని అనేక ఇతర ఎంపికలను పరిశీలించాలనుకుంటే అద్భుతమైన డాక్యుమెంటేషన్ మొదటి ప్రదేశం.
ఇంటరాక్టివ్గా ఓస్క్వరీని ఎలా ఉపయోగించాలో చూద్దాం.
Osquery ఇన్స్టాల్
చాలా లైనక్స్ పంపిణీలలో వారి అధికారిక రిపోజిటరీలలో ఆస్క్యూరీ లేదు. ఇది సమస్య కాదు, మేము ఓస్క్యూరీ డౌన్లోడ్ పేజీ నుండి ఇన్స్టాలేషన్ ప్యాకేజీలను డౌన్లోడ్ చేసుకోవచ్చు.
ఉబుంటు కోసం, ప్యాకేజీని డౌన్లోడ్ చేయండి “.దేబ్”. ఇది చాలావరకు డైరెక్టరీకి డౌన్లోడ్ చేయబడుతుంది “డౌన్లోడ్”. డైరెక్టరీని డైరెక్టరీకి మార్చండి “డౌన్లోడ్” ఆపై ఉపయోగించండి dpkg
ఫైల్ను వ్యవస్థాపించడానికి ఆదేశం “.దేబ్”. మా ఉదాహరణలోని ఫైల్ పేరును మీరు డౌన్లోడ్ చేసిన పేరుతో భర్తీ చేయండి.
cd Downloads
sudo dpkg -i osquery_4.6.0-1.linux_amd64.deb
ఫెడోరా కోసం, డౌన్లోడ్ చేయండి “.rpm”. మీ హార్డ్ డ్రైవ్లో ఫైల్ను గుర్తించి పొడిగింపును ఉపయోగించండి rpm
దీన్ని ఇన్స్టాల్ చేయడానికి ప్యాకేజీ. మేము ఉపయోగిస్తున్నాము -U
(అప్డేట్ ఆప్షన్. ఇది సిస్టమ్లో ఇప్పటికే ఇన్స్టాల్ చేయకపోతే అప్లికేషన్ను ఇన్స్టాల్ చేస్తుంది మరియు అది ఉంటే అప్డేట్ అవుతుంది.
sudo rpm -U osquery-4.6.0-1.linux.x86_64.rpm
మంజారోలో, osquery డిఫాల్ట్ రిపోజిటరీలలో ఉంది. మేము దీన్ని ఉపయోగించి ఇన్స్టాల్ చేయవచ్చు pacman
.
sudo pacman -Sy osquery
ఆస్క్యూరీ సరిగ్గా ఇన్స్టాల్ చేయబడిందని మీరు తనిఖీ చేయవచ్చు మరియు ఓస్క్వెరీని ప్రారంభించడం ద్వారా మీరు ఏ వెర్షన్ను ఉపయోగిస్తున్నారో తెలుసుకోవచ్చు --version
ఎంపిక. ఒకటి ఉందని గమనించండి “ది” ఆదేశం చివరిలో. IS “osqueryi” కాదు “osquery”. అక్కడ “ది” ఇంటరాక్టివ్ అంటే.
osqueryi --version
ఆస్క్యూరీ ఇంటరాక్టివ్ షెల్
ఇంటరాక్టివ్ మోడ్లో osquery ప్రారంభించడానికి, ఉపయోగించండి osqueryi
ఆదేశం.
osqueryi
ఇంటరాక్టివ్ ఓస్క్వరీ షెల్ ప్రారంభించబడింది మరియు ప్రాంప్ట్ ప్రదర్శించబడుతుంది “osquery>”.
ఇక్కడే మీరు SQL మరియు టైప్ చేస్తారు dot ఆదేశాలు. డాట్ కమాండ్లు ఓస్క్వరీ షెల్ తో ఇంటరాక్ట్ అవ్వడానికి మీరు జారీ చేసే ఆదేశాలు. ఒకటి లేదా రెండు మినహాయింపులతో, డాట్ ఆదేశాలు కంప్యూటర్ గురించి ఎటువంటి సమాచారాన్ని ఇవ్వవు. వాటికి పాయింట్ లేదా పాయింట్ పేరు పెట్టారు “.” ఇది అన్ని కుట్టు ఆదేశాల ప్రారంభంలో కనిపిస్తుంది.
మీరు కీని ఉపయోగించవచ్చు “పై సూచిక” గతంలో ఉపయోగించిన ఆదేశాల ద్వారా చక్రం తిప్పడానికి మరియు పట్టిక పేర్లకు టాబ్ పూర్తి చేయడం అందుబాటులో ఉంది.
డాట్ ఆదేశాల జాబితాను మరియు ప్రతి దాని యొక్క శీఘ్ర వివరణను పొందడానికి, ఉపయోగించండి .help
ప్రాంప్ట్ వద్ద ఆదేశం “osquery>”.
.help
ఆస్క్యూరీ సెషన్ను మూసివేయడానికి మీరు రెండింటినీ ఉపయోగించవచ్చు .exit
లేదా .quit
.
.quit
SQL ఆదేశాలను ఉపయోగించడం
డేటాబేస్లో పట్టికలుగా నివేదించగల సిస్టమ్ సమాచారాన్ని osquery అందిస్తుంది. ఆ డేటాబేస్ను ప్రశ్నించడానికి, ప్రతి ఒక్కటి కలిగి ఉన్న పట్టికలు మరియు క్షేత్రాల పేర్లను తెలుసుకోవడం అవసరం. ది .tables
ఆదేశం మీ కోసం పట్టికలను జాబితా చేస్తుంది.
.tables
చాలా పట్టికలు ఉన్నాయి. మీరు ముందుకు మరియు వెనుకకు స్క్రోల్ చేయవచ్చు మరియు మీకు ఆసక్తి ఉన్న వాటి కోసం శోధించవచ్చు. మేము దాని గురించి మరింత తెలుసుకోవాలనుకుంటున్నాము uptime
పట్టిక. ది .schema
కమాండ్ పట్టిక యొక్క ఫీల్డ్ పేర్లను మరియు ప్రతి ఫీల్డ్ కలిగి ఉన్న డేటా రకాన్ని జాబితా చేస్తుంది.
.schema uptime
మా మొదటి SQL స్టేట్మెంట్ను జారీ చేయగలిగేంతగా మాకు ఇప్పుడు తెలుసు. మేము ఫైల్ నుండి డేటాను ఎన్నుకుంటాము days
, hours
, ఉంది minutes
నుండి నిలువు వరుసలు uptime
పట్టిక. ఇది SQL అని గుర్తుంచుకోండి, కాబట్టి సెమికోలన్ ఉపయోగించండి “;
“ఆదేశాన్ని ముగించడానికి.
select days, hours, minutes from uptime;
మేము అన్ని నిలువు వరుసలను చూడాలనుకుంటే, మేము ఒక నక్షత్రాన్ని ఉపయోగించవచ్చు “*
“అన్ని కాలమ్ పేర్లను సూచించే సత్వరమార్గంగా. కానీ ఇంకా వేగంగా ఉండే డాట్ కమాండ్ ఉంది. రకం .all
అదే ఫలితాన్ని పొందడానికి పట్టిక పేరు తరువాత. (గుర్తుంచుకో, సెమికోలన్ లేదు “;
” చివరిలో పాయింట్ ఆదేశాలు.)
select * from uptime;
.all uptime
పట్టికల నుండి డేటాను ఎంచుకోవడం
వినియోగదారు పట్టిక
అన్ని వినియోగదారు పేర్ల జాబితాను చూడటానికి మనం ఫైల్ను ప్రశ్నించవచ్చు users
పట్టిక.
select username from users;
ఫలితాలలో ఏదైనా కాలమ్ ద్వారా మీరు డేటాను క్రమబద్ధీకరించవచ్చు. ఈ ఉదాహరణలో, మనకు ఒకే కాలమ్ మాత్రమే ఉంది, కాని మనం ఇంకా డేటాను క్రమబద్ధీకరించవచ్చు.
select username from users order by username;
మేము వినియోగదారు పేర్ల ఉపసమితిని చూడాలనుకుంటే, బహుశా ఒక నిర్దిష్ట పొడవు ఉన్నట్లయితే, మన SQL స్టేట్మెంట్కు మరిన్ని నిబంధనలను జోడించవచ్చు.
select username, directory from users where length(username)=4 order by username;
బహుశా మేము ఒకే వినియోగదారు పేరుపై మాత్రమే ఆసక్తి కలిగి ఉండవచ్చు.
select username, directory, shell from users where username="mary";
ప్రక్రియ పట్టిక
మేము ఏ పట్టికలోని డేటాకు ఒకే సూత్రాలను వర్తింపజేయవచ్చు. మేము ఒక ఫైల్ వివరాలను తెలుసుకోవాలనుకుంటే gedit
ప్రాసెస్, మేము దీనిని ఇలా చూడవచ్చు:
select pid, name, state, start_time from processes where name="gedit";
అక్కడ “ఎస్.” లో state
కాలమ్ అంటే అంతరాయం కలిగించే నిద్ర.
పట్టిక in_in_user లో లాగిన్ అయింది
మేము ఇంతకుముందు చేసినట్లుగా కాన్ఫిగర్ చేసిన వినియోగదారుల జాబితాను చూడటానికి బదులుగా, ప్రస్తుతం లాగిన్ అయిన వినియోగదారులపై మాకు ఎక్కువ ఆసక్తి ఉంది.
select user, host, time from logged_in_users;
మానవులేతర వినియోగదారులను మినహాయించడానికి, ఉపయోగించండి “not like
“SQL నిబంధన. ది tty
కాలమ్లో యూజర్ యొక్క టిటి లేదా టిల్డే వివరాలు ఉన్నాయి “~
“Tty ఉపయోగంలో లేకపోతే.
select user, host, time from logged_in_users where tty not like "~";
వినియోగదారు పేరు ఉన్న వినియోగదారుని మనం చూడవచ్చు “డేవ్” రెండుసార్లు లాగిన్ అయ్యారు.
ది “: 0” లో host
కాలమ్ కంప్యూటర్కు కనెక్ట్ చేయబడిన స్క్రీన్ మరియు కీబోర్డ్ను సూచిస్తుంది. కాబట్టి ఆ వినియోగదారు భౌతికంగా ప్రాంగణంలో ఉండాలి. ఆ వినియోగదారు పేరును ఉపయోగించే ఇతర లాగిన్ సెషన్ మరొక IP చిరునామా నుండి.
దర్యాప్తు చేయడం బహుశా అవసరం. నేను ఇక్కడ భవనంలో ఉంటే వారు కంప్యూటర్ను రిమోట్గా ఎలా యాక్సెస్ చేయవచ్చు? ఈ సెషన్లలో ఒకటి మోసపూరితమైనది కావచ్చు.
Os_version పట్టిక
లైనక్స్ వెర్షన్ గురించి వివరాలను తెలుసుకోవడానికి, ఫైల్ను ప్రశ్నించండి os_version
పట్టిక.
select name, major, minor, codename from os_version;
ఇంటర్ఫేస్_అడ్డ్రెస్ పట్టిక
ది interface_addresses
పట్టికలో నెట్వర్క్ ఇంటర్ఫేస్లపై సమాచారం ఉంది.
select interface, address from interface_addresses order by interface;
మెమరీ_ఇన్ఫో పట్టిక
ది memory_info
పట్టికలో మీ కంప్యూటర్లోని మెమరీ మొత్తం మరియు అది ఎలా ఉపయోగించబడుతుందనే దాని గురించి సమాచారం ఉంది.
select memory_total, memory_free, cached from memory_info;
సమూహాల పట్టిక
మీ సిస్టమ్లో కాన్ఫిగర్ చేయబడిన సమూహాలను త్వరగా చూడటానికి, ఉపయోగించండి .all
కమాండ్ పాయింట్ ఆన్ groups
పట్టిక.
.అన్ని సమూహాలు
వినియోగదారులతో అనుబంధించబడిన సమూహాల వివరాలను చూడటానికి, సమూహ ID తో 1000 కంటే ఎక్కువ లేదా సమానమైన సమూహాలను ఫిల్టర్ చేయండి.
select * from groups where gid>=1000;
డెబ్_ప్యాకేజీల పట్టిక
ది deb_packages
పట్టికలో అన్ని సాఫ్ట్వేర్ ప్యాకేజీల వివరాలు ఉన్నాయి “.దేబ్” అవి మీ కంప్యూటర్లో ఇన్స్టాల్ చేయబడ్డాయి. ఒక ఫైల్ కూడా ఉంది rpm_packages
ఫెడోరా మరియు ఇతర Red Hat ఉత్పన్నాల పట్టిక. ఇతర ప్యాకేజీ నిర్వహణ వ్యవస్థలు జాబితా చేయబడలేదు.
ఈ పరీక్ష యంత్రంలో చాలా ప్యాకేజీలు ఉన్నాయి. ఫలితాలు 10 రికార్డులకు పరిమితం చేయబడ్డాయి.
select name, version, source from deb_packages limit 10;
సిస్టమ్_ఇన్ఫో పట్టిక
System_info పట్టికలో చాలా సమాచారం ప్యాక్ చేయబడింది. మేము ఈ కంప్యూటర్లో ఇన్స్టాల్ చేసిన సెంట్రల్ ప్రాసెసింగ్ యూనిట్ (సిపియు) బ్రాండ్ను తనిఖీ చేయబోతున్నాం.
select cpu_brand from system_info;
మంచుకొండ యొక్క చిట్కా
osquery మీ వేలికొనలకు 150 కి పైగా పట్టికల నుండి సమాచారాన్ని ఉంచుతుంది. మీకు ఎక్కువ SQL తెలియకపోయినా, ఈ అద్భుతమైన అనువర్తనాన్ని ఉత్పాదకంగా ఉపయోగించుకోవటానికి మీకు కావలసినంత తక్కువ నైపుణ్యం పొందడం మీకు సులభం అవుతుంది.